Çok oyunculu 1: Konseptler

1

Stats

286 visits, 346 views

Tools

Translations

This tutorial hasn't been translated.

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 11 Aug, 2023.

CONSTRUCT 3 MULTİPLAYER EKLENTİSİ

Construct'ta çok oyunculu bir oyunun genel tasarımı buna benzer.

ÇOK OYUNCULU BİR OYUNUN AKIŞI

Çok oyunculu bir oyunun yaşam döngüsü şuna benzer:

1Sinyal sunucusuna bağlanın ve oturum açın

bir odaya katıl

2Diğer akranlar oyun çalışırken oyuna katılabilir ve oyundan ayrılabilir

3Nesne verileri ve sohbet gibi diğer mesajlar, diğer bağlı eşlerle değiş tokuş edilir

4Sonunda oyun biter, herkes odadan çıkar ve belki yeni bir oda arayabilirler (2. adıma dön).

Ev sahibinin bağlantısı kesilirse oyunun sona erdiğini unutmayın. Oyun için sunucu görevi görürler, bu nedenle bağlantılarını keserlerse oyun artık çalışmaz. Bu, özellikle daha fazla oyuncunun olduğu daha büyük oyunlar için, merkezi bir sunucuda ayrılmış bir ana bilgisayar çalıştırmayı düşünmek için bir nedendir. Ancak iki kişilik oyunlar için fark etmez - diğer oyuncu ayrılırsa oyun yine de sona erer.

Multiplayer eklentisi, sinyal verme aşamasını (adım 1-2) kapsayan özelliklerin yanı sıra, eşler katıldığında ve ayrıldığında tetikleyiciler, mesajlar alındığında vb. gibi oyunun kendisini kapsayan 'oda' özelliklerine sahiptir.

T

ASARIMA GENEL BAKIŞ

Oyunların , hem oyuncunun kontrol ettiği nesneleri hem de oyundaki diğer tüm oyuncuları temsil eden bir nesne tipiyle tasarlanması amaçlanmaktadır . Daha sonra aynı nesne, siz dahil (ve hatta ev sahibi olduğunda) oyundaki herkes için eşit olarak kullanılır. Temsil ettiği şey bu olduğundan, bu nesneye Peer adını vermek akıllıca olacaktır . Ayrı bir silah ve gövde gibi birden fazla nesneden oluşan oyuncularınız varsa, bir temel Peer nesnesine sahip olun ve onu diğer nesnelerle birlikte bir kaba koyun. Bu, oyuncuların bir bütün olarak yaratılmasını ve yok edilmesini ve ilgili nesnelerinin temel nesneyle yapılan etkinliklerde otomatik olarak seçilmesini sağlar, böylece temel nesneyi büyük ölçüde tüm oynatıcıyı temsil ediyormuş gibi değerlendirebilirsiniz.

Hem ana bilgisayar hem de eşler aynı projeyi yürütüyor. Bu, tek projenizin hem oyunun yetkili sürümüne sahip olan toplantı sahibi hem de gecikmeli bir sürümü gören ve yalnızca girdilerini gönderen akranlar için olayları işleyebilmesi gerektiği anlamına gelir . Bunu halletmenin en uygun yolu, Host ve Peer'a ayrılmış iki olay grubuna sahip olmak ve bir odaya katıldıktan ve ev sahibi olup olmadığınızı belirledikten sonra yalnızca uygun olanı etkinleştirmektir.

Çok oyunculu nesnenin Nesneyi senkronize et eylemi, ağ üzerinden nesneler hakkında veri göndermek istediğinizi belirtmenin temel yoludur. Bu, ana bilgisayara bu nesneler hakkında eşlere bilgi göndermesini söyler ve eşlere bu nesneler hakkında bilgi almak için beklemelerini söyler. Çok oyunculu motor, katılan ve ayrılan eşleri temsil eden nesneleri otomatik olarak oluşturur ve yok eder. ( Nesneyi eşitle eylemi, eşleri temsil etmeyen diğer nesneler için de kullanılabilir, ancak en yaygın olarak eşler için kullanılır.)

