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)?


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 :)


Apa itu 'Netty dan Protobuf'?
Quazi Irfan


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.


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.


1
apa yang Anda maksud dengan dukungan biner?
user3689


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.


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/

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.