Profesyonel geliştirme stüdyoları için, üçüncü taraf araçları kurmak ve otomasyona yatırım yapmak, geliştirici verimliliğini önemli ölçüde artırabilir. Roblox'un bulut öncelikli yaklaşımının birçok avantajı vardır, ancak geliştirme iş akışının belirli kısımlarını bulutun dışına taşımak, daha büyük ekiplerin zaman içinde değişiklikleri takip etmesine, kodu gözden geçirmesine ve zaten aşina oldukları dilleri ve araçları kullanmasına yardımcı olabilir.
- Sadece harici bir metin düzenleyici kullanmak veya kodu sürüm kontrolünde tutmak istiyorsanız, Script Sync harika bir seçimdir.
- Projenizi yerel dosyalar seti olarak yönetmek istiyorsanız, bu sayfa bazı araçlar ve stratejiler hakkında bilgi vermektedir.
Senkronizasyon sorunu
Temelde, Roblox ile harici araçlar kullanmak bir senkronizasyon sorunudur:
- Roblox örneklerinizin disk üzerinde dosyalar olarak var olmasını istiyorsunuz, böylece kendi araçlarınızı kullanarak üzerinde çalışabilirsiniz.
- Üzerinde çalışmayı bitirdikten sonra dosyalarınızı tekrar Roblox projenize geri almanız gerekiyor.
- Bu dosyaları bu süre zarfında başka biri değiştirdiyse, herhangi bir çakışmayı yönetmeniz gerekiyor.
Tüm çözümün sorunsuz ve otomatik hissettirmesi için a) dosyalardaki değişiklikleri dinlemeniz ve b) bu değişiklikleri Studio'ya geri entegre etmeniz gerekir.
Roblox'un bulut öncelikli yaklaşımının yerine, Rojo "dosya sistemi öncelikli" bir yaklaşım sunar. Bu, dosyalarınızı ve Studio veri modelinizi senkronize etmek için makinenizde bir sunucu çalıştırır ve bir Studio eklentisi ile iletişim kurar.
Rokit ile Rojo'yu Kurun
Rojo ikili dosyasını manuel olarak indirip çalıştırabilirsiniz, ancak bu yaklaşım, ekibinizdeki farklı geliştiricilerin farklı Rojo sürümleri kullanma riski taşır. Daha iyi bir çözüm, Rokit gibi bir araç zinciri yöneticisi kullanmaktır; bu, kurulum ve yükseltme sürecini makineler arasında tutarlı hale getirmek için bir yapılandırma dosyası—bir dizi depo ve sürüm listesi—kullanır.
Projenizdeki paketleri değil, temel geliştirme ortamınızı yönettiği için Rokit, nvm ile npm arasında daha çok bir benzerlik taşır, ancak karşılaştırma mükemmel değildir. Basit bir rokit.toml dosyası şu şekilde görünür:
[tools]
rojo = "rojo-rbx/rojo@7.6.1"
wally = "upliftgames/wally@0.3.2"
lune = "lune-org/lune@0.10.4"Sonra bu araçları rokit install ile kurarsınız. Küresel bir rokit.toml dosyasının yanı sıra, Rokit proje başına dosyaları destekler, böylece farklı projeler için Rojo, Wally veya başka herhangi bir aracın farklı sürümlerini kolayca kullanabilir ve tüm ekibinizi aynı sürümlerde tutabilirsiniz.
Bir araç yeni bir sürüm çıkardığında, .toml dosyanızda sürüm numarasını açıkça artırır, Rokit'i kullanarak yükseltmeyi gerçekleştirir, yeni sürümü test eder ve herhangi bir sorun çıkarsa geri düşersiniz. Komutlar ve kurulum talimatları için Rokit sayfasına bakın.
Rojo'yu Çalıştırın
Rokit ile Rojo'yu kurduktan sonra, gerçekten kurduğunuz şey Rojo sunucusudur. Bir sonraki adım, Roblox Studio için Rojo eklentisini kurmaktır.
Bunu Creator Store üzerinden kurabilir veya bu komutla yerel olarak kurabilirsiniz:
rojo plugin installSonra yeni oyununuz için proje yapısını oluşturun ve inşa edin:
rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxlAlternatif olarak, mevcut bir oyunu taşımayı da tercih edebilirsiniz. Her iki durumda da, bir projeye sahip olduktan sonra Rojo sunucusunu başlatın:
rojo serveRoblox Studio'da, yeni oluşturduğunuz .rbxl dosyasını açın, Rojo eklentisini açın ve artık çalışan sunucunuza bağlanın; bu noktada tercih ettiğiniz metin düzenleyicisinde değişiklik yapmaya başlayabilir ve bu değişikliklerin otomatik olarak Studio'ya senkronize olduğunu görebilirsiniz.