Her eşin , sinyalleşme sunucusu tarafından atanan bir Eş Kimliği vardır. Bu, benzersiz bir şekilde tanımlamak için kısa bir rasgele karakter dizisine sahip bir dizedir. Peer ID'ler genellikle takma adları değişse bile aynı oyuncuya tutarlı bir şekilde atıfta bulunabilmek için kullanılır. Belirli bir nesnenin hangi eşi temsil ettiğini bilmeniz için Eş Kimliği'nin bir örnek değişkeninde saklanması gerekir. Çok oyunculu motor tarafından bir eş için bir nesne oluşturulduğunda, Multiplayer.PeerID ifadesi eş kimliğine ayarlanır, böylece örnek değişkeninde saklanabilir. Kendi eş nesnenizin kontrolü sizde olduğundan, örnek değişkeninin Multiplayer.MyID değerine eşit olup olmadığını test ederek kolayca seçebilir ve ardından yalnızca bu örneği değiştirebilirsiniz.

GÜVENİLİRLİK MODLARI

Bahsedilmesi gereken son şey, veri aktarımı için 3 mod olduğudur. Bunlar performans için güvenilirlikten ödün verir.

En güvenilir mod Reliable order'dır . Bu, izlenen bir mesaj gönderir: ağ tarafından düşürülürse, hedefe ulaştığını doğrulayana kadar yeniden gönderir. Ayrıca mesajları sıralar, böylece gönderildikleri sırayla ulaşmaları garanti edilir. Bu kullanışlıdır, ancak en hızlısı değildir: Bir mesaj bırakılır ve bekletilirse, o mesaj ulaşana kadar sonraki tüm mesajları tutar. Bu aynı zamanda, mesajın gelip gelmediğini bilmek için en azından gidiş-dönüş süresini beklemesi gerektiğinden, bireysel mesajların gelmesi gecikme süresinin katları alabileceği anlamına gelir. Bu genellikle yalnızca sohbet mesajları gibi düşük frekanslı önemli mesajlar için uygundur.

Bir sonraki en hızlı Reliable unordered . Bu, izlenen bir mesaj gönderir ve ayrıca hedefe ulaştığını doğrulayana kadar yeniden gönderir. Ancak mesajların herhangi bir sırada gelmesine izin verilir. Bu, bekletilen tek bir mesajın sonraki tüm mesajları tutmasını önler - kendisinden sonra orijinal olarak gönderilen diğer mesajlardan sonra geç gelebilir. Bununla birlikte, bireysel mesajların ulaşması yine de gecikme süresinin katlarını alabilir. Bu, bir kapı açılması veya meydana gelen bir patlama gibi, gelmesi gereken ancak birbiriyle ilişkisi olmayan oyun olayları için uygundur.

En hızlı mod Güvenilmez'dir . Bu, tek bir mesaj gönderir ve onu unutur. Bırakılırsa, mesaj asla hedefe ulaşmayacaktır. Ayrıca orijinal olarak gönderildiği diziden farklı bir sırayla ve hatta muhtemelen iki kopya halinde gelebilir. Genellikle bu, mesajın mümkün olan en kısa sürede varmasının hiç ulaşıp ulaşmamasından daha önemli olduğu normal mesajlar için uygundur. Bırakılırsa, daha yeni veriler içeren bir sonraki mesaj tarafından hızlı bir şekilde takip edilmesi muhtemeldir, bu yüzden önemli değil. Motorun dahili olarak bu modu yerleşik enterpolasyon ve telafi özelliklerine sahip senkronize edilmiş nesneler için kullandığını unutmayın, bu nedenle bu işlevi bu modla çoğaltmaya çalışmayın.

[b

Construct'ın Multiplayer eklentisi, girdi tahmini ve bağlantı gibi birçok teknik ayrıntıyı sizin için hallederken, hangi verilerin nereye, hangi hassasiyet ve güvenilirlik moduyla gönderildiğine ilişkin uygun seçimler yapabilmek için teoriyi bilmek yine de çok önemlidir. Umarız bu eğitim, hem perde arkasında neler olup bittiğini hem de özelliklerden en iyi şekilde yararlanmak için Construct'tan yapmanız gerekenleri iyi anlayarak ilk çok oyunculu oyununuzu tasarlamaya başlamanız için size yeterli genel bakışı vermiştir. Bu eğitim teoriye odaklanırken, sonraki eğitimler, Multiplayer eklentisinin belirli özelliklerini kullanarak pratikte giriş tahmini ve gecikme telafisi gibi sorunların nasıl ele alınacağını kapsayacaktır.

Daha fazlasını öğrenmeye hazırsanız, Çok Oyunculu eğitim 2'ye gidin: sohbet odası !

  • 0 Comments

Want to leave a comment? Login or Register an account!