Quale piattaforma server scegliere [chiuso]


8

Scriverò un server per un multiplayer online con questi requisiti:

  • Gioco a turni piuttosto semplice (pensa a un gioco di carte) che si gioca interamente sul server (motivi di sicurezza)
  • Deve essere in grado di eseguire più giochi (tavoli) con 4 giocatori per tavolo, ma non è richiesto alcun sistema di lobby (un altro server se ne occupa)
  • Può supportare il maggior numero possibile di giocatori contemporaneamente; Potrebbe essere necessario più server
  • Chatta tra giocatori
  • Connessione socket a un client Flash / AIR
  • Deve essere in grado di comunicare con altri server (per account giocatore e simili)

Ora sto considerando due opzioni:

  • Smartfox (o equivalente)
  • Una soluzione Java personalizzata in qualcosa come Tomcat

Perché Smartfox?

  • Gestisce più stanze e chatta in modo nativo
  • Presumibilmente ha soluzioni per noti problemi di gioco multiplayer

Perché personalizzato

  • Smartfox ha molte funzioni non necessarie, male per le prestazioni
  • Smartfox comunica con un formato basato su XML, potrei usarne uno binario più efficiente.
  • Non so se eseguire l'intero modello di gioco sul server sia conveniente con il meccanismo di estensione di Smartfox
  • Più stanze e chat sono facili da reimplementare
  • Tomcat o un contenitore leggero è più facile da implementare rispetto a Smartfox
  • Migliore supporto IDE per lo sviluppo su Tomcat (distribuzione automatica, ecc.)

Cosa ne pensi? I miei presupposti sono corretti? Hai qualcosa da aggiungere? Quale opzione dovrei scegliere (o forse un'altra completamente)?


Forse mi manca qualcosa, ma un "gioco di carte" è così semplice che potresti scriverlo da zero in una banale quantità di tempo e le prestazioni non dovrebbero mai essere un problema.
o0 '.

Risposte:


3

Sicuramente sceglierei una soluzione personalizzata: anche se potresti perdere un po 'di tempo a breve termine, si ridurrà sicuramente meglio se ne hai bisogno, inoltre l'esperienza che acquisirai sarà enormemente riutilizzabile per i tuoi prossimi giochi. BlazeDs sembra uno strumento eccellente per le tue esigenze, ma riscrivere da zero un server di gioco Java non è un grande sforzo, usando ad esempio Netty e Protobuf :)


Che cos'è "Netty and Protobuf"?
Quazi Irfan,


5

Per quanto riguarda i tuoi punti a supporto di una soluzione personalizzata:

Smartfox ha molte funzioni non necessarie, male per le prestazioni

Poiché questo è per un gioco "semplice, a turni", è improbabile che le prestazioni siano un problema.

Smartfox comunica con un formato basato su XML, potrei usarne uno binario più efficiente.

Ancora una volta, per semplici giochi a turni, la facilità di sviluppo può facilmente avere la priorità sull'efficienza del formato, quindi a meno che tu non voglia sviluppare un formato binario efficiente, non farlo.

Più stanze e chat sono facili da reimplementare

Questo non è un buon motivo per scegliere di implementare questa funzionalità da solo. È solo qualcosa di confortante sapere se decidi di seguire questo percorso.

Tomcat o un contenitore leggero è più facile da implementare rispetto a Smartfox. Migliore supporto IDE per lo sviluppo su Tomcat (distribuzione automatica, ecc.)

Devi valutare quanto tempo risparmi sviluppando una soluzione personalizzata e distribuendola rapidamente, anziché utilizzare una soluzione esistente e possibilmente eseguire una distribuzione più lunga. Le probabilità sono che il tempo di sviluppo compenserà i piccoli benefici che la distribuzione più veloce / più facile offre.

Per riassumere: consiglio di utilizzare una soluzione esistente, se possibile. È probabile che ti faccia risparmiare un sacco di tempo. Per quanto riguarda quale soluzione preesistente, dipende da te.


Per quanto riguarda il tuo punto di prestazione: Sì, il gioco è semplice, ma dovrà supportare mezzo milione di giocatori sul minor numero di server possibile (se il cliente ha il suo desiderio)
Bart van Heukelom

Mezzo milione di giocatori simultanei? Sembra che il commento di Google App Engine meriti qualche riflessione in più. Ciò sarà in grado di passare dal prototipo allo schieramento completo con nient'altro che una fattura più grande.
drxzcl,

@drxzcl Ha ragione. Il motore di app di Google è ottimo per i giochi a turni per motivi di scalabilità.
AturSams,

3

Avendo utilizzato sia Smartfox e ElectroServer abbastanza estesamente, mi raccomando sempre ElectroServer. Fa tutte le stesse cose di SmartFox, ma è solo un po 'più solido e include il supporto binario.


1
cosa intendi per supporto binario?
user3689



2

Dovresti davvero esaminare Firebase, un server di gioco multiplayer Java open source.

Rispetto a Smartfox, Firebase utilizza un protocollo binario, non è gonfio di funzionalità ed è ad alte prestazioni.

Se esegui il rollup del tuo sistema, dovrai occuparti di tutto, dalla gestione dei socket alla gestione della concorrenza. Con Firebase, hai la garanzia di un'azione alla volta, per stanza.

Nota : Firebase acquisito da Google e non ha più l'opzione open source.

Dai un'occhiata: http://www.cubeia.org/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.