Her yer, bir veri modeli ile temsil edilir; bu, yeri tanımlayan nesnelerin hiyerarşisidir. Veri modeli, parçalar, arazi, aydınlatma ve diğer çevresel unsurlar gibi 3D dünyayı oluşturan tüm nesneleri içerir. Ayrıca, özellikleri değiştiren, yöntemleri ve fonksiyonları çağıran ve dinamik davranış ve etkileşim sağlayan olaylara yanıt veren betikler gibi çalışma zamanı davranışını kontrol edebilen nesneleri de içerir.
Roblox Motoru, bir yerin durumunun doğru kaynağı olarak veri modelini kullanır, böylece bunu istemci cihazlarında simüle edebilir ve render edebilir. Roblox Motoru'nun veri modelini nasıl yorumladığı hakkında daha fazla bilgi için İstemci-Sunucu Çalışma Zamanı bölümüne bakın.
Nesneler
Roblox'ta bir yeri tanımlamak için veri modelinde nesneleri yerleştirir ve düzenlersiniz. Roblox'taki her nesne, tüm nesneler için ortak olan genel özellikleri, yöntemleri ve olayları tanımlayan Instance sınıfından miras alır. Nesneler ayrıca, nesnenin sağladığı işlevselliğe bağlı olarak kendi özelliklerini tanımlar. Birçok kategori ve çeşitli kullanımlara sahip nesne vardır, ancak genellikle BasePart ve LuaSourceContainer nesneleri ile çalışacaksınız; bunlar genellikle parçalar ve betikler olarak adlandırılır.
Roblox Motoru'nun tüm özelliklerinin kapsamlı bir listesi için referans belgelerine bakın.
3D yapı taşları
BasePart, dünyadaki fiziksel olarak simüle edilen 3D yapı taşları için temel sınıftır. Konum, boyut ve yön gibi özelliklere sahip tüm fiziksel nesneler için ortak özellikleri ve yöntemleri tanımlar.
| Nesne | Açıklama |
|---|---|
| Part | Bir blok, top, silindir, kama veya köşe kama şeklini alabilen ilkel bir parça. |
| MeshPart | Maya veya Blender gibi 3D modelleme yazılımlarından içe aktarılan bir ağ. |
| TrussPart | Karakterlerin merdiven gibi tırmanabileceği bir kiriş. |
Teorik olarak sadece basit parçalar kullanarak tamamen işlevsel bir Roblox oyunu oluşturabilirsiniz, ancak muhtemelen ağlar içe aktaracak ve ilkel parçaları daha karmaşık nesneler ve yapılar haline getirmek için katı modelleme kullanacaksınız.
Betikler
3D dünyanıza etkileşim ve davranış ekleyebilir ve mantığı betiklerle tanımlayabilirsiniz. Parçaları hareket ettirmek, diğer betikleri çağırmak ve olaylara yanıt vermek gibi şeyler yapmak için Luau programlama dilinde betikler yazarsınız. Roblox, istemci-sunucu modelinde çalıştığı için betikleri sunucuda, istemcide çalıştırabilir veya bunların ağ sınırında iletişim kurmasını sağlayabilirsiniz.
- Script nesnesi, yalnızca sunucuda çalışabilen bir betiği temsil eder.
- LocalScript nesnesi, yalnızca istemcide çalışabilen bir betiği temsil eder.
- ModuleScript nesnesi, hem sunucu hem de istemci betiklerinden require() ile erişebileceğiniz yeniden kullanılabilir bir betiği temsil eder.
Betiklerin düzgün çalışması için, veri modelinde doğru konteynerlere yerleştirmeniz gerekir. Daha fazla bilgi için Sunucu ve İstemci bölümlerine bakın.
Nesne organizasyonu
Veri modelinizi nasıl organize edeceğiniz konusunda çok fazla esnekliğe sahip olsanız da, Roblox Motoru belirli nesnelerin belirli konteyner hizmetlerinde bulunmasını bekler; bu, belirli davranışlara sahip nesnelerdir ve içerdiği nesnelerin davranışlarını etkileyebilir. Konteyner hizmetlerinin ana kategorileri şunlardır:
- Çalışma Alanı — Workspace, 3D dünyada render edilen tüm nesneleri depolar.
- Çevre — Çevresel ayarlar ve unsurlar için nesneleri içeren Lighting ve SoundService gibi konteynerler.
- Yinelenme — Sunucu ve istemci arasında yinelenen içerik ve mantık için konteynerler, örneğin ReplicatedStorage ve ReplicatedFirst.
- Sunucu — Sadece sunucu tarafında bulunan içerik ve mantık için konteynerler, örneğin ServerScriptService ve ServerStorage.
- İstemci — İstemci tarafında bulunan içerik ve mantık için konteynerler, örneğin StarterPlayer ve StarterGui.
- Sohbet — Sohbet özelliklerini etkinleştiren nesneler için konteynerler, örneğin VoiceChatService ve TextChatService.
Ayrıca, nesnelerinizi aşağıdaki nesnelerle daha da organize edebilirsiniz:
- Klasörler — Folder, organizasyon amaçlıdır ve herhangi bir davranış tanımlamaz. Örneğin, sunucu depolama alanındaki benzer nesneleri gruplamak için klasörler kullanabilirsiniz.
- Modeller — Model, genellikle parçaların geometrik gruplamaları için tasarlanmıştır; örneğin, bir sandalye, masa ve lamba içeren bir masa setini bir araya getirmek için. Daha karmaşık setleri organize etmek için, modelleri modellerin içine bile yerleştirebilirsiniz.
Çalışma Alanı
Workspace, bir yerin 3D dünyasını oluşturan tüm nesneleri içerir. 3D dünyanızı özelleştirmek için çalışma alanına parçalar, ağ parçaları ve modeller gibi nesneler ekleyebilirsiniz. İstemciler, bu konteynerde görünen her şeyi render eder ve bunun dışındaki hiçbir şeyi render etmez, böylece kullanıcıların yerinizde neyi göreceğini ve etkileşimde bulunacağını kontrol edebilirsiniz. Gerçekte render edilmemiş olsalar da, ilişkili oldukları parçalara ve modellere ebeveyn olarak ekleyebileceğiniz betikler de ekleyebilirsiniz. Varsayılan olarak, çalışma alanı Terrain ve Camera nesnesi ile önceden doldurulmuştur.
Kamera
Camera, istemcinin 3D dünyayı nasıl gördüğünü belirler. Varsayılan olarak, çalışma alanında bir kamera vardır, ancak farklı perspektifler ve görünümler oluşturmak için birden fazla kamera nesnesi ekleyebilirsiniz. Her istemci bu ayarları alır ve sunucunun doğrudan değiştiremeyeceği kendi kamera görünümünü oluşturur.
Örneğin, bir kamerayı kullanıcı hareketlerini takip edecek şekilde ayarlayabilir veya belirli bir konumda sabit tutabilirsiniz. Kullanıcıların 3D dünyanızı nasıl gördüğüne dair farklı görsel efektler oluşturmak için görüş açısını, mesafeyi ve açıyı da ayarlayabilirsiniz.
Daha fazla bilgi için kamerayı özelleştirme bölümüne bakın.
Arazi
Terrain, yeriniz için manzaralar oluşturmanıza olanak tanır. Araziye, çim, su, kum veya özel bir malzeme gibi istenen doğal ortamları simüle etmek için bir malzeme uygulayabilirsiniz. 3D dünyanız için yalnızca bir arazi nesnesine sahip olabileceğiniz ve bu araziye yalnızca bir malzeme uygulayabileceğiniz için, arazi bölgelerini düzenlemek için Arazi Editörü kullanabilirsiniz.
Daha fazla bilgi için çevresel arazi bölümüne bakın.
Çevre
Özel aydınlatma, 3D dünyanızı çok daha sürükleyici ve gerçekçi hale getirebilir. Lighting hizmeti, yerinizin küresel aydınlatma ayarlarını kontrol eden nesneleri içerir; örneğin, atmosferik etkileri simüle etmek için Atmosphere veya çevrenizdeki güneşi, ayı ve yıldızları değiştirmek için Sky. Ayrıca, belirli nesnelerden ışık yaymak için ışık kaynakları kullanabilirsiniz.
Oyunlarınıza ses eklemek de oyunlarınızı yeni zirvelere taşımak için kritik öneme sahiptir. Pozisyonel ve pozisyonel olmayan sesleri stratejik olarak kullanarak, oyuncuları dünyalarınıza daldırabilir, eylemleri için onlara faydalı geri bildirim sağlayabilir ve başarılı olmaları için ne yapmaları gerektiğine dikkatlerini yönlendirebilirsiniz.
Yinelenme
Yinelenme, sunucunun yerinizin durumunu tüm bağlı istemcilerle senkronize etme sürecidir. Roblox Motoru, birçok durumda veri, fizik ve sohbet mesajlarını sunucu ve istemci arasında akıllıca ve otomatik olarak yineler, ancak belirli nesneleri belirli konteynerlere yerleştirerek de yinelenmesini belirtebilirsiniz.
ReplicatedFirst
ReplicatedFirst, bir istemci yerinize katıldığında ona yinelenmesini istediğiniz nesneleri içerir. Genellikle, bir oyuncuyu başlatmak için gerekli olan istemci tarafı LocalScript nesneleri ve betiklerle ilişkili nesneleri içerir. Bu konteynerdeki tüm içerik, yalnızca bir kez sunucudan istemciye yinelenir.
ReplicatedStorage
ReplicatedStorage, hem sunucuya hem de bağlı istemcilere erişilebilen nesneleri içerir. İstemcide meydana gelen herhangi bir değişiklik kalıcıdır ancak sunucuya yinelenmez. Sunucu, tutarlılığı sağlamak için istemcideki değişiklikleri geçersiz kılabilir. Bu konteyner, hem Script (sunucu tarafı) hem de LocalScript (istemci tarafı) nesneleri tarafından paylaşılması ve erişilmesi gereken ModuleScript nesneleri için genellikle kullanılır. Ayrıca, bu konteyneri, ihtiyaç duyulana kadar 3D dünyada var olmaları gerekmeyen nesneleri yinelenmek için kullanabilirsiniz; örneğin, tüm gelen karakter modellerine klonlanıp ebeveyn olarak eklenebilecek bir ParticleEmitter.
Yinelenmenin nasıl çalıştığı hakkında daha fazla bilgi için istemci-sunucu çalışma zamanı bölümüne bakın.
Sunucu
Veri modeli, istemciye asla yinelenmeyen yalnızca sunucu tarafı nesneleri için özel konteynerler tanımlar. Bu, sunucunun istemci davranışını ve durumunu etkilemesine olanak tanır, sunucunun nesnelerini ve mantığını istemciye açmadan.
ServerScriptService
ServerScriptService, sunucu betikleri tarafından gereken Script nesnelerini, ModuleScript nesnelerini ve yalnızca sunucu kullanımı için tasarlanmış diğer betik ile ilgili nesneleri içerir. Betikleriniz diğer, betik olmayan nesnelere ihtiyaç duyuyorsa, bunları ServerStorage içine yerleştirmeniz gerekir. Bu konteynerdeki betikler asla istemcilere yinelenmez, bu da güvenli, sunucu tarafı mantığına sahip olmanızı sağlar.
ServerStorage
ServerStorage, yalnızca sunucu kullanımı için tasarlanmış nesneleri içerir. Bu konteyneri, çalışma zamanında çalışma alanına veya diğer konteynerlere klonlayıp ebeveyn olarak eklemek istediğiniz nesneleri depolamak için kullanabilirsiniz. Örneğin, haritalar gibi büyük nesneleri bu konteynerde depolayabilir ve yalnızca ihtiyaç duyulduğunda çalışma alanına taşıyabilirsiniz. Bu, istemci ağ trafiğini ilk katılımda azaltmanıza olanak tanır.
İstemci
İstemci konteyner hizmetleri, her bağlı istemciye yinelenen nesneler içindir. Bu konteyner kategorisi, her bağlı istemciye yinelenir ve genellikle 3D nesneler ve ilişkili LocalScript nesneleri içerir. Bu konteynerlerde depoladığınız tüm nesneler, oturumlar arasında kalıcı değildir ve her seferinde bir istemci yeniden katıldığında sıfırlanır. Bu konteynerlere oyuncu GUI'leri, istemci tarafı betikleri ve yalnızca istemciye özgü diğer nesneleri koyabilirsiniz.
Bir istemci bir sunucuya bağlandığında, Players konteyner hizmeti, yerinize katılan kullanıcıları dinler ve her istemci için bir Player nesnesi oluşturur. Sunucu, edit veri modelindeki istemci konteynerlerinden nesneleri alır ve bunları Players nesnesi içindeki çalışma zamanı veri modelindeki karşılık gelen konuma kopyalar. Aşağıdaki tablo, bulunduğu orijinal konteyneri ve istemcide kopyalandıkları sonuç konteynerini açıklar:
| Düzenleme veri modeli | Çalışma zamanı veri modeli | Notlar |
|---|---|---|
| StarterPack | Player.Backpack | Oyuncunun envanterini kuran betikler ve genellikle Tool nesnelerini içerir, ancak genellikle yerel betikler de içerir. |
| StarterGui | Player.PlayerGui | Oyuncunun yerel GUI'sini yönetebilen betikler. Bir oyuncu yeniden doğduğunda, PlayerGui'nin içeriği boşaltılır. Sunucu, StarterGui içindeki nesneleri PlayerGui'ye kopyalar. |
| StarterPlayerScripts | Player.PlayerScripts | İstemci için genel amaçlı betikler. Örneğin, belirli koşullar karşılandığında istemcide özel efektler oluşturmak istiyorsanız, bunu yapmak için bu konteynerde bir yerel betik yerleştirebilirsiniz. Sunucu bu konteyneri erişemez. |
| StarterCharacterScripts | Player.Character | İstemciye kopyalanan betikler. Bu betikler, oyuncu yeniden doğduğunda kalıcı değildir. |
| ReplicatedFirst | Bu konteynerin içeriği, her şeyden önce tüm istemcilere (ancak sunucuya geri değil) yinelenir. |
Sohbet
TextChatService
TextChatService, çeşitli oyun içi metin sohbet görevlerini yöneten hizmeti temsil eder; örneğin, kanalları yönetme, mesajları süsleme, metni filtreleme, komutlar oluşturma ve özel sohbet arayüzleri geliştirme.
Daha fazla bilgi için metin sohbeti genel bakış bölümüne bakın.
VoiceChatService
VoiceChatService, diğer kullanıcılara ne kadar yakın olduğunuza dayalı olarak gerçekçi iletişimi simüle eden yakınlık tabanlı sesli sohbet özelliğini temsil eder. Bu hizmeti, özelliği açıp kapatmak için kullanabilirsiniz.
Daha fazla bilgi için sesli sohbet bölümüne bakın.
Klasörler ve modeller
Veri modelindeki nesneleri gruplamanın iki ana yöntemi vardır: klasörler ve modeller. Her ikisi de nesneler için konteynerlerdir, ancak farklı amaçları vardır.
- Klasörler, bir ortamın bölümlerini depolamak için en iyisidir; örneğin, lobiyi veya bir savaş arenasını.
- Modeller, bir masa seti gibi nesne setleri için kullanılır; bu set bir sandalye, masa ve lamba içerir. Daha karmaşık setleri organize etmek için, modelleri modellerin içine yerleştirin.
Nesnelerinizi her zaman açıklayıcı bir şekilde adlandırmalısınız. Bu, gerektiğinde nesneleri bulmayı ve değiştirmeyi kolaylaştırır.

