Profesyonel geliştirme stüdyoları için, üçüncü taraf araçları ayarlamak 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 bölümlerini bulutun dışına çıkarmak, daha büyük ekiplerin zaman içindeki değişiklikleri takip etmelerine, kodu gözden geçirmelerine ve zaten aşina oldukları dilleri ve araçları kullanmalarına yardımcı olabilir.
- Sadece harici bir metin editörü 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 üzerinde durmaktadır.
Senkronizasyon Problemi
Temelde, Roblox ile harici araçlar kullanmak bir senkronizasyon problemidir:
- Roblox örneklerinizin disk üzerinde dosya 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 almalısınız.
- Bu dosyaları aynı anda başka biri değiştirdiyse, herhangi bir çatışmayı yönetmeniz gerekir.
Bütün çözümün sorunsuz ve otomatik hissettirmesi için a) dosyalardaki değişiklikleri dinlemeniz ve b) bu değişiklikleri Studio'ya entegre etmeniz gerekir.
Roblox'un bulut öncelikli yaklaşımının yerine, Rojo "dosya sistemi öncelikli" bir yaklaşımı mümkün kılar. Dosyalarınızı ve Studio veri modelinizi senkronize etmek için makinenizde çalışan bir sunucu çalıştırır.
Rokit ile Rojo'yu Kurun
Bir Rojo binary'sini manuel olarak indirip çalıştırabilirsiniz, ancak bu yaklaşım ekibinizde farklı Rojo versiyonları kullanan farklı geliştiriciler riskini taşır. Daha iyi bir çözüm, yükleme ve yükseltme sürecini makineler arasında tutarlı hale getirmek için bir yapı yöneticisi olan Rokit kullanmaktır; bu bir yapılandırma dosyası - bir dizi depo ve versiyonlar - kullanmaktadır.
Rokit, proje içindeki paketleri değil, temel geliştirme ortamınızı yönettiğinden, nvm ile npm arasında daha çok bir benzerlik taşır, ancak benzetme mükemmel değildir. Basit bir rokit.toml dosyası şöyle 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"
Sonrasında bu araçları rokit install ile kurabilirsiniz. Küresel bir rokit.toml dosyasının yanı sıra, Rokit projesi başına dosyaları da destekler, böylece farklı projeler için Rojo, Wally veya başka bir aracın farklı versiyonlarını kolayca kullanabilir ve ekibinizin tamamını bu versiyonlarda tutabilirsiniz.
Bir araç yeni bir versiyon yayınladığında, .toml dosyanızda versiyon numarasını açıkça artırır, Rokit üzerinden güncellemeyi gerçekleştirir, yeni versiyonu test eder ve eğer sorun çıkarıyorsa geriye dönüş yaparsınız. 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. Sonraki adım, Roblox Studio için Rojo eklentisini kurmaktır.
Bunu Creator Store üzerinden veya bu komutla yerel olarak kurabilirsiniz:
rojo plugin install
Ardından yeni oyununuz için proje yapısını oluşturun ve inşa edin:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
Alternatif olarak, mevcut bir oyunu da aktarabilirsiniz. Her iki durumda da, bir projeye sahip olduktan sonra Rojo sunucusunu başlatın:
rojo serve
Roblox Studio'da, az önce 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 editöründe değişiklik yapmaya başlayabilir ve bu değişikliklerin otomatik olarak Studio'ya senkronize edildiğini görebilirsiniz.


Rojo projeleri dosyalar için belirli isimlendirme gerekliliklerine, birçok yapılandırma seçeneğine ve bazı sınırlamalara sahiptir, bunların hepsi Rojo dokümantasyonu içinde anlatılmaktadır.
Paket Yöneticileri
Roblox, dahil edilen API'lerin sağlam bir setine sahiptir, ancak topluluk yazılım paketlerini tutarlı ve tekrar edilebilir bir şekilde kullanmak istiyorsanız, bir paket yöneticisine ihtiyacınız vardır. Wally popüler bir seçenektir. Bunu Rokit ile, Rojo gibi kurabilirsiniz.
Oyununuza ait Rojo dizininde wally init komutunu çalıştırın. Ardından istediğiniz paketleri wally.toml dosyasına ekleyin. Dosya şöyle 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"
Sonrasında wally install komutunu çalıştırın. Wally, bir Packages dizini oluşturur ve belirtilen paketleri oraya indirir. Son adım, Packages dizinini Rojo'ya eklemek, böylece içeriği Roblox ile senkronize edilir. default.project.json dosyasını açın ve yolu ekleyin. Basitlik adına, bu örnek, tüm dizini ReplicatedStorage'a eklemektedir, 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"
}
},
...
}
}
Sonrasında, diğer ModuleScript'lerle aynı şekilde scriptleriniz içinde paketleri kullanabilirsiniz:
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 depo klonlayabilmesi, Rokit'i yükleyebilmesi, birkaç komut çalıştırabilmesi ve ekibin geri kalanıyla aynı geliştirme ortamını elde edebilmesidir.
Versiyon Kontrolü
Bilgisayarınızda düz metin dosyalarına sahip olmak çeşitli olanakları açar, ancak bunların en önemlisi versiyon kontrolü'dür. Dosyalarınızı bir Git veya Mercurial deposunda saklayabilir; uzaktan depolar barındırabilir ve GitHub, GitLab veya Bitbucket 'da kod değiştirmelerini gözden geçirebilirsiniz; ve istediğiniz metin editörünü kullanabilirsiniz.
Visual Studio Code ve Cursor en büyük uzantı ekosistemine sahiptir, ancak Sublime Text, Notepad++ ve Vim de popüler seçeneklerdir. Hangi editörü seçerseniz seçin, Studio script editörünün yeteneklerini eşleştirmek için bazı uzantılar gerekecektir.
Ayrıca şunları eklemeyi düşünebilirsiniz:
- Yaygın sorunları yakalamak ve kodlama standartlarını uygulamak için selene adlı bir linter
- StyLua adlı bir kod formatlayıcı
- Otomatik tamamlama, tip kontrolü ve daha fazlası için Luau Language Server adlı bir dil sunucusu
- Açık Bulut scriptlerini (Studio'ya senkronize edilmemiş) 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 etmekte olduğu için, 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 dönebilirsiniz. Riski olmaması, üçüncü taraf araçlarla deneme yapmayı özellikle cazip hale getirir.