Đối với các studio phát triển chuyên nghiệp, việc cài đặt các công cụ thứ ba và đầu tư vào tự động hóa có thể tăng trưởng sản lượng của nhà phát triển một cách đáng kể. Roblox's cloud-first approach có nhiều lợi thế, nhưng di chuyển một số bộ phận của
Trở ngại Sincron hóa
Ở nền tảng của nó, sử dụng các công cụ bên ngoài với Roblox là một vấn đề 同步 :
- Bạn muốn các script Roblox của bạn tồn tại như .luau tập tin trên đĩa để bạn có thể sử dụng các công cụ của riêng bạn để làm việc với chúng.
- Bạn phải lấy lại các tập tin của bạn vào dự án Roblox của bạn sau khi bạn đã hoàn thành công việc trên chúng.
- Nếu một người khác thay đổi cùng một tập tin đó trong khi đó, bạn phải xử lý bất kỳ xung đột nào.
Để toàn bộ giải pháp cảm thấy mượt mà và tự động, bạn cần lắng nghe các thay đổi trong các tập tin và b) tích hợp các thay đổi này trở lại Studio. Nói cách khác, bạn cần một máy chủ và một plugin Studio, nơi Rojo giải quyết vấn đề này.
Thay vì tiếp cận cloud-first của Roblox, Rojo cho phép một tiếp cận "first-in-file" . Nó tải tất cả các tập tin script trong dự án của bạn vào các tập tin Luau. Sau đó, nó chạy một máy chủ. Plugin Rojo kết nối với máy chủ để sincronize tập tin với Studio.
Cài đặt Rojo với Foreman
Bạn có thể tải xuống và chạy một Rojo binary, nhưng phương pháp đó chạy nguy cơ rủi ro của các nhà phát triển khác nhau trên đội của bạn bằng cách 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 quản lý công cụ như Fore
Bởi vì nó quản lý môi trường phát triển cơ sở của bạn thay vì các gói trong dự án của bạn, Foreman giống hơn nvm hơn npm , nhưng so sánh này không hoàn hảo. Một cái foreman.toml đơn giản như thế này:
[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }
Sau đó, bạn cài đặt các công cụ này bằng cách sử dụng foreman install . Ngoài một tập tin foreman.toml toàn cầu, Foreman hỗ trợ các tập tin dự án, so you can easily use different versions of Rojo, Wally, or any other tool for different projects and keep your entire team on those same versions.
Khi một công cụ phát hành một phiên bản mới, bạn sau đó rõ ràng bật số phiên bản trong tập tin của mình, sử dụng Foreman để thực hiện nâng cấp, kiểm tra phiên bản mới và downgrade nếu nó gây ra bất kỳ vấn đề nào. Đối với các lệnh và hướng dẫn cài đặ
Chạy Rojo
Sau khi bạn cài đặt Rojo với Foreman, những gì 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:
rojo plugin install
Sau đó tạo cấu trúc dự án cho trải nghiệm mới của bạn và xây dựng nó:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
Ở cách khác, bạn có thể cảng một trải nghiệm hiện tại . Bằng cách nào, sau khi bạn có một dự án, bắt đầu máy chủ Rojo:
rojo serve
Trong Roblox Studio, mở .rbxl file bạn vừa tạo, khởi động plugin Rojo và kết nối với máy chủ bạn đang chạy, tại điểm này bạn có thể bắt đầu thay đổi trong trình biên tập ngữ của bạn và xem những thay đổi đó được tự động sao lưu về Studio.
Yêu cầu đặt tên cho các dự án Rojo có một số yêu cầu đặt tên cho các tập tin, một loạt các tùy chọn cấu hình và một số hạn chế, tất cả đều được thảo luận trong tài liệu Rojo documentation .
Quản lý gói
Roblox có một bộ hỗ trợ API được bao gồm, nhưng nếu bạn muốn sử dụng các gói phần mềm cộng đồng được tích hợp một cách coi치, bạn cần một 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 Foreman, giống như Rojo.
Trong thư mục Rojo của trải nghiệm của bạn, chạy wally init . Sau đó, thêm các gói bạn muốn vào wally.toml . Cấu hình tập tin có thể xem 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.1.0"
react-roblox = "jsdotlua/react-roblox@17.1.0"
cryo = "phalanxia/cryo@1.0.3"
Sau đó, chạy wally install . Wally tạo một thư mục Packages và tải
{
"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 script của bạn giống như bất kỳ gói khác ModuleScript :
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 = "Hello World!",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 nhà đóng góp có thể clon một nhà chứa, cài đặt Foreman, thi hành một vài lệnh và có môi trường phát triển tương tự như các thành viên còn lại của đội.
Kiểm soát phiên bản
Có một bộ dữ liệu văn bản trên máy tính của bạn mở khóa một loạt các khả năng, nhưng khả năng chính là kiểm tra phiên bản. Bạn có thể lưu các script và tập tin cấu h
Mã Visual Studio có ekosistema mở rộng lớn nhất, nhưng Sublime Text , Notepad++ và 0> Vim0> đều là những lựa chọn phổ biến. Bất kể bạn chọn Editor nào, phù hợp với khả năng của Studio script editor sẽ yêu cầu một số ekosistema.
Bạn cũng có thể xem xét thêm:
- Một linter như selene để bắt các vấn đề thông thường và thiết lập các tiêu chuẩn mã hóa
- Một biểu tượng mã như StyLua
- Một máy chủ ngôn ngữ như Luau Language Server cho autocompletion, kiểm tra kiểm tra và nhiều hơn
- Mở Cloud các tập tin (không đồng bộ với Studio) để cập nhật một trải nghiệm đã xuất bản hoặc khởi động lại các máy chủ
Tài sản
Các công cụ trên trang này đa phần áp dụng cho các script; 3D artists đã sử dụng các công cụ bên ngoài như Blender và Maya, lưu các tập tin nguồn trong kiểm tra phiên bản, và nhập creations của họ vào Studio. Sau khi bạn có một tài sản Studio, chúng tôi khuyến nghị sử dụng packages mọi lúc
Việc thực hiện gói trong Roblox tuân theo nhiều nguyên tắc tương tự như các công cụ trên trang này: một kho lưu trung tâm với lịch sử phiên bản cung cấp cách tuyệt vời để giữ tất cả các bản sao của một tài nguyên được đồng bộ. Để biết thêm thông tin về cách họ có thể cả
Huỷ mọi thứ
Vì các công cụ của bên thứ ba đồng bộ thay đổi trở lại Roblox Studio thay vì thay thế nó, không có phần nào trong workflow này có bất kỳ khóa-in nào. Bất cứ lúc nào, bạn có thể dừ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ải nghiệm của bạn hoà