Für professionelle Entwicklungsstudios kann die Einrichtung von Drittanbieter-Tools und die Investition in Automatisierung die Produktivität der Entwickler erheblich verbessern. Robloxs Cloud-first-Ansatz 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 einfach einen externen Texteditor verwenden oder den Code in der Versionskontrolle halten möchten, ist Script Sync eine hervorragende Wahl.
- Wenn Sie Ihr gesamtes Projekt als eine Gruppe lokaler Dateien verwalten möchten, behandelt diese Seite einige Tools und Strategien.
Das Synchronisationsproblem
Im Kern ist die Verwendung von externen Tools mit Roblox ein Synchronisationsproblem:
- Sie möchten, dass Ihre Roblox-Instanzen als Dateien auf der Festplatte existieren, sodass 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 damit fertig sind.
- Wenn jemand anderes in der Zwischenzeit diese gleichen Dateien geändert hat, müssen Sie eventuelle Konflikte lösen.
Damit die gesamte Lösung nahtlos und automatisch funktioniert, müssen Sie a) auf Änderungen an den Dateien hören und b) diese Änderungen wieder in Studio integrieren.
Statt des Cloud-first-Ansatzes von Roblox ermöglicht Rojo einen "Dateisystem-first"-Ansatz. Es läuft ein Server auf Ihrem Rechner, der mit einem Studio-Plugin kommuniziert, um Ihre Dateien und das Datenmodell des Studios zu synchronisieren.
Rojo mit Rokit installieren
Sie können eine Rojo-Binärdatei manuell 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 – eine Liste von Repositories und Versionen – verwendet, um den Installations- und Upgrade-Prozess über verschiedene Maschinen hinweg konsistent zu gestalten.
Da es Ihre grundlegende Entwicklungsumgebung verwaltet und nicht die Pakete innerhalb Ihres Projekts, ist Rokit eher mit nvm als mit npm vergleichbar, 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 datei-spezifische Dateien, sodass Sie problemlos verschiedene Versionen von Rojo, Wally oder jedem anderen Tool für verschiedene Projekte verwenden und Ihr gesamtes Team auf denselben Versionen halten können.
Wenn ein Tool eine neue Version veröffentlicht, müssen Sie dann die Versionsnummer explizit in Ihrer .toml-Datei erhöhen, Rokit verwenden, um das Upgrade durchzuführen, die neue Version testen und bei Problemen auf die vorherige Version zurückkehren. 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 ist, 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 install
Dann generieren Sie die Projektstruktur für Ihr neues Spiel und erstellen es:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
Alternativ 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 gerade erstellte .rbxl-Datei, öffnen Sie das Rojo-Plugin und verbinden Sie sich mit Ihrem nun laufenden Server, zu diesem Zeitpunkt können Sie beginnen, Änderungen in Ihrem bevorzugten Texteditor vorzunehmen und diese Änderungen werden automatisch mit Studio synchronisiert.


Rojo-Projekte haben bestimmte Benennungsanforderungen für Dateien, zahlreiche Konfigurationsoptionen und einige Einschränkungen, die alle in der Rojo-Dokumentation behandelt werden.
Paketmanager
Roblox verfügt über eine umfassende Sammlung an enthaltenen 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 genau wie Rojo über Rokit installieren.
Führen Sie innerhalb des Rojo-Verzeichnisses Ihres Spiels wally init aus. Fügen Sie dann die 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 wieder nach 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 bevorzugen vielleicht, bestimmte Pakete zu ServerScriptService oder StarterPlayerScripts hinzuzufü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 einbinden:
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
Das Vorhandensein einer Gruppe einfacher 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 jeden Texteditor verwenden, den Sie möchten.
Visual Studio Code und Cursor haben das größte Ökosystem an Erweiterungen, aber Sublime Text, Notepad++ und Vim sind ebenfalls beliebte Optionen. Welchen Editor Sie auch wählen, um die Fähigkeiten des Studio-Skripteditors zu entsprechen, erfordert einige Erweiterungen.
Sie könnten auch in Erwägung 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 publiziertes Spiel zu aktualisieren oder Server neu zu starten
Alles rückgängig machen
Da Drittanbieter-Tools Änderungen zurück nach Roblox Studio synchronisieren, anstatt es zu ersetzen, umfasst kein Teil dieses Workflows eine Bindung. Jederzeit können Sie die Nutzung eines oder aller dieser Tools einstellen und zurückkehren, um Ihr Spiel ausschließlich in Studio zu bearbeiten. Das Fehlen von Risiken macht das Experimentieren mit Drittanbieter-Tools besonders attraktiv.