İçindekiler

Kısaca: MKA Engine'in çok oyunculu modelinde her katılımcının bilgisayarı dünyayı kendi hesaplar; ağ üzerinden oyuncu emirleri ve kısa durum özetleri paylaşılır. Aynı başlangıç ve aynı emirler aynı sonucu üretmelidir. Bilgisayarlar bu özetleri karşılaştırarak dünyaların ayrıldığını fark edebilir.
Aynı oyunu farklı makinelerde nasıl aynı tutarız?
Strateji oyunlarında dünya sürekli değişir: oyuncular emir verir, kurallar kaynakları günceller, olaylar yeni sonuçlar doğurur. Her bilgisayara bütün dünyanın her değişimini göndermek yerine, daha tutarlı bir yol aradık. Bunun için her katılımcının aynı kurallarla aynı dünyayı hesaplayabilmesi gerekir.
Dünyanın tamamı yerine emirleri paylaşmak
Kilit adımda emirlerin yolu
Bu yaklaşıma kilit adımlı çok oyunculu denir. Her bilgisayar aynı başlangıç durumundan yola çıkar ve oyuncuların emirlerini alır. Bir oyun adımı, katılan herkesin o adım için gereken emirler ulaştığında ilerler; her bilgisayar da aynı kuralları uygular.

Ağın taşıdığı temel bilgi oyuncu kararlarıdır. Her katılımcı kendi dünyasını hesapladığı için oyunun bütün durumunu sürekli yeniden göndermek gerekmez. Bu düzen, sayıların ve şansın aynı kurallarla çalışmasına dayanır.
Farklılaşmayı fark etmek
Hesaplamalar belirli aralıklarla kısa dünya özetlerine dönüştürülür ve katılımcılar arasında karşılaştırılır. Bir özet, dünyanın bütün ayrıntılarını değil, karşılaştırmaya yarayan kısa bir göstergesini taşır. Özetlerden biri diğerlerinden farklıysa motor, hangi oyun adımında ayrılık görüldüğünü bildirir.

Bu karşılaştırma, dünyaların artık aynı olmadığını gösterir; tek başına farkın nedenini açıklamaz. Bu yüzden tutarlı hesaplama ve farkı yakalama birbirini tamamlayan iki ayrı adımdır.
Özetler ayrılığı nerede yakalıyor?
Kilit adımlı yaklaşım, dünyayı yerel olarak hesaplayıp oyuncu kararlarını paylaşmayı mümkün kılıyor. Katılımcılar belirli adımlarda kısa özetleri karşılaştırabiliyor. Bu yazıda ağ trafiği, gecikme veya başka bir çok oyunculu yöntemle hız karşılaştırması sunmuyoruz.
Neden oyuncu kararlarını paylaşan model?
Strateji oyunlarında her katılımcının kendi dünyasını hesaplaması, oyunun bütün durumunu sürekli ağdan taşımak yerine kararların paylaşılmasına dayanır. Böylece ortak oyun kuralı ile oyuncuların verdiği emirler aynı çizgide tutulabilir.
Bağlantı gecikmesi ve teşhis sınırı
Bir oyun adımının ilerlemesi için etkin katılımcıların emirleri gerekir; yavaş bağlantı grubun ilerleyişini geciktirebilir. Durum özetindeki fark ayrılığı saptar, ancak tek başına nedenini bulup dünyayı onarmaz.
Dünya bilgisini bellekte düzenlemek
Bir sonraki günlükte çok sayıdaki oyun bilgisini hesaplamalara uygun biçimde bellekte nasıl düzenlediğimizi anlatıyoruz. Ardından bir oyun adımındaki iş sırasına bakacağız.
Her bilgisayara dünyanın tamamı mı gönderiliyor?
Hayır. Bu modelde katılımcılar oyuncu emirlerini ve karşılaştırma için kısa durum özetlerini paylaşır; her bilgisayar simülasyonu kendi yürütür.
Farklı bir dünya özeti neyi gösterir?
Katılımcıların hesapladığı oyun durumları ayrılmıştır. Özet, farkın görüldüğü adımı bildirir; tek başına nedenini açıklamaz.
Bu yöntem bağlantı sorunlarını ortadan kaldırır mı?
Hayır. Etkin katılımcıların emirleri gelmeden adım ilerlemez; yavaş bağlantı grubun hızını etkileyebilir.
Kaynaklar ve bağlantılar
- Hesaplama temelini Geliştirici Günlüğü #1, dünya düzenini Geliştirici Günlüğü #3, adım sırasını Geliştirici Günlüğü #4 anlatıyor.
- Motorun genel tanıtımı için MKA Engine, bütün yazılar için Geliştirici Günlükleri sayfasına bakabilirsiniz.
Kaynaklar ve ilgili belgeler
Bunlar da ilginizi çekebilir
- Bir strateji oyununun dünya haritası nasıl yapılır?
MKA Engine için gerçek veriden 27.357 konumluk bir 1337 dünya haritası ürettik: arazi, nehirler, boğazlar, nüfus ve konum sınırları nasıl çıkarıldı?
- Oyun motoruna giden yol
MKA Engine'e nasıl başladık: dört oyunu okumak, belirlenimciliği yasa saymak, aşama aşama ölçerek ilerlemek ve şu an neredeyiz.