Rojo projeleri, dosyalar için belirli adlandırma gereksinimlerine, birçok yapılandırma seçeneğine ve bazı sınırlamalara sahiptir; bunların hepsi Rojo belgelerinde ele alınmaktadır.
Paket yöneticileri
Roblox, kapsamlı bir API setine sahiptir, ancak topluluk yazılım paketlerini tutarlı ve tekrarlanabilir bir şekilde kullanmak istiyorsanız, bir paket yöneticisine ihtiyacınız vardır. Wally popüler bir seçenektir. Bunu Rokit aracılığıyla, Rojo gibi kurabilirsiniz.
Oyununuzun Rojo dizininde wally init komutunu çalıştırın. Ardından istediğiniz paketleri wally.toml dosyasına ekleyin. Dosya şu şekilde görünebilir:
[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"Sonra wally install komutunu çalıştırın. Wally, Packages dizinini oluşturur ve belirtilen paketleri oraya indirir. Son adım, Packages dizinini Rojo'ya eklemektir, böylece içeriği Roblox'a senkronize olur. default.project.json dosyasını açın ve yolu ekleyin. Basitlik açısından, bu örnek tüm dizini ReplicatedStorage'a ekler, böylece tüm paketler tüm scriptlere erişilebilir, ancak belirli paketleri ServerScriptService veya StarterPlayerScripts'e eklemeyi tercih edebilirsiniz:
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}Sonra scriptleriniz içinde paketleri, diğer ModuleScript'ler gibi talep edebilirsiniz:
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 = "Merhaba Dünya!",
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)Diğer yazılım projeleri gibi, hedef, katkıda bulunanların bir depoyu klonlayabilmesi, Rokit'i kurabilmesi, birkaç komut çalıştırabilmesi ve ekibin geri kalanıyla aynı geliştirme ortamına sahip olabilmesidir.
Sürüm kontrolü
Bilgisayarınızda düz metin dosyalarına sahip olmak, çeşitli yetenekleri açar, ancak bunların en önemlisi sürüm kontrolüdür. Dosyalarınızı bir Git veya Mercurial deposunda saklayabilir; uzaktan depolar barındırabilir ve GitHub, GitLab veya Bitbucket üzerinde kod değişikliklerini gözden geçirebilirsiniz; ve istediğiniz metin düzenleyicisini kullanabilirsiniz.
Visual Studio Code ve Cursor en büyük eklenti ekosistemine sahiptir, ancak Sublime Text, Notepad++ ve Vim de popüler seçeneklerdir. Hangi düzenleyiciyi seçerseniz seçin, Studio script düzenleyicisinin yeteneklerini eşleştirmek bazı eklentiler gerektirecektir.
Ayrıca eklemeyi düşünebilirsiniz:
- Yaygın sorunları yakalamak ve kodlama standartlarını zorlamak için bir linter olan selene
- Bir kod biçimlendirici olan StyLua
- Otomatik tamamlama, tür kontrolü ve daha fazlası için Luau Language Server gibi bir dil sunucusu
- Open Cloud scriptleri (Studio'ya senkronize edilmemiş) ile yayınlanmış bir oyunu güncellemek veya sunucuları yeniden başlatmak
Her şeyi geri al
Üçüncü taraf araçlar değişiklikleri Roblox Studio'ya senkronize ettiğinden, bu iş akışının hiçbir kısmı herhangi bir kilitlenme içermez. İstediğiniz zaman bu araçlardan birini veya hepsini kullanmayı bırakabilir ve oyununuzu yalnızca Studio'da düzenlemeye geri dönebilirsiniz. Riskin olmaması, üçüncü taraf araçlarla deneme yapmayı özellikle çekici kılar.