Công cụ bên thứ ba

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Đối với các studio phát triển chuyên nghiệp, 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 đám mây đầu tiên của Roblox có nhiều ưu điểm, nhưng di chuyển một số phần của quy trình phát triển công việc ra bên ngoài đám mây có thể giúp các nhóm lớn theo dõi các 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.

Vấn đề sao lưu

Ở cốt lõi, sử dụng công cụ bên ngoài với Roblox là một vấn đề đồng bộ:

  • Bạn muốn các kịch bản 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 mình để làm việc với chúng.
  • Bạn phải lấy lại các tập tin của mình vào dự án Roblox của mình sau khi bạn đã hoàn thành làm việc với chúng.
  • Nếu ai đó khác thay đổi các tệp tương tự 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 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 tin và b) tích hợp các thay đổi này trở lại vào Studio.Nói cách khác, bạn cần một máy chủ và một plugin Studio, đó là cách Rojo giải quyết vấn đề này.

Thay vì tiếp cận đám mây đầu tiên của Roblox, Rojo cho phép tiếp cận "hệ thống tập tin trước tiên".Nó chiết xuất tất cả các tập lệnh trong dự án của bạn thành tập tin Luau.Sau đó nó chạy một máy chủ.Plugin Rojo kết nối với máy chủ để đồng bộ các tập tin với Studio.

Cài đặt Rojo với Foreman

Bạn có thể tải và chạy thủ công một binary Rojo, nhưng cách tiếp cận đó có nguy cơ các nhà phát triển khác trong nhóm của bạn sử dụng các phiên bản Rojo khác nhau.Giải pháp tốt hơn là sử dụng một quản lý công cụ như Foreman, sử dụng một tập tin 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 phù hợp 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, Foreman giống với nvm hơn npm, nhưng sự so sánh không hoàn hảo.Một tập tin đơn giản foreman.toml có vẻ 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 với foreman install .Ngoài một tập tin toàn cầu foreman.toml , Foreman hỗ trợ các tập tin cụ thể cho mỗi 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ữ toàn bộ nhóm của bạn trên các phiên bản tương tự.

Khi một công cụ phát hành phiên bản mới, bạn sau đó rõ ràng bật số phiên bản trong tập tin .toml của bạn, sử dụng Foreman để thực hiện nâng cấp, kiểm tra phiên bản mới và giảm cấp nếu nó gây ra bất kỳ vấn đề nào.Đối với lệnh và hướng dẫn cài đặt, xem Foreman .

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-experience
cd my-new-experience
rojo build -o my-new-experience.rbxl

Ngoài ra, bạn có thể cổng một trải nghiệm hiện có . Dù 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ở tập tin .rbxl vừa xây dựng, khởi động plugin Rojo, và kết nối với máy chủ đang chạy của bạn, tạ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 yêu thích của bạn và xem những thay đổi đó tự động đồng bộ trở lại Studio.

Các dự án Rojo có các yêu cầu đặt tên nhất định cho các tập tin, nhiều tùy chọn cấu hình và một số hạn chế, tất cả đều được bao gồm trong tài liệu hướng dẫn Rojo.

Quản lý gói

Roblox có một bộ API bao gồm 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 theo cách đồng nhất và có thể lặp lại, 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 mong muốn của bạn vào wally.toml . Tập tin 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.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 các gói được chỉ định vào đó.Bước cuối cùng là thêm thư mục Packages vào Rojo để nội dung của nó đồng bộ lại với Roblox.Mở default.project.json và thêm đường dẫn.Vì đơ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ỳ gói nào 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 đóng góp có thể sao chép một kho lưu trữ, cài đặt Foreman, 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 đội.

Kiểm soát phiên bản

Có một bộ tập tin văn bản thông thường trên máy tính của bạn mở khóa một loạt các khả năng, nhưng chính là kiểm soát phiên bản .Bạn có thể lưu các tập lệnh và tập tin cấu hình của bạn trong một Git hoặc Mercurial kho lưu trữ; lưu trữ các kho lưu trữ từ xa và xem 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.

Mã Visual Studio có hệ sinh thái mở rộng lớn nhất, nhưng Sublime Text , Notepad++Vim là tất cả những lựa chọn phổ biến.Bất kỳ trình soạn thảo nào bạn chọn, phù hợp với khả năng của trình soạn thảo kịch bản Studio sẽ yêu cầu một số mở rộng.

Bạn cũng có thể xem xét thêm:

Tài sản

Các công cụ trên trang này phù hợp nhất với các kịch bản; các nghệ sĩ 3D đã 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 soát phiên bản và nhập các sáng tạo của họ vào Studio.Sau khi bạn có một tài sản Studio, chúng tôi khuyên bạn nên sử dụng gói bất cứ khi nào có thể.

Triển khai gói của 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 một cách dễ dàng để giữ tất cả các bản sao của một tài sản đồng bộ.Để biết thêm thông tin về cách họ có thể cải thiện quy trình làm việc của bạn, hãy xem Gói.

Giải thoát mọi thứ

Bởi vì các công cụ bên thứ ba thực hiện thay đổi sao lại vào Roblox Studio thay vì thay thế nó, không có phần nào trong quy trình làm việc này liên quan đến bất kỳ khóa nào.Bất cứ 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ải nghiệm của bạn hoàn toàn trong Studio.Sự thiếu rủi ro làm cho thử nghiệm với công cụ bên thứ ba đặc biệt hấp dẫn.