"Üst düzey görünümler" ve uygulamalarla ilgileniyorum.
Uygulamalar genellikle makul derecede derinden etkilenir ve muhtemelen burada onlardan çok fazla konuşma görmeyeceksiniz. StackExchange yazılımı, bu tür ilgili tartışmalara çok uygun değildir, birisinin zamanının önemli bir yatırımını içereceğinden bahsetmiyorum bile.
Böyle bir sistem yazmanın ne kadar zor olduğunu öğrenmek istiyorum
Diğer sistemlerden daha fazla veya daha az zor değil: gereksinimlerinize ve sürmek istediğiniz özelliklere bağlı olacaktır. Önemsiz uygulamaları önemsiz olarak yazabilirsiniz, ancak önemsiz olmayan şeyler elbette çok daha zor olacaktır. Daha büyük sorunlardan biri, muhtemelen sisteminizin WoW ve diğer oyunların üzerinde çalıştığı "büyük" seviyeye ölçeklenip ölçeklenmediğini söylemek için yeterli gerçek istemcinizin olmayacağıdır .
MMO'lar büyülü değildir. Teknolojilerinin çoğu, izole edildiklerinde özel bir şey değildir, sadece bazı daha küçük, daha basit teknoloji bitleri, bazı paylaşılan dünya devletlerinin daha büyük ölçekli, bağlı paralel simülasyonlarına izin vermek için çok akıllıca birleştirilir.
Her düğümün oyun dünyasının bir kısmını statik sınırlarla kontrol ettiği bir sunucu kümesi kurmak istiyorum. Oyuncular artık bir örneği değiştirmeden ya da bir "ışınlayıcıya" çarpmadan dünyanın bir ucundan diğer ucuna geçebilirler.
Aslında bahsettiğin şey simülasyon dağıtımı. Bu oldukça basit bir şekilde yapılabilir ve mutlaka MMO'ya özgü bir teknoloji değildir (eşler arası oyunlar, ana bilgisayar geçişini uygulamak için aynı temel mekanizmaları destekleme eğilimindedir). Temel öneri, her sunucunun sunucuların "etrafındaki" topolojisini anlamasını sağlamaktır (özellikle, A dünyası düğümü için bir sunucu simülasyon-bitişik dünya düğümleri için sunucular hakkında bilgi sahibi olmalıdır) ve etrafınızda düşündüğünüz bir tampon tanımlamaktır bitişik bir sunucuya "yakın" olan belirli bir simüle edilmiş varlık.
Bir varlık "kapat" arabelleğine girdiğinde, onu bitişik sunucuya da bildirmeye başlarsınız. Varlık gerçek eşiği geçtikten sonra, bitişik sunucuya varlığın tam durumunu içeren bir mesaj ve bitişik sunucunun varlığı devralması gerektiğini belirten bir mesaj gönderirsiniz. Açıkçası bunun mümkün olduğunca güvenilir olmasını istiyorsunuz.