2012-06-13 11 views
11

Projem için teknoloji yığını hakkında düşünüyorum ve ejabberd kullanmayı düşünüyorum. Proje, oyuncuların dünyaya bir yerden başka bir yere (konumlar sohbet odaları gibi görünüyor) dönüşecekleri klasik çok kullanıcılı zindan RPG'ye benzeyecekler ve aynı zamanda her biri yanısıra AI ile yaratıkların da birbirine dayalı olarak modellenecek .ejabberd, sıra tabanlı MMORPG için çekirdek teknoloji olarak iyi bir seçim midir?

Hiç ejabberd kullanmamıştım, ancak erlang kullanarak sunucu uygulamaları yazarken bazı tecrübelerim var.

Bu tür bir oyun için ejabberd bir aşırı sıkıntı mıdır? İhtiyacım olmayacak kadar çok özelliği var. Bununla birlikte, erlang geliştiricileri tarafından iyi bilinir ve aynı zamanda çok kararlı ve olgundur. Ejabberd, çevrimiçi oyunum için bir çeşit taşıma katmanı olarak kullanılmaya değer mi, yoksa kendi tekerleğimi daha iyi icat etmeli, küçük ve basit bir şey mi?

+0

O zaman evet ise, bu overkill gibi geliyor. –

+0

Ayrıca sohbet mesajlaşma için kullanacağım ve diğer oyuncuların durumu, dönüş detayları, hp değişiklikleri vb. Hakkında sistem mesajları vermek için kullanmak mümkün olduğunu düşünüyorum. – asdf

+0

"RabbitMQ" http://www.rabbitmq.com/ sitesine baktınız, o da otonom sunucu sistemleri arasında gerçek zamanlı iletişim için kullanılır. –

cevap

12

Ben böyle şeyler için ejabberd kullanarak, birkaç yıllık ticari deneyimim var. Yani, benim almak:

Artıları:

  1. Kesinlikle teknik kapasitesine sahiptir.
  2. Grok yapmak oldukça kolaydır.
  3. Genişletmek ve değiştirmek çok kolaydır.
  4. Düzenli olarak güncellerseniz, iki önemli özelliği çözecektir. A. ağ güvenliği (bu benim için çok önemli bir şey); ve B. düzgün bir şekilde yapılmış kimlik doğrulama. Bu ikisi tek başına kullanmak için yeterli bir sebep.
  5. Şaşırtıcı derecede hızlıdır.
  6. Size ücretsiz sohbet, durum ve arkadaş listesi verir.
  7. Size MUC (odalar) ücretsiz veriyor. Izinler gibi her şey ile oldukça iyi çözüldü.

Eksileri:

  1. kullanışlı gerçekten herhangi bir belge bulmak beklemeyin. Kaynak çoğunlukla tek arkadaşın.
  2. Gerçekten bir topluluk bulmayı beklemeyin. Bu yalnız bir yol. Bir oda var - [email protected] ama çok sessiz (ve neredeyse boş). Buradaki insanların çoğu geliştirici değil, sadece ejabberd kullanıcıları. Posta listesi biraz daha iyi, ancak aradığınız cevabı bulmak için genellikle yeterli değil.
  3. Kaynak kod başına bir erlang projesinin en iyi örneği değil. Büyük, modüler, dağıtılmış bir erlang yazılımı yazmayı öğrenmek istiyorsanız, Riak gibi bir şeye daha iyi bakın.
  4. Dahili API'ler çok kararlı değiller (sürümlerle oldukça fazla değişiyorlar). Bu nedenle, yazılımınızı harici bir XMPP bileşeni olarak ejabberd'e bağlayan ayrı bir erlang uygulaması olarak yazmanızı tavsiye ederim. Böylece, kararlı bir protokol (XMPP) üzerinden iletişim kuracağınız garanti edilecektir. Tabii ki, bazı iç şeyler yazmayı da bırakamazsın. Kimlik Doğrulama ve Kademe (arkadaş listesi) modülleri akla ilk gelenler. Özellikle sıcak kod yüklemeye ihtiyacınız varsa, bu kombinasyonun bakımı ve güncellenmesi oldukça zordur, ancak bu benim için en iyi çözümdür. "In-ejabberd" kodunu geçerli minimumda tutmaya çalışın.
  5. Yani, sadece bir tane (benim bilgime göre) kullanılabilir XMPP erlang kütüphanesi var. Bu exmpp denir ve ejabberd (ProcessOne) ile aynı şirket tarafından geliştirilmiştir. Henüz kararlı kabul edilmiyor.Bunu uzun zamandır kullanıyordum ve şimdilik sorun yok, ama asla bilemezsiniz. Ayrıca çoğunlukla belgelenmemiş (ya da öğrenirken). Kullanıcıları sohbet odaları/konumları ile ilişkilendirmenin yanı sıra, ejabberd'yi başka hangi amaçla kullanıyor olmalısınız?
İlgili konular