Per gli studi di sviluppo professionale, impostare strumenti di terze parti e investire nell'automazione può migliorare notevolmente la produttività degli sviluppatori. L'approccio cloud-first di Roblox ha molti vantaggi, ma spostare alcune parti del flusso di lavoro di sviluppo fuori dal cloud può aiutare i team più grandi a tenere traccia delle modifiche nel tempo, rivedere il codice e utilizzare i linguaggi e gli strumenti con cui sono già familiari.
- Se vuoi solo utilizzare un editor di testo esterno o mantenere il codice nel controllo delle versioni, Script Sync è una scelta eccellente.
- Se desideri gestire l'intero progetto come un insieme di file locali, questa pagina copre alcuni strumenti e strategie.
Il problema della sincronizzazione
Alla base, utilizzare strumenti esterni con Roblox è un problema di sincronizzazione:
- Vuoi che le tue istanze di Roblox esistano come file su disco in modo da poter utilizzare i tuoi strumenti per lavorarci sopra.
- Devi riportare i tuoi file nel tuo progetto Roblox dopo aver finito di lavorarci.
- Se qualcun altro ha modificato quegli stessi file nel frattempo, devi gestire eventuali conflitti.
Affinché l'intera soluzione si senta senza soluzione di continuità e automatica, devi a) ascoltare le modifiche ai file e b) incorporare queste modifiche di nuovo in Studio.
Piuttosto che l'approccio cloud-first di Roblox, Rojo consente un approccio "file system-first". Esegue un server sulla tua macchina che comunica con un plugin di Studio per sincronizzare i tuoi file e il modello di dati di Studio.
Installa Rojo con Rokit
Puoi scaricare e eseguire manualmente un binario di Rojo, ma questo approccio comporta il rischio che diversi sviluppatori del tuo team utilizzino versioni diverse di Rojo. Una soluzione migliore è utilizzare un gestore di toolchain come Rokit, che utilizza un file di configurazione—un elenco di repository e versioni—per rendere il processo di installazione e aggiornamento coerente tra le macchine.
Poiché gestisce il tuo ambiente di sviluppo di base piuttosto che i pacchetti all'interno del tuo progetto, Rokit è più simile a nvm che a npm, ma il confronto non è perfetto. Un semplice file rokit.toml appare così:
[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"Poi installi questi strumenti con rokit install. Oltre a un file globale rokit.toml, Rokit supporta file per progetto, quindi puoi facilmente utilizzare versioni diverse di Rojo, Wally o qualsiasi altro strumento per progetti diversi e mantenere l'intero team su quelle stesse versioni.
Quando uno strumento rilascia una nuova versione, poi aumenti esplicitamente il numero di versione nel tuo file .toml, utilizzi Rokit per eseguire l'aggiornamento, testi la nuova versione e fai il downgrade se causa problemi. Per comandi e istruzioni di installazione, vedi Rokit.
Esegui Rojo
Dopo aver installato Rojo con Rokit, ciò che hai realmente installato è il server Rojo. Il passo successivo è installare il plugin Rojo per Roblox Studio.
Puoi installarlo dal Creator Store o installarlo localmente con questo comando:
rojo plugin installPoi genera la struttura del progetto per il tuo nuovo gioco e costruiscilo:
rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxlIn alternativa, puoi portare un gioco esistente. In entrambi i casi, dopo aver creato un progetto, avvia il server Rojo:
rojo serveIn Roblox Studio, apri il file .rbxl che hai appena costruito, apri il plugin Rojo e connettiti al tuo server ora in esecuzione, a quel punto puoi iniziare a fare modifiche nel tuo editor di testo preferito e vedere quelle modifiche sincronizzarsi automaticamente con Studio.


I progetti Rojo hanno requisiti di denominazione specifici per i file, numerose opzioni di configurazione e alcune limitazioni, tutte coperte nella documentazione di Rojo.
Gestori di pacchetti
Roblox ha un robusto insieme di API incluse, ma se desideri utilizzare pacchetti software della comunità in modo coerente e riproducibile, hai bisogno di un gestore di pacchetti. Wally è un'opzione popolare. Puoi installarlo tramite Rokit, proprio come Rojo.
All'interno della directory Rojo del tuo gioco, esegui wally init. Poi aggiungi i pacchetti desiderati a wally.toml. Il file potrebbe apparire così:
[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"Poi esegui wally install. Wally crea una directory Packages e scarica i pacchetti specificati lì. L'ultimo passo è aggiungere la directory Packages a Rojo in modo che i suoi contenuti si sincronizzino di nuovo con Roblox. Apri default.project.json e aggiungi il percorso. Per semplicità, questo esempio aggiunge l'intera directory a ReplicatedStorage in modo che tutti i pacchetti siano disponibili per tutti gli script, ma potresti preferire aggiungere pacchetti specifici a ServerScriptService o StarterPlayerScripts:
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}Poi puoi richiedere pacchetti all'interno dei tuoi script proprio come qualsiasi altro 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 = "Ciao Mondo!",
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)Come la maggior parte degli altri progetti software, l'obiettivo è che i collaboratori possano clonare un repository, installare Rokit, eseguire alcuni comandi e avere lo stesso ambiente di sviluppo del resto del team.
Controllo delle versioni
Avere un insieme di file di testo semplice sul tuo computer sblocca una varietà di capacità, ma la principale è il controllo delle versioni. Puoi memorizzare i tuoi file in un repository Git o Mercurial; ospitare repository remoti e rivedere le modifiche al codice in GitHub, GitLab o Bitbucket; e utilizzare qualsiasi editor di testo tu preferisca.
Visual Studio Code e Cursor hanno il più grande ecosistema di estensioni, ma Sublime Text, Notepad++ e Vim sono tutte scelte popolari. Qualunque editor tu scelga, abbinare le capacità dell'editor di script di Studio richiederà alcune estensioni.
Potresti anche considerare di aggiungere:
- Un linter come selene per catturare problemi comuni e far rispettare gli standard di codifica
- Un formattatore di codice come StyLua
- Un server di linguaggio come Luau Language Server per completamento automatico, controllo dei tipi e altro
- Script di Open Cloud (non sincronizzati con Studio) per aggiornare un gioco pubblicato o riavviare i server
Annulla tutto
Poiché gli strumenti di terze parti sincronizzano le modifiche di nuovo in Roblox Studio piuttosto che sostituirlo, nessuna parte di questo flusso di lavoro comporta alcun lock-in. In qualsiasi momento, puoi smettere di utilizzare uno o tutti questi strumenti e tornare a modificare il tuo gioco esclusivamente in Studio. La mancanza di rischio rende particolarmente allettante sperimentare con strumenti di terze parti.