Google App Engine çevrimiçi bir MMO için iyi bir platform mu?


10

Java merkezli, küçük ölçekli bir MMORPG oyunu oluşturma konusunda bazı fikirlere bakıyorum, bu benim öğrenme sürecime yardımcı olacak bir yan / hobi projesi

GAE ile zaten bir oyun oynadım ve basit bir web uygulaması kurdum, bunu bir oyun platformum olarak kullanmayı düşünüyorum

Bu iyi bir fikir mi? Orada böyle bir platform kullanan herhangi bir oyun var mı? Şimdiye kadar herhangi bir sınırlama göremiyorum, Google dışında kendimden ziyade "sahip" olabilir

Yanıtlar:


3

Sıralama, ne kadar gecikme / hıza ihtiyacınız olduğuna bağlıdır.

Her bir http isteği (özel bir sunucuya) 300-600 ms arasında bir yere ulaşır. Daha fazla 600-900 ms veya daha fazla gibi görünen uygulama motorunda (çok fazla sorunuz varsa). Aynı zamanda, GAE ile tek bir bağlantının 30 saniyeden az sürmesi gerekir, bu nedenle ...

Bunun anlamı, gerçek zamanlı oyunlar değil sıra tabanlı bazı oyunlar için yeterince iyi olabilecek yavaş oylama yapmanız gerekecek.

Gerçek zamanlı bir oyun yapmak istiyorsanız, HTTP'den ayrılmanız ve TCP veya UDP'ye (özellikle UDP) gitmeniz gerekir.

Yavaş gecikme / gerçek zamanlı olmayan bir bağlantı oyununuz için yeterince iyi ise, GAE'nin oldukça ucuz bir şekilde ölçeklendiğini ve çok fazla sorunu çözdüğünü söyledikten sonra (db'nin boyutunda sınır yok, büyük miktarda e-posta ile spam sorunu yok) , vb)


Gerçek zamanlı istiyorsanız TCP gerçekten bir seçenek değildir.
o0 '.

4
^^^ Ortak mit
U62

* Farklı gerçek zamanlı değerler için.
DFectuoso

1
Paketlerinizi düzgün yönetirseniz, TCP gerçek zamanlı olarak iyi çalışır. Bir araya getirebileceğiniz birkaç milisaniye içinde aynı hedefe 10 paket göndermenin anlamı yoktur.
Stephen Belanger

@Stephen: doğru. doğru teknikleri kullanarak, tek endişenin bağlantı hızı olacağı hız ve güvenilirlik elde edebilirsiniz.
Moshe Revah

3

Tam olarak bir MMO değil, ancak son zamanlarda App Engine'i oyun sunucusu arka ucu olarak kullanırken okuduğum bir makale:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

GAE'yi hiçbiri MMO olmayan birkaç projem için arka uç olarak kullandım, ancak kesinlikle genel olarak çalışması kolay ve denemek için kesinlikle ucuz olan güçlü bir web geliştirme platformu olarak takdir ediyorum. önyükleme.

@DFectuoso'nun belirttiği gibi, gerçek zamanlı bir MMO için herhangi bir web sunucusunu, özellikle de daha az App Engine'i kullanarak bazı sorunlarınız olacak. Bununla birlikte, sıra tabanlı ve / veya sosyal bir MMO, büyük olasılıkla App Engine'i tek arka uç olarak kullanabilir.

Sonuçta oyun mimarinize bağlıdır. Ana sunucunun App Engine gibi bir web sunucusu olduğu gerçek zamanlıya yakın veya gerçek zamanlı taklit etme stratejileri vardır:

  • Gerçek zamanlı iletişimleri eşler arası yapabilirsiniz, yalnızca sunucuyu önemli anlarda güncelleyebilirsiniz.
  • Son zamanlarda "kuyruklu yıldız istekleri" olarak da adlandırılan ve web sunucusuna istekte bulunduğunuz ve sunucunun çok uzun isteklerle sonuçlanan yanıtı "bitirmediği" uzun yoklama gibi stratejilerle gerçek zamanlı iletişim kurmayı deneyebilirsiniz. / yoklama, ancak web sunucusunun kullanılabilir olduğunda yeni verileri sürekli olarak itmesine olanak tanır. (Yol haritasına göre, daha derin kuyruklu yıldız desteği App Engine'de yeni bir özelliktir.)
  • App Engine'in durumunda, oyun sunucunuzla hızlı bir şekilde (neredeyse gerçek zamanlı) iletişim kurmak için XMPP / Jabber'ı (açık bir IM protokolü) de kullanabilirsiniz. Tam bir gerçek zamanlı oyun oluşturmak için harika bir yer olmayabilir, ancak App Engine'in XMPP desteğiyle yazılmış birçok ilginç sohbet botu var.

Bu, Comet desteğinin sorun izleyicisidir (bağlantıyı henüz gerçek gönderiye ekleyemediğim için - görünüşte daha fazla itibar noktasına ihtiyacım var): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.