Derde-partijtools

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

Voor professionele ontwikkelstudio's kan het opzetten van derde-partijtools en investeren in automatisering de productiviteit van ontwikkelaars aanzienlijk verbeteren. De cloud-first benadering van Roblox heeft veel voordelen, maar het verplaatsen van bepaalde delen van de ontwikkelworkflow buiten de cloud kan grotere teams helpen om wijzigingen in de loop van de tijd bij te houden, code te beoordelen en de talen en tools te gebruiken waarmee ze al vertrouwd zijn.

  • Als je gewoon een externe teksteditor wilt gebruiken of code in versiebeheer wilt houden, is Script Sync een geweldige keuze.
  • Als je je hele project als een set lokale bestanden wilt beheren, behandelt deze pagina enkele tools en strategieën.

Het synchronisatieprobleem

In wezen is het gebruik van externe tools met Roblox een synchronisatie probleem:

  • Je wilt dat je Roblox-instanties bestaan als bestanden op de schijf, zodat je je eigen tools kunt gebruiken om eraan te werken.
  • Je moet je bestanden terug in je Roblox-project krijgen nadat je klaar bent met werken.
  • Als iemand anders in de tussentijd diezelfde bestanden heeft gewijzigd, moet je eventuele conflicten oplossen.

Om de hele oplossing naadloos en automatisch te laten aanvoelen, moet je a) luisteren naar wijzigingen in bestanden en b) deze wijzigingen weer in Studio opnemen.

In plaats van de cloud-first benadering van Roblox, staat Rojo een "bestandsysteem-eerst" benadering toe. Het draait een server op je machine die communiceert met een Studio-plugin om je bestanden en het datamodel van Studio te synchroniseren.

Installeer Rojo met Rokit

Je kunt handmatig een Rojo-binaire downloaden en uitvoeren, maar die aanpak loopt het risico dat verschillende ontwikkelaars in je team verschillende Rojo-versies gebruiken. Een betere oplossing is om een toolchain-manager zoals Rokit te gebruiken, die een configuratiebestand gebruikt - een lijst van repositories en versies - om het installatie- en upgradeproces consistent te maken op verschillende machines.

Omdat het je basisontwikkelomgeving beheert in plaats van de pakketten binnen je project, is Rokit meer vergelijkbaar met nvm dan met npm, maar de vergelijking is niet perfect. Een eenvoudig rokit.toml-bestand ziet er als volgt uit:

[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"

Vervolgens installeer je deze tools met rokit install. Naast een globaal rokit.toml-bestand ondersteunt Rokit per-projectbestanden, zodat je gemakkelijk verschillende versies van Rojo, Wally of een andere tool voor verschillende projecten kunt gebruiken en je hele team op diezelfde versies kunt houden.

Wanneer een tool een nieuwe versie uitbrengt, verhoog je expliciet het versienummer in je .toml-bestand, gebruik je Rokit om de upgrade uit te voeren, test je de nieuwe versie en downgraden als het problemen veroorzaakt. Voor commando's en installatie-instructies, zie Rokit.

Voer Rojo uit

Nadat je Rojo met Rokit hebt geïnstalleerd, wat je eigenlijk hebt geïnstalleerd is de Rojo-server. De volgende stap is om de Rojo-plugin voor Roblox Studio te installeren.

Je kunt het installeren vanuit de Creator Store of lokaal installeren met dit commando:

rojo plugin install

Genereer vervolgens de projectstructuur voor je nieuwe game en bouw het:

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

Alternatief kun je een bestaand spel porteren. Hoe dan ook, nadat je een project hebt, start je de Rojo-server:

rojo serve

Open in Roblox Studio het .rbxl-bestand dat je net hebt gebouwd, open de Rojo-plugin en maak verbinding met je nu draaiende server, waarna je kunt beginnen met het aanbrengen van wijzigingen in je favoriete teksteditor en die wijzigingen automatisch kunt laten synchroniseren met Studio.

Visual Studio Code met een geopend Rojo-project.

De Rojo-plugin en Studio Explorer naast elkaar.

Rojo-projecten hebben bepaalde naamgevingsvereisten voor bestanden, talrijke configuratieopties en enkele beperkingen, die allemaal worden behandeld in de Rojo-documentatie.

Pakketbeheerders

Roblox heeft een robuuste set ingebouwde API's, maar als je gebruik wilt maken van softwarepakketten van de gemeenschap op een consistente, reproduceerbare manier, heb je een pakketbeheerder nodig. Wally is een populaire optie. Je kunt het installeren via Rokit, net als Rojo.

Voer binnen de Rojo-directory van je game wally init uit. Voeg vervolgens je gewenste pakketten toe aan wally.toml. Het bestand kan er als volgt uitzien:

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

Voer vervolgens wally install uit. Wally maakt een Packages-directory aan en downloadt de opgegeven pakketten daar. De laatste stap is om de Packages-directory aan Rojo toe te voegen, zodat de inhoud weer naar Roblox synchroniseert. Open default.project.json en voeg het pad toe. Voor de eenvoud voegt dit voorbeeld de hele directory toe aan ReplicatedStorage, zodat alle pakketten beschikbaar zijn voor alle scripts, maar je kunt ervoor kiezen om specifieke pakketten toe te voegen aan ServerScriptService of StarterPlayerScripts:

{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}

Vervolgens kun je pakketten binnen je scripts vereisen zoals elke andere 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 = "Hallo Wereld!",
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)

Zoals bij de meeste andere softwareprojecten is het doel dat bijdragers een repository kunnen klonen, Rokit kunnen installeren, een paar commando's kunnen uitvoeren en dezelfde ontwikkelomgeving hebben als de rest van het team.

Versiebeheer

Het hebben van een set platte tekstbestanden op je computer ontgrendelt een verscheidenheid aan mogelijkheden, maar de belangrijkste is versiebeheer. Je kunt je bestanden opslaan in een Git of Mercurial repository; host externe repositories en beoordeel codewijzigingen in GitHub, GitLab of Bitbucket; en gebruik welke teksteditor je maar wilt.

Visual Studio Code en Cursor hebben het grootste ecosysteem van extensies, maar Sublime Text, Notepad++ en Vim zijn ook populaire keuzes. Welke editor je ook kiest, het evenaren van de mogelijkheden van de Studio-scripteditor vereist enkele extensies.

Je kunt ook overwegen om toe te voegen:

Ongedaan maken alles

Omdat derde-partijtools wijzigingen terug synchroniseren naar Roblox Studio in plaats van het te vervangen, omvat geen enkel deel van deze workflow enige lock-in. Op elk moment kun je stoppen met het gebruik van een of al deze tools en teruggaan naar het exclusief bewerken van je game in Studio. Het gebrek aan risico maakt het experimenteren met derde-partijtools bijzonder aantrekkelijk.

©2026 Roblox Corporation. Roblox, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.