Platform server mana yang harus dipilih [ditutup]

8

Saya akan menulis server untuk multipemain daring dengan persyaratan berikut:

  • Game berbasis giliran yang cukup sederhana (pikirkan permainan kartu) yang dimainkan sepenuhnya di server (alasan keamanan)
  • Harus dapat menjalankan beberapa game (tabel) dengan 4 pemain per tabel, tetapi tidak ada sistem lobi yang diperlukan (server lain menangani itu)
  • Dapat mendukung pemain sebanyak mungkin sekaligus; Mungkin perlu banyak server
  • Obrolan antar pemain
  • Koneksi soket ke klien Flash / AIR
  • Harus dapat berkomunikasi dengan server lain (untuk akun pemain dan semacamnya)

Sekarang, saya mempertimbangkan dua opsi:

  • Smartfox (atau setara)
  • Solusi Java kustom dalam sesuatu seperti Tomcat

Mengapa Smartfox?

  • Ini menangani beberapa kamar dan mengobrol secara asli
  • Ini mungkin memiliki solusi untuk masalah game multi-pemain terkenal

Mengapa kustom?

  • Smartfox memiliki banyak fungsi yang tidak dibutuhkan, buruk untuk kinerja
  • Smartfox berkomunikasi dengan format berbasis XML, saya bisa menggunakan yang lebih efisien.
  • Tidak tahu apakah menjalankan seluruh model game di server sesuai dengan mekanisme ekstensi Smartfox
  • Beberapa kamar dan obrolan mudah diterapkan
  • Tomcat atau wadah ringan lebih mudah digunakan daripada Smartfox
  • Dukungan IDE yang lebih baik untuk pengembangan di Tomcat (penyebaran otomatis, dll)

Bagaimana menurut anda? Apakah asumsi saya benar? Apakah Anda punya sesuatu untuk ditambahkan? Pilihan apa yang harus saya pilih (atau mungkin yang berbeda sama sekali)?

Bart van Heukelom
sumber
Mungkin saya kehilangan sesuatu, tetapi "permainan kartu" sangat sederhana sehingga Anda bisa menulisnya dari awal dalam waktu yang singkat, dan kinerja seharusnya tidak menjadi masalah.
o0 '.

Jawaban:

3

Saya pasti akan pergi dengan solusi khusus: meskipun Anda mungkin kehilangan waktu dalam jangka pendek, itu pasti skala yang lebih baik jika Anda membutuhkannya, ditambah pengalaman yang Anda peroleh akan secara besar-besaran dapat digunakan kembali untuk permainan berikutnya. BlazeDs terdengar seperti alat yang sangat baik untuk kebutuhan Anda, tetapi menulis ulang server game Java dari awal bukanlah usaha yang besar, menggunakan misalnya Netty dan Protobuf :)

Axelle Ziegler
sumber
Apa itu 'Netty dan Protobuf'?
Quazi Irfan
2
Netty , Protobuf (dari Googles)
Richard Marskell - Drackir
5

Mengenai poin Anda dalam mendukung solusi khusus:

Smartfox memiliki banyak fungsi yang tidak dibutuhkan, buruk untuk kinerja

Karena ini untuk permainan "sederhana, berbasis giliran", kinerja tidak mungkin menjadi masalah.

Smartfox berkomunikasi dengan format berbasis XML, saya bisa menggunakan yang lebih efisien.

Sekali lagi, untuk gim berbasis giliran sederhana, kemudahan pengembangan dapat dengan mudah diprioritaskan daripada efisiensi format, jadi kecuali Anda ingin mengembangkan format biner yang efisien - jangan.

Beberapa kamar dan obrolan mudah diterapkan

Ini bukan alasan yang baik untuk memilih untuk mengimplementasikan fungsi ini sendiri. Itu hanya sesuatu yang menyenangkan untuk diketahui, jika Anda memutuskan untuk mengikuti jalan ini.

Tomcat atau wadah ringan lebih mudah digunakan daripada Smartfox. Dukungan IDE yang lebih baik untuk pengembangan di Tomcat (penyebaran otomatis, dll)

Anda harus mempertimbangkan berapa banyak waktu yang Anda hemat dengan mengembangkan solusi khusus dan menerapkannya dengan cepat, dibandingkan menggunakan solusi yang ada dan mungkin melakukan penyebaran yang lebih lama. Kemungkinannya adalah waktu pengembangan akan mengimbangi sedikit manfaat yang diberikan lebih cepat / lebih mudah.

Singkatnya - saya sarankan menggunakan solusi yang ada, jika memungkinkan. Kemungkinan akan menghemat banyak waktu. Adapun yang solusi, itu terserah Anda yang sudah ada.

Janis Kirsteins
sumber
Mengenai poin kinerja Anda: Ya, gim ini sederhana, tetapi perlu mendukung setengah juta pemain di server sesedikit mungkin (jika klien menginginkannya)
Bart van Heukelom
Setengah juta pemain simultan? Kedengarannya seperti komentar Google App Engine patut dipikirkan. Itu akan dapat skala dari prototipe ke penyebaran penuh dengan apa-apa selain tagihan yang lebih besar.
drxzcl
@drxzcl Benar. Mesin Google App sangat bagus untuk game berbasis giliran untuk alasan skalabilitas.
AturSams
3

Setelah menggunakan SmartFox dan ElectroServer cukup luas, saya selalu merekomendasikan ElectroServer. Itu melakukan semua hal yang sama seperti SmartFox, tetapi hanya sedikit lebih solid, dan termasuk dukungan biner.

Iain
sumber
1
apa yang Anda maksud dengan dukungan biner?
user3689
2

Saya sangat merekomendasikan melihat proyek Google App Engine .

Baik untuk hosting dan alasan teknis. Jika permainan Anda tidak berjalan cepat maka itu harus menjadi tempat yang baik untuk memulai dan menjalankan dan menjalankan, dan memiliki ruang lingkup untuk mengukur.

Kode bisa dalam Python atau Java.

Neptune's Pride ada di Google App Engine. Lihat wawancara dengan Pengembang di sini .

Kimau
sumber
3
Tidak terlihat seperti itu mendukung soket, hanya HTTP
Bart van Heukelom
2

Lihatlah server game netty berikut . Ini mendukung protokol biner. Catatan: Ditulis oleh saya! Memiliki dukungan TCP dan UDP, menggunakan jetlang untuk pengiriman pesan vm yang sangat cepat.

Abraham Menacherry
sumber
2

Anda harus benar-benar melihat ke Firebase, server game Java multipemain open source.

Dibandingkan dengan Smartfox, Firebase menggunakan protokol biner, tidak membengkak dengan fitur dan berkinerja tinggi.

Jika Anda menggulung sistem Anda sendiri, Anda harus mengurus semuanya mulai dari memegang soket hingga menangani konkurensi. Dengan Firebase, Anda dijamin satu tindakan pada satu waktu, per kamar.

Catatan : Firebase diperoleh oleh Google dan tidak lagi memiliki opsi sumber terbuka.

Lihat ini: http://www.cubeia.org/

Malas
sumber