Dla profesjonalnych studiów rozwojowych ustawienie narzędzi stron trzecich i inwestycja w automatyzację może diametralnie poprawić wydajność rozwoju. Cloud-first podejście Roblox ma wiele zalet, ale przeniesienie niektórych części workfldu rozwoju poza chmurę może pomóc większym zespołom śledzić zmiany w ciągu czasu, przeglądać kod i używać języków i
Problem Synchronizacji
W swoim rdzeniu używanie zewnętrznych narzędzi z Roblox jest problemem synchronizacji :
- Chcesz, aby Twoje skrypty Roblox istniały jako .luau pliki na dysku, abyś mógł używać własnych narzędzi do pracy nad nimi.
- Musisz dostać swoje pliki z powrotem do swojego projektu Roblox po zakończeniu pracy nad nimi.
- Jeśli ktoś inny zmienił te same pliki w międzyczasie, musisz rozwiązać wszelkie konflikty.
Aby całe rozwiązanie czuło się płynne i automatyczne, musisz słuchać zmian w plikach i w) wdrożyć te zmiany w Studio. Innymi słowy, potrzebujesz dodatek plug-ini wtyczki Studio, aby rozwiązać ten problem.
W odróżnieniu od podejścia cloud-first Roblox, Rojo umożliwia podejście "pierwsze systemu plików". Wystarczy wykonać wszystkie pliki skryptowe w twoim projekcie w plikach Luau. Następnie uruchom serwer. Plugin Rojo połącza się z serwerem, aby zsynchronizować te pliki z Studio.
Instalacja Rojo z Foremanem
Możesz ręcznie załadować i uruchomić binarny Rojo, ale ten podejście biegnie ryzyko różnych rozwójców na Twoim zespole, używając różnych wersji Rojo. Lepszym rozwiązaniem jest użycie konsumenta narzędzi, takiego jak Foreman, który używa pliku konfiguracji – listy repozytoriów i wersji – aby zautomatyzować proces instalacji i aktualizacji na maszynach.
Ponieważ zarządza twoim środowiskiem rozwoju podstawowego, a nie pakietami w twoim projekcie, Foreman jest bardziej podobny do nvm niż npm, ale porównanie nie jest doskonałe. Prosty foreman.toml plik wygląda jak to:
[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }
Następnie instalujesz te narzędzia za pomocą foreman install . Oprócz globalnego pliku foreman.toml , Foreman wspiera pliki projektowe, więc możesz łatwo używać różnych wersji Rojo, Wally lub dowolnego innego narzędzia dla różnych projektów i utrzymać cały swój zespół na tych samych wersjach.
Gdy narzędzie uwala nową wersję, zwiększasz wtedy wyraźnie numer wersji w swoim pliku .toml, używając Foreman, aby wykonać uaktualnienie, testować nową wersję i degrade, jeśli powoduje jakiekolwiek problemy. Dla komend i instrukcji instalacyjnych, zobacz Foreman.
Korridor biegnący
Po zainstalowaniu Rojo z Foremanem, co naprawdę zainstalowałeś, to serwer Rojo. Kolejnym krokiem jest zainstalowanie wtyczki Rojo dla Roblox Studio:
rojo plugin install
Następnie generuj strukturę projektu dla swojego nowego doświadczenia i zbuduj go:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
Alternatywnie możesz portować już istniejące doświadczenie . W każdym razie, po tym jak masz projekt, uruchom serwer Rojo:
rojo serve
W Roblox Studio otwórz plik .rbxl, który właśnie zbudowałeś, zacznij Rojo dodatek plug-ini połącz się z twoim bieżącym serwerem, na którym możesz zacząć dokonywać zmian w swoim ulubionym edytorze tekstu i oglądać te zmiany automatycznie zsynchronizowane do Studio.
Projekty Rojo spełniają pewne wymagania dotyczące nazw dla plików, liczne opcje konfiguracji i kilka ograniczeń, wszystkie z których są opisane w Dokumentacji Rojo.
Menedżerowie Pakietów
Roblox ma solidny zestaw wbudowanych API, ale jeśli chcesz wykorzystać oprogramowanie społeczności w spójny, powtarzalny sposób, musisz mieć zarządzacz pakietami. Wally jest popularną opcją. Możesz go zainstalować za pośrednictwem Foreman, tak jak Rojo.
W katalogu Rojo swojego doświadczenia, wykonaj wally init. Następnie dodaj swoje pożądane pakiety do wally.toml . Plik może wyglądać tak:
[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"
Następnie uruchom wally install. Wally tworzy Packages dyrektorię i pobiera Packages z tamtym
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}
Następnie możesz wymagać pakietów w swoich skryptach tak jak w dowolnym innym 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 = "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)
Podobnie jak w większości innych projektów oprogramowania, celem jest, aby użytkownicy mogli klonować仓库、instalować Foreman、wykonawać kilka komend i mieć ten sam środowisko rozwojowe co reszta zespołu.
Kontrola wersji
Posiadanie zestawu plików tekstu na swoim komputerze odblokowuje różnorodne funkcje, ale główną jest kontrola wersji. Możesz przechowywać swoje skrypty i pliki konfiguracyjne w Git lub Mercurial pojemniku; hostuj remoto repositoria i
Visual Studio Code ma największy ekosystem rozszerzeń, ale Sublime Text, Notepad++ i 0> Vim0> są wszystkie popularne wybory. Niezależnie od wybranego edytora, dopasowanie zdolności Studio script editor będzie wymagać niektórych rozszerzeń.
Możesz również rozważyć dodanie:
- Linter jak selene służący do łapania zwykłych problemów i egzekwowania standardów kodowania
- Formatter kodu, takich jak StyLua
- Serwer językowy, taki jak Luau Language Server dla autokompletacji, sprawdzania typu i wiele więcej
- Otwórz skrypcje chmury (nie zsynchronizowane z Studio) aby aktualizować opublikowaną eksperyencję lub zresetować serwer
Zasoby
Narzędzia na tej stronie są najbardziej odpowiednie dla skryptów; 3D artyści już używają zewnętrznych narzędzi, takich jak Blender i Maya, przechowywanie plików źródłowych w kontroli wersji i importowanie ich twórczości do Studio. Po posiadaniu przez Siebie zasobu Studio, zalecamy używanie pakietów za każdym razem, gdy to możliwe.
Realizacja pakietów w Roblox podąża za wieloma z tych samych zasad co narzędzia na tej stronie: centralizowanym przechowywanie z historią wersji, które oferuje bezproblemowy sposób utrzymywania wszystkich kopii zasobu w równolegle. Aby uzyskać więcej informacji o tym, jak mogą poprawić twoją pracę, zobacz Pakiety.
Rozdzakodowywanie wszystkiego
Ponieważ narzędzia stron trzecich synchronizują zmiany z powrotem do Roblox Studio, a nie je zastępują, żadna część tego workflowu nie wiąże się z żadnym zablokowaniem. W dowolnym momencie możesz zatrzymać używanie jednej lub wszystkich tych narzędzi i powrócić do edytowania swojego doświadczenia wyłącznie w Studio. Brak ryzyka czyni eksperymentowanie z narzędziami stron trzecich szczególnie atrakcyjnym