Untuk studio pengembangan profesional, mengatur alat pihak ketiga dan berinvestasi dalam otomatisasi dapat secara dramatis meningkatkan produktivitas pengembang. Pendekatan cloud-first Roblox memiliki banyak keuntungan, tetapi memindahkan bagian tertentu dari alur kerja pengembangan di luar cloud dapat membantu tim yang lebih besar melacak perubahan seiring waktu, meninjau kode, dan menggunakan bahasa serta alat yang sudah mereka kenal.
- Jika Anda hanya ingin menggunakan editor teks eksternal atau menyimpan kode dalam kontrol versi, Script Sync adalah pilihan yang bagus.
- Jika Anda ingin mengelola seluruh proyek Anda sebagai sekumpulan file lokal, halaman ini membahas beberapa alat dan strategi.
Masalah sinkronisasi
Pada intinya, menggunakan alat eksternal dengan Roblox adalah masalah sinkronisasi:
- Anda ingin instance Roblox Anda ada sebagai file di disk sehingga Anda dapat menggunakan alat Anda sendiri untuk bekerja di atasnya.
- Anda harus mengirimkan file Anda kembali ke proyek Roblox Anda setelah Anda selesai mengerjakannya.
- Jika orang lain mengubah file-file yang sama di antara waktu, Anda harus menangani konflik yang mungkin terjadi.
Agar keseluruhan solusi terasa mulus dan otomatis, Anda perlu a) mendengarkan perubahan pada file dan b) memasukkan kembali perubahan ini ke dalam Studio.
Daripada pendekatan cloud-first Roblox, Rojo memungkinkan pendekatan "file system-first". Ia menjalankan server di mesin Anda yang berkomunikasi dengan plugin Studio untuk menyinkronkan file Anda dan model data Studio.
Instal Rojo dengan Rokit
Anda dapat mengunduh dan menjalankan biner Rojo secara manual, tetapi pendekatan itu berisiko karena pengembang yang berbeda di tim Anda mungkin menggunakan versi Rojo yang berbeda. Solusi yang lebih baik adalah menggunakan manajer rantai alat seperti Rokit, yang menggunakan file konfigurasi—sebuah daftar repositori dan versi—untuk membuat proses instalasi dan peningkatan konsisten di seluruh mesin.
Karena ini mengelola lingkungan pengembangan dasar Anda daripada paket dalam proyek Anda, Rokit lebih mirip dengan nvm daripada npm, tetapi perbandingan ini tidak sempurna. Sebuah file rokit.toml sederhana terlihat seperti ini:
[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"
Kemudian Anda menginstal alat ini dengan rokit install. Selain file global rokit.toml, Rokit mendukung file per-proyek, sehingga Anda dapat dengan mudah menggunakan versi Rojo, Wally, atau alat lain untuk proyek yang berbeda dan menjaga seluruh tim Anda pada versi yang sama.
Ketika sebuah alat merilis versi baru, Anda kemudian secara eksplisit meningkatkan nomor versi di file .toml Anda, menggunakan Rokit untuk melakukan peningkatan, menguji versi baru, dan kembali menurun jika menyebabkan masalah. Untuk perintah dan petunjuk instalasi, lihat Rokit.
Jalankan Rojo
Setelah Anda menginstal Rojo dengan Rokit, yang Anda instal sebenarnya adalah server Rojo. Langkah selanjutnya adalah menginstal plugin Rojo untuk Roblox Studio.
Anda dapat menginstalnya dari Creator Store atau menginstalnya secara lokal dengan perintah ini:
rojo plugin install
Kemudian buat struktur proyek untuk game baru Anda dan bangun:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
Sebagai alternatif, Anda dapat memindahkan game yang sudah ada. Baik cara manapun, setelah Anda memiliki proyek, mulai server Rojo:
rojo serve
Di Roblox Studio, buka file .rbxl yang baru saja Anda bangun, buka plugin Rojo, dan sambungkan ke server Anda yang sedang berjalan, pada titik ini Anda dapat mulai membuat perubahan di editor teks favorit Anda dan melihat perubahan tersebut secara otomatis disinkronkan kembali ke Studio.


Proyek Rojo memiliki persyaratan penamaan tertentu untuk file, berbagai opsi konfigurasi, dan beberapa batasan, yang semuanya dibahas di dokumen Rojo.
Manajer paket
Roblox memiliki serangkaian API yang kokoh, tetapi jika Anda ingin memanfaatkan paket perangkat lunak komunitas dengan cara yang konsisten dan dapat diproduksi ulang, Anda memerlukan manajer paket. Wally adalah pilihan populer. Anda dapat menginstalnya melalui Rokit, sama seperti Rojo.
Di direktori Rojo game Anda, jalankan wally init. Kemudian tambahkan paket yang Anda inginkan ke wally.toml. File tersebut mungkin terlihat seperti ini:
[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"
Kemudian jalankan wally install. Wally membuat direktori Packages dan mengunduh paket yang ditentukan di sana. Langkah terakhir adalah menambahkan direktori Packages ke Rojo agar isinya disinkronkan kembali ke Roblox. Buka default.project.json dan tambahkan jalur tersebut. Untuk kesederhanaan, contoh ini menambahkan seluruh direktori ke ReplicatedStorage sehingga semua paket tersedia untuk semua skrip, tetapi Anda mungkin lebih suka menambahkan paket tertentu ke ServerScriptService atau StarterPlayerScripts:
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}
Kemudian Anda dapat memerlukan paket dalam skrip Anda seperti ModuleScript lainnya:
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)
Seperti kebanyakan proyek perangkat lunak lainnya, tujuannya adalah agar kontributor dapat mengkloning repositori, menginstal Rokit, menjalankan beberapa perintah, dan memiliki lingkungan pengembangan yang sama dengan sisa tim.
Kontrol versi
Memiliki sekumpulan file teks biasa di komputer Anda membuka berbagai kemampuan, tetapi yang utama adalah kontrol versi. Anda dapat menyimpan file Anda di repositori Git atau Mercurial; menghosting repositori jarak jauh dan meninjau perubahan kode di GitHub, GitLab, atau Bitbucket; dan menggunakan editor teks yang Anda sukai.
Visual Studio Code dan Cursor memiliki ekosistem ekstensi terbesar, tetapi Sublime Text dan Notepad++, serta Vim adalah pilihan populer lainnya. Apa pun editor yang Anda pilih, mencocokkan kemampuan editor skrip Studio akan memerlukan beberapa ekstensi.
Anda mungkin juga ingin mempertimbangkan menambahkan:
- Sebuah linter seperti selene untuk menangkap masalah umum dan menegakkan standar pemrograman
- Sebuah format kode seperti StyLua
- Sebuah bahasa server seperti Luau Language Server untuk autocompletion, pemeriksaan jenis, dan lainnya
- Skrip Open Cloud (tidak disinkronkan ke Studio) untuk memperbarui game yang diterbitkan atau mengulang server
Undo everything
Karena alat pihak ketiga menyinkronkan perubahan kembali ke Roblox Studio daripada menggantinya, tidak ada bagian dari alur kerja ini yang melibatkan kunci. Kapan saja, Anda dapat berhenti menggunakan satu atau semua alat ini dan kembali ke pengeditan game Anda secara eksklusif di Studio. Kurangnya risiko ini membuat eksperimen dengan alat pihak ketiga sangat menarik.