2012-12-15 12 views
6

Ho fatto qualche ricerca prima di fare questa domanda ma non sono riuscito a trovare una risposta concreta per la mia situazione. Sono ancora nuovo nello sviluppo di WebSockets e giochi, quindi potrei non essere in grado di spiegare alcune parti molto bene e, in tal caso, mi dica che posso provare a spiegarlo meglio.Utilizzo di WebSockets per lo sviluppo di giochi HTML5 multiplayer. Cosa scegliere, Node.js o Ratchet o altro?

Attualmente sto sviluppando un'applicazione Web utilizzando CakePHP, che fornirà diversi tipi di giochi multiplayer HTML5. In alcune situazioni questi giochi dovranno inviare i dati a un database. Il problema è che voglio utilizzare Node.js per implementare la logica del lato server di gioco, ma non sono sicuro se riuscirò a passare i dati al database. Penso che l'approccio migliore sarebbe quello di inviare i dati da Node.js a un'azione PHP che li archivierà sul database, ma non so se sarà possibile.

Ho trovato qualcosa su questa cosa DNode, ma non sono sicuro se questa è la risposta al mio problema e inoltre sembra essere in versione beta, cosa che vorrei evitare.

In alternativa, ho pensato di utilizzare Ratchet per implementare la logica lato server di gioco. Almeno so che sarei in grado di farlo comunicare con la mia applicazione, ma dal momento che non riesco a trovare alcun riferimento ad esso sullo sviluppo di giochi, non sono sicuro che sia una buona idea.

Non so su eventuali altri framework, quindi se ho le opzioni migliori di quelli a due, mi dica :)

Vi prego di dare le vostre opinioni. Grazie!

risposta

6

Ho affrontato un problema simile un anno fa cercando di sviluppare un gioco multiplayer online. Ho finito per usare Node.js per il server e per i Socket.io WebSockets

Se siete nuovi a Node.js vi consiglio di leggere prima questo breve e buon tutorial di base:

http://www.nodebeginner.org/

Io uso node.js ogni giorno e lo trovo davvero molto utile e produttivo. Una volta finito di leggere le basi leggere questo bel tutorial di sviluppare giochi multiplayer HTML5 con nodo e prese: http://smus.com/multiplayer-html5-games-with-node/

C'è un collegamento a un gioco open source, alla fine che potrebbe essere utile a voi.

E si può controllare la documentazione socket.io qui: http://socket.io/

Speranza che aiuta in modo da poter iniziare. Questa è la parte più difficile.

+0

Grazie mille, penso di capire ora meglio come funziona Node.js. Da quello che ho capito, posso anche connettermi a un database con Node e in questo modo non avrò bisogno di comunicare con la mia applicazione PHP per richiedere i dati da esso, giusto? – Anakin

+0

Esatto. È possibile avere una connessione diretta a un database da Node.js – ElHacker

+0

node.js funziona solo sui server VPS? non verrà installato su un hosting condiviso. – yourkishore

0

Avete considerato Node.js + Lightstreamer invece di socket.io? Simone Fabiano ha pubblicato di recente an apple-to-apple data broadcasting comparison with socket.io (messaggi generati sul lato server e inviati a oltre 4mila client, ha funzionato su due Amazon EC2 Machines) e si è dimostrato in grado di scalare meglio di semplici web socket con socket.io nell'uso della CPU, nella latenza dei dati, e consumo di larghezza di banda, con alcune altre utili funzionalità per migliorare le prestazioni generali.

In particolare, Lightstreamer può essere utilizzato con grandi vantaggi per qualsiasi gioco multiplayer: vedere anche questo articolo (Optimizing Multiplayer 3D Game Synchronization Over the Web). Puoi passare attraverso una demo online di un semplice mondo 3D multiplayer in cui Lightstreamer è stato integrato per la sincronizzazione in tempo reale. La demo ti consente di modificare ogni parametro dello scenario e simulare qualsiasi aspetto della consegna dei dati, controllando al contempo il consumo effettivo della larghezza di banda.

Il codice sorgente completo del kit di benchmarking e della demo sono disponibili gratuitamente su GitHub.

[completa divulgazione: lavoro per Lightstreamer]

Problemi correlati