Für professionelle Entwicklungsstudios kann die Einrichtung von Drittanbieter-Tools und die Investition in Automatisierung die Produktivität der Entwickler erheblich steigern. Der cloud-first Ansatz von Roblox hat viele Vorteile, aber das Verschieben bestimmter Teile des Entwicklungs-Workflows außerhalb der Cloud kann größeren Teams helfen, Änderungen im Laufe der Zeit nachzuverfolgen, Code zu überprüfen und die Sprachen und Tools zu verwenden, mit denen sie bereits vertraut sind.
- Wenn Sie nur einen externen Texteditor verwenden oder Code in der Versionskontrolle behalten möchten, ist Script Sync eine großartige Wahl.
- Wenn Sie Ihr gesamtes Projekt als eine Sammlung lokaler Dateien verwalten möchten, behandelt diese Seite einige Tools und Strategien.
Das Synchronisierungsproblem
Im Kern ist die Verwendung externer Tools mit Roblox ein Synchronisierungsproblem:
- Sie möchten, dass Ihre Roblox-Instanzen als Dateien auf der Festplatte existieren, damit Sie Ihre eigenen Tools verwenden können, um daran zu arbeiten.
- Sie müssen Ihre Dateien zurück in Ihr Roblox-Projekt bringen, nachdem Sie mit der Arbeit an ihnen fertig sind.
- Wenn jemand anderes in der Zwischenzeit diese gleichen Dateien geändert hat, müssen Sie alle Konflikte behandeln.
Damit die gesamte Lösung nahtlos und automatisch erscheint, müssen Sie a) auf Änderungen an Dateien hören und b) diese Änderungen wieder in Studio integrieren.
Anstelle von Roblox' cloud-first Ansatz ermöglicht Rojo einen "Dateisystem-first" Ansatz. Es läuft ein Server auf Ihrem Computer, der mit einem Studio-Plugin kommuniziert, um Ihre Dateien und das Datenmodell von Studio zu synchronisieren.
Rojo mit Rokit installieren
Sie können manuell eine Rojo-Binärdatei herunterladen und ausführen, aber dieser Ansatz birgt das Risiko, dass verschiedene Entwickler in Ihrem Team unterschiedliche Rojo-Versionen verwenden. Eine bessere Lösung ist die Verwendung eines Toolchain-Managers wie Rokit, der eine Konfigurationsdatei verwendet – eine Liste von Repositories und Versionen –, um den Installations- und Upgrade-Prozess auf verschiedenen Maschinen konsistent zu gestalten.
Da es Ihre grundlegende Entwicklungsumgebung verwaltet und nicht die Pakete innerhalb Ihres Projekts, ähnelt Rokit eher nvm als npm, aber der Vergleich ist nicht perfekt. Eine einfache rokit.toml-Datei sieht so aus:
[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"Dann installieren Sie diese Tools mit rokit install. Neben einer globalen rokit.toml-Datei unterstützt Rokit projektbezogene Dateien, sodass Sie problemlos unterschiedliche Versionen von Rojo, Wally oder einem anderen Tool für verschiedene Projekte verwenden und Ihr gesamtes Team auf diesen gleichen Versionen halten können.
Wenn ein Tool eine neue Version veröffentlicht, erhöhen Sie dann explizit die Versionsnummer in Ihrer .toml-Datei, verwenden Rokit, um das Upgrade durchzuführen, testen die neue Version und downgraden, wenn sie Probleme verursacht. Für Befehle und Installationsanweisungen siehe Rokit.
Rojo ausführen
Nachdem Sie Rojo mit Rokit installiert haben, haben Sie tatsächlich den Rojo-Server installiert. Der nächste Schritt besteht darin, das Rojo-Plugin für Roblox Studio zu installieren.
Sie können es im Creator Store installieren oder lokal mit diesem Befehl installieren:
rojo plugin installDann generieren Sie die Projektstruktur für Ihr neues Spiel und bauen es:
rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxlAlternativ können Sie ein bestehendes Spiel portieren. In jedem Fall, nachdem Sie ein Projekt haben, starten Sie den Rojo-Server:
rojo serveÖffnen Sie in Roblox Studio die .rbxl-Datei, die Sie gerade erstellt haben, öffnen Sie das Rojo-Plugin und verbinden Sie sich mit Ihrem jetzt laufenden Server, an dem Punkt können Sie beginnen, Änderungen in Ihrem bevorzugten Texteditor vorzunehmen und beobachten, wie diese Änderungen automatisch mit Studio synchronisiert werden.


Rojo-Projekte haben bestimmte Namensanforderungen für Dateien, zahlreiche Konfigurationsoptionen und einige Einschränkungen, die alle in der Rojo-Dokumentation behandelt werden.
Paketmanager
Roblox verfügt über eine robuste Sammlung integrierter APIs, aber wenn Sie Community-Softwarepakete auf konsistente, reproduzierbare Weise nutzen möchten, benötigen Sie einen Paketmanager. Wally ist eine beliebte Option. Sie können es über Rokit installieren, genau wie Rojo.
Führen Sie im Rojo-Verzeichnis Ihres Spiels wally init aus. Fügen Sie dann Ihre gewünschten Pakete zu wally.toml hinzu. Die Datei könnte so aussehen:
[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"Führen Sie dann wally install aus. Wally erstellt ein Verzeichnis Packages und lädt die angegebenen Pakete dort herunter. Der letzte Schritt besteht darin, das Verzeichnis Packages zu Rojo hinzuzufügen, damit dessen Inhalte zurück zu Roblox synchronisiert werden. Öffnen Sie default.project.json und fügen Sie den Pfad hinzu. Zur Vereinfachung fügt dieses Beispiel das gesamte Verzeichnis zu ReplicatedStorage hinzu, sodass alle Pakete für alle Skripte verfügbar sind, aber Sie möchten möglicherweise spezifische Pakete zu ServerScriptService oder StarterPlayerScripts hinzufügen:
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}Dann können Sie Pakete innerhalb Ihrer Skripte wie jedes andere ModuleScript anfordern:
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 = "Hallo Welt!",
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)Wie bei den meisten anderen Softwareprojekten ist das Ziel, dass Mitwirkende ein Repository klonen, Rokit installieren, ein paar Befehle ausführen und die gleiche Entwicklungsumgebung wie der Rest des Teams haben.
Versionskontrolle
Eine Sammlung von einfachen Textdateien auf Ihrem Computer eröffnet eine Vielzahl von Möglichkeiten, aber die wichtigste ist Versionskontrolle. Sie können Ihre Dateien in einem Git oder Mercurial Repository speichern; Remote-Repositories hosten und Codeänderungen in GitHub, GitLab oder Bitbucket überprüfen; und den Texteditor Ihrer Wahl verwenden.
Visual Studio Code und Cursor haben das größte Erweiterungs-Ökosystem, aber Sublime Text, Notepad++ und Vim sind ebenfalls beliebte Optionen. Welchen Editor Sie auch wählen, um die Funktionen des Studio-Skripteditors zu erreichen, sind einige Erweiterungen erforderlich.
Sie sollten auch in Betracht ziehen, Folgendes hinzuzufügen:
- Einen Linter wie selene, um häufige Probleme zu erkennen und Codierungsstandards durchzusetzen
- Einen Code-Formatter wie StyLua
- Einen Sprachserver wie Luau Language Server für Autovervollständigung, Typprüfung und mehr
- Open Cloud Skripte (nicht mit Studio synchronisiert), um ein veröffentlichtes Spiel zu aktualisieren oder Server neu zu starten
Alles rückgängig machen
Da Drittanbieter-Tools Änderungen zurück zu Roblox Studio synchronisieren, anstatt es zu ersetzen, beinhaltet kein Teil dieses Workflows eine Bindung. Zu jeder Zeit können Sie die Verwendung eines oder aller dieser Tools einstellen und wieder ausschließlich in Studio an Ihrem Spiel arbeiten. Das Fehlen von Risiken macht das Experimentieren mit Drittanbieter-Tools besonders attraktiv.