Dritt-Werkzeuge

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Für professionelle Entwicklungs-Studios, die Dritt-Tools einrichten und in die Automatisierung investieren, kann die einfache Verwendung von Dritt-Tools ein großer Vorteil sein. Roblox's cloud-first-Ansatz hat viele Vorteile, aber die Umstellung bestimmter Teile des Entwicklungs-Workflows außerhalb der Cloud kann größeren Teams helfen, Änderungen im Laufe der Zeit zu verfolgen, Codeszu überprüfen und die Sprachen und Werkzeuge zu verwenden, mit denen sie bereits vertraut sind.

Das Synchronisierungsproblem

In seinem Kern ist die Verwendung von externen Tools mit Roblox ein Sync--Problem:

  • Du möchtest, dass deine Roblox-Skripte als .luau-Dateien auf dem Festplatte existieren, damit du deine eigenen Werkzeuge verwenden kannst, um daran zu arbeiten.
  • Du musst deine Dateien in dein Roblox-Projekt zurückbringen, nachdem du damit fertiggestellt hast.
  • Wenn jemand anderes diese Dateien in der Zwischenzeit geändert hat, musst du jede Konflikte behandeln.

Für die gesamte Lösung, um einwandfreies und automatisches Feeling zu haben, musst du a) auf Veränderungen in Dateien hören und b) diese Veränderungen in Studio integrieren. In anderen Worten, du brauchst einen Server und ein Plug-in, wie Rojo dieses Problem löst.

Statt der cloud-first-Ansicht von Roblox erlaubt Rojo einen "Dateisystem- ersten"-Ansatz. Es extrahiert alle Skript-Dateien in deinem Projekt in Luau-Dateien. Dann läuft ein Server. Das Rojo-Plugin verbindet sich mit dem Server, um diese Dateien mit Studio zu synchronisieren.

Rojo mit Foreman installieren

Du kannst manuell ein Rojo-Binär herunterladen und ausführen, aber dieser Ansatz birgt das Risiko, dass verschiedene Entwickler auf deinem Team mit verschiedenen Versionen von Rojo arbeiten. Ein besseres Lösung ist, ein Tool-Manager wie Foreman zu verwenden, der eine Konfigurationsdatei verwendet - eine Liste von Repositorien und Versionen -, um den Installations- und Upgrade-Prozess konsistent auf mehreren Maschinen zu machen.

Da es seine Basis-Entwicklungsumgebung verwaltet, nicht aber die Pakete innerhalb Ihres Projekts, ist Foreman ähnlicher zu nvm als npm, aber die Vergleich ist nicht perfekt. Ein einfacher foreman.toml-Datei sieht wie folgt aus:


[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }

Dann installieren Sie diese Tools mit foreman install . Darüber hinaus unterstützt Foreman per-project-Dateien, so dass Sie ein globales foreman.toml -Datei verwenden können, um verschiedene Versionen von Rojo, Wally oder einer anderen Werkzeug für verschiedene Projekte einfach zu verwalten und Ihr gesamtes Team auf dieselben Versionen zu halten.

Wenn ein Werkzeug eine neue Version veröffentlicht, dann baumst du die Versionnummer in deinem .toml Datei explizit ein, verwendest Foreman, um die Upgrade-Version auszuführen, die neue Version zu testen und sie abzugraden, wenn sie irgendwelche Probleme verursacht. Für Befehle und Installationsanweisungen siehe Foreman.

Rojo ausführen

Nachdem du Rojo mit Foreman installiert hast, was du wirklich installiert hast, ist der Rojo-Server. Der nächste Schritt ist es, das Rojo-Plugin für Roblox Studio zu installieren:


rojo plugin install

Dann erstellen Sie die Projektstruktur für Ihr neues Erlebnis und bauen Sie sie auf:


rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxl

Alternativ kannst du eine bestehende Erfahrung portieren. Wenn du ein Projekt hast, startest du den Rojo-Server:


rojo serve

Öffnen Sie in Roblox Studio die .rbxl Datei, die du gerade erstellt hast, starten Sie das Plug-inund verbinden Sie sich mit deinem laufenden Server, an dem du Änderungen in deinem bevorzugten Text-Editor vornehmen kannst und diese Änderungen automatisch auf Studio synchronisieren kannst.

Rojo-Projekte haben bestimmte Namensanforderungen für Dateien, zahlreiche Konfigurationsoptionen und einige Einschränkungen, von denen alle in der Rojo-Dokumentation beschrieben sind.

Paket-Manager

Roblox hat ein robustes Set von enthaltenen APIs, aber wenn Sie die Community-Software-Packs in einer konsistenten, wiederholbaren Weise verwenden möchten, brauchen Sie einen Paket-Manager. Wally ist eine beliebte Option. Sie können es über Foreman installieren, genau wie Rojo.

In der Rojo-Verzeichnis deines Erlebnisses führe wally init. Dann füge deine gewünschten Pakete hinzu wally.toml. Die Datei sieht wie folgt aus:


[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"

Dann führen Sie wally install aus. Wally erstellt eine Packages-Ordner und herunterladen die angegebenen Pakete dort


{
"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 erfordern:


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)

Wie die meisten anderen Softwareprojekte ist das Ziel, dass Mitwirkende ein Repository klonen, Foreman installieren, einige Befehle ausführen und dasselbe Entwicklungs-Umgebung wie der Rest des Teams haben.

Versionskontrolle

Die Bereitstellung einer Reihe von einfachen Textdateien auf Ihrem Computer schaltet eine Vielzahl von Fähigkeiten frei, aber die Hauptfähigkeit ist Versionskontrolle. Sie können Ihre Skripte und Konfigurationsdateien in einem Git oder Mercurial Repository speichern; Hosten Sie Remote-Repositorien und Überprüfen Sie Code

Visual Studio Code hat das größte Erweiterungsecosystem, aber Sublime Text , Notepad++ und 0> Vim 0> sind alle beliebte Auswahlmöglichkeiten. Wenn Sie sich für einen Editor wählen, der die Fähigkeiten des Studio-Skript-Editors verwendet, erfordert einige Erweiterungen.

Du solltest auch überlegen, hinzuzufügen:

Assets

Die Werkzeuge auf dieser Seite sind für Skripte am wahrscheinlichsten; 3D-Künstler verwenden bereits externe Werkzeuge wie Blender und Maya, speichern die Quelldateien in der Versionskontrolle und importieren ihre Kreationen in Studio. Nachdem Sie ein Objekthaben, empfehlen wir, Pakete zu verwenden, wenn möglich.

Die Roblox-Umsetzung von Paketen folgt vielen der gleichen Prinzipien wie die Werkzeuge auf dieser Seite: ein zentralisiertes Repository mit Versionen, die einen reibungslosen Weg bietet, alle Kopien eines Assets in Sinkron zu halten. Weitere Informationen darüber, wie sie Ihren Workflow verbessern können, finden Sie unter Pakete.

Alles rückgängig machen

Da dritte Partei-Tools Änderungen an der Synchronisierung von Roblox Studio zurückgeben, anstatt sie zu ersetzen, enthält kein Teil dieses Workflows irgendeinen Lock-in. In jedem Moment können Sie die Verwendung eines oder aller Tools beenden und zurückkehren, um Ihr Erlebnis ausschließlich in Studio zu bearbeiten. Die Risikolosigkeit macht das Experimentieren mit Drittwerkzeugen besonders attraktiv.