Đối với các studio phát triển chuyên nghiệp, việc thiết lập các công cụ bên thứ ba và đầu tư vào tự động hóa có thể cải thiện đáng kể năng suất của nhà phát triển. Cách tiếp cận ưu tiên đám mây của Roblox có nhiều lợi thế, nhưng việc di chuyển một số phần của quy trình phát triển ra ngoài đám mây có thể giúp các nhóm lớn theo dõi sự thay đổi theo thời gian, xem xét mã và sử dụng các ngôn ngữ và công cụ mà họ đã quen thuộc.
- Nếu bạn chỉ muốn sử dụng một trình soạn thảo văn bản bên ngoài hoặc giữ mã trong kiểm soát phiên bản, Script Sync là một lựa chọn tuyệt vời.
- Nếu bạn muốn quản lý toàn bộ dự án của mình dưới dạng một tập hợp các tệp cục bộ, trang này sẽ đề cập đến một số công cụ và chiến lược.
Vấn đề đồng bộ hóa
Về cơ bản, việc sử dụng các công cụ bên ngoài với Roblox là một vấn đề đồng bộ hóa:
- Bạn muốn các phiên bản Roblox của mình tồn tại dưới dạng các tệp trên đĩa để bạn có thể sử dụng các công cụ của riêng mình để làm việc với chúng.
- Bạn phải đưa các tệp của mình trở lại dự án Roblox sau khi bạn đã hoàn thành công việc với chúng.
- Nếu người khác đã thay đổi những tệp đó trong thời gian đó, bạn phải xử lý bất kỳ xung đột nào.
Để toàn bộ giải pháp cảm thấy liền mạch và tự động, bạn cần a) lắng nghe các thay đổi đối với các tệp và b) tích hợp những thay đổi này trở lại vào Studio.
Thay vì cách tiếp cận ưu tiên đám mây của Roblox, Rojo cho phép một cách tiếp cận "ưu tiên hệ thống tệp". Nó chạy một máy chủ trên máy của bạn giao tiếp với một plugin Studio để đồng bộ hóa các tệp của bạn và mô hình dữ liệu Studio.
Cài đặt Rojo với Rokit
Bạn có thể tải xuống và chạy một nhị phân Rojo một cách thủ công, nhưng cách tiếp cận đó có nguy cơ các nhà phát triển khác nhau trong nhóm của bạn sử dụng các phiên bản Rojo khác nhau. Một giải pháp tốt hơn là sử dụng một trình quản lý chuỗi công cụ như Rokit, sử dụng một tệp cấu hình - một danh sách các kho lưu trữ và phiên bản - để làm cho quá trình cài đặt và nâng cấp nhất quán trên các máy.
Bởi vì nó quản lý môi trường phát triển cơ bản của bạn thay vì các gói trong dự án của bạn, Rokit giống như nvm hơn là npm, nhưng sự so sánh không hoàn hảo. Một tệp rokit.toml đơn giản trông như thế này:
[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"Sau đó, bạn cài đặt các công cụ này với rokit install. Ngoài tệp rokit.toml toàn cầu, Rokit hỗ trợ các tệp theo dự án, vì vậy bạn có thể dễ dàng sử dụng các phiên bản khác nhau của Rojo, Wally hoặc bất kỳ công cụ nào khác cho các dự án khác nhau và giữ cho toàn bộ nhóm của bạn trên những phiên bản đó.
Khi một công cụ phát hành phiên bản mới, bạn sẽ rõ ràng nâng cấp số phiên bản trong tệp .toml của mình, sử dụng Rokit để thực hiện nâng cấp, kiểm tra phiên bản mới và hạ cấp nếu nó gây ra bất kỳ vấn đề nào. Để biết các lệnh và hướng dẫn cài đặt, xem Rokit.
Chạy Rojo
Sau khi bạn cài đặt Rojo với Rokit, điều bạn thực sự đã cài đặt là máy chủ Rojo. Bước tiếp theo là cài đặt plugin Rojo cho Roblox Studio.
Bạn có thể cài đặt nó từ Creator Store hoặc cài đặt nó cục bộ với lệnh này:
rojo plugin installSau đó, tạo cấu trúc dự án cho trò chơi mới của bạn và xây dựng nó:
rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxlNgoài ra, bạn có thể chuyển một trò chơi hiện có. Dù bằng cách nào, sau khi bạn có một dự án, hãy khởi động máy chủ Rojo:
rojo serveTrong Roblox Studio, mở tệp .rbxl mà bạn vừa xây dựng, mở plugin Rojo và kết nối với máy chủ đang chạy của bạn, tại thời điểm đó bạn có thể bắt đầu thực hiện các thay đổi trong trình soạn thảo văn bản ưa thích của mình và theo dõi những thay đổi đó tự động đồng bộ trở lại Studio.


Các dự án Rojo có một số yêu cầu về tên tệp, nhiều tùy chọn cấu hình và một số hạn chế, tất cả đều được đề cập trong tài liệu Rojo.
Trình quản lý gói
Roblox có một bộ API mạnh mẽ, nhưng nếu bạn muốn sử dụng các gói phần mềm cộng đồng một cách nhất quán và có thể tái tạo, bạn cần một trình quản lý gói. Wally là một lựa chọn phổ biến. Bạn có thể cài đặt nó thông qua Rokit, giống như Rojo.
Trong thư mục Rojo của trò chơi của bạn, chạy wally init. Sau đó, thêm các gói mong muốn của bạn vào wally.toml. Tệp có thể trông như thế này:
[package]
name = "my-home-directory/my-new-experience"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"
[dependencies]
react = "jsdotlua/react@17.2.1"
react-roblox = "jsdotlua/react-roblox@17.2.1"
cryo = "phalanxia/cryo@1.0.3"Sau đó, chạy wally install. Wally tạo một thư mục Packages và tải xuống các gói đã chỉ định ở đó. Bước cuối cùng là thêm thư mục Packages vào Rojo để nội dung của nó đồng bộ trở lại Roblox. Mở default.project.json và thêm đường dẫn. Để đơn giản, ví dụ này thêm toàn bộ thư mục vào ReplicatedStorage để tất cả các gói có sẵn cho tất cả các kịch bản, nhưng bạn có thể muốn thêm các gói cụ thể vào ServerScriptService hoặc StarterPlayerScripts:
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}Sau đó, bạn có thể yêu cầu các gói trong các kịch bản của mình giống như bất kỳ ModuleScript nào khác:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local React = require(ReplicatedStorage.Packages.react)
local ReactRoblox = require(ReplicatedStorage.Packages["react-roblox"])
local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui)
local root = ReactRoblox.createRoot(handle)
local helloFrame = React.createElement("TextLabel", {
Text = "Xin chào thế giới!",
Size = UDim2.new(0, 200, 0, 200),
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(248, 217, 109),
Font = Enum.Font.LuckiestGuy,
TextSize = 24
})
root:render(helloFrame)Giống như hầu hết các dự án phần mềm khác, mục tiêu là các cộng tác viên có thể sao chép một kho lưu trữ, cài đặt Rokit, chạy một vài lệnh và có cùng một môi trường phát triển như phần còn lại của nhóm.
Kiểm soát phiên bản
Có một tập hợp các tệp văn bản thuần trên máy tính của bạn mở khóa nhiều khả năng, nhưng khả năng chính là kiểm soát phiên bản. Bạn có thể lưu trữ các tệp của mình trong một kho lưu trữ Git hoặc Mercurial; lưu trữ các kho lưu trữ từ xa và xem xét các thay đổi mã trong GitHub, GitLab hoặc Bitbucket; và sử dụng bất kỳ trình soạn thảo văn bản nào bạn thích.
Visual Studio Code và Cursor có hệ sinh thái mở rộng lớn nhất, nhưng Sublime Text và Notepad++, và Vim đều là những lựa chọn phổ biến. Dù bạn chọn trình soạn thảo nào, việc khớp các khả năng của trình soạn thảo kịch bản Studio sẽ yêu cầu một số tiện ích mở rộng.
Bạn cũng có thể xem xét việc thêm:
- Một trình phân tích mã như selene để phát hiện các vấn đề phổ biến và thực thi các tiêu chuẩn lập trình
- Một trình định dạng mã như StyLua
- Một máy chủ ngôn ngữ như Luau Language Server cho tự động hoàn thành, kiểm tra kiểu và nhiều hơn nữa
- Các kịch bản Open Cloud (không đồng bộ với Studio) để cập nhật một trò chơi đã xuất bản hoặc khởi động lại các máy chủ
Hoàn tác mọi thứ
Bởi vì các công cụ bên thứ ba đồng bộ hóa các thay đổi trở lại Roblox Studio thay vì thay thế nó, không phần nào của quy trình làm việc này liên quan đến bất kỳ sự ràng buộc nào. Bất kỳ lúc nào, bạn có thể ngừng sử dụng một hoặc tất cả các công cụ này và quay lại chỉnh sửa trò chơi của bạn hoàn toàn trong Studio. Việc thiếu rủi ro khiến việc thử nghiệm với các công cụ bên thứ ba trở nên đặc biệt hấp dẫn.