Google App Engine è una buona piattaforma per un MMO online?


10

Sto cercando alcune idee per creare un gioco MMORPG in scala ridotta, basato su Java, questo è un progetto laterale / hobby per aiutare il mio processo di apprendimento

Ho già giocato con GAE e ho creato una semplice app Web, sto pensando di usarla come piattaforma per un gioco

E 'questa una buona idea? Ci sono giochi là fuori che usano una tale piattaforma? Finora non riesco a vedere alcun limite, a parte Google potrebbe essere in grado di "possederlo" piuttosto che me stesso

Risposte:


3

Sorta di, dipende da quanta latenza / velocità hai bisogno.

Ogni richiesta http (a un server dedicato) impiega da 300 a 600 ms. Nel motore dell'app che assomiglia di più a 600-900 ms o anche di più (se hai molte domande). Allo stesso tempo, una singola connessione a GAE deve durare meno di 30 secondi, quindi ...

Ciò significa che dovrai eseguire il polling lento, che potrebbe essere abbastanza buono per alcuni giochi a turni, non in tempo reale.

Se vuoi fare un gioco in tempo reale devi lasciare HTTP e passare a TCP o UDP (in particolare UDP).

Detto questo, se una latenza lenta / una connessione non in tempo reale è abbastanza buona per il tuo gioco, GAE si ridimensiona abbastanza a buon mercato e risolve molti problemi (nessun limite sulla dimensione del db, nessun problema di spam con una grande quantità di e-mail , eccetera)


TCP non è davvero un'opzione se vuoi in tempo reale.
o0 '.

4
^^^ Mito comune
U62,

* Per diversi valori di tempo reale.
DFectuoso,

1
TCP gestisce bene in tempo reale, se gestisci correttamente i tuoi pacchetti. Inutile inviare 10 pacchetti alla stessa destinazione in pochi millisecondi, quando è possibile raggrupparli.
Stephen Belanger,

@Stephen: giusto. usando le giuste tecniche, puoi raggiungere la velocità e l'affidabilità che l'unica preoccupazione rimasta sarà la velocità di connessione.
Moshe Revah,

3

Non è esattamente un MMO, ma ecco un articolo che ho letto di recente sull'utilizzo di App Engine come back-end del server di gioco:

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

Ho usato GAE come back-end per un paio di miei progetti, nessuno dei quali era un MMO, ma lo apprezzo sicuramente come una solida piattaforma di sviluppo web con cui è facile lavorare in generale e decisamente economica da sperimentare e bootstrap da.

Come sottolinea @DFectuoso, per un MMO in tempo reale avrai dei problemi usando qualsiasi web server, tanto meno App Engine in particolare. Tuttavia, un MMO a turni e / o social molto probabilmente potrebbe utilizzare App Engine come unico back-end.

In definitiva dipende dall'architettura del tuo gioco. Esistono strategie per fare quasi in tempo reale o simulare in tempo reale in cui il server principale è un server Web come App Engine:

  • È possibile effettuare comunicazioni peer-to-peer in tempo reale, aggiornando il server solo nei momenti chiave.
  • Potresti tentare alcune comunicazioni in tempo reale con strategie come il polling lungo, che recentemente viene anche chiamato "richieste di comete", in cui invii richieste al server web e il server non "finisce" mai la risposta che si traduce in richieste molto lunghe / polling, ma consente al server web di inviare continuamente nuovi dati non appena disponibili. (Il supporto delle comete più profonde è una funzionalità imminente in App Engine, secondo la tabella di marcia.)
  • Nel caso di App Engine, puoi anche usare XMPP / Jabber (un protocollo IM aperto) per comunicare rapidamente (quasi in tempo reale) con il tuo server di gioco. Potrebbe non essere un ottimo posto per creare un gioco in tempo reale completo, ma ci sono molti interessanti robot di chat scritti con il supporto XMPP di App Engine.

Questo è il tracker dei problemi per il supporto della cometa (dal momento che non ho ancora potuto incorporare il link nel post reale - apparentemente ho bisogno di più punti reputazione): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker,
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.