Aggiunta del multiplayer a un gioco HTML5 [chiuso]


15

Sono interessato a creare un gioco che attualmente ho un'esperienza cooperativa, tuttavia sono curioso di sapere quale sia il metodo migliore per implementarlo in HTML5.

Ho realizzato giochi prima di utilizzare socket C diritti, e anche con la libreria Net per SDL.

Quali sono alcune delle mie migliori opzioni per farlo in un ambiente basato su tela?

Al momento, tutto ciò che posso inventare sono soluzioni AJAX / database (con una frequenza di aggiornamento elevata) o in qualche modo implementare un server PHP che incanalerebbe i dati attraverso i socket.


Il gameplay complessivo sarebbe un tipo di gioco 2.5D platform-ish, quindi entrambi i clienti dovrebbero essere continuamente aggiornati con posizioni dei giocatori, posizioni nemiche, proiettili, dati ambientali, ecc.


1
Quando websocket ( en.wikipedia.org/wiki/WebSocket ) finalizzati (e implementati ecc.) Probabilmente sarebbe un buon modo, fino ad allora penso che AJAX (senza la X, nessun XML richiesto per questo) sarebbe probabilmente il modo migliore (suppongo non sia ancora un ottimo modo).
Elva,

Sembra che il supporto per i socket web stia calando rapidamente ...
the_e

Vuoi prendere una posizione o un gioco? Se vuoi fare un gioco; non perdete tempo per html5.

@stefan: perché non entrambi? solo perché non è stato ancora finalizzato non significa che non posso lavorarci!
the_e

Risposte:


12

Socket.IO offre un sistema costruito su molti altri livelli (inclusi websocket, flash, tecniche di comete) con una selezione aggraziata.

Node.js è un'opzione per eseguirlo sul lato server.


5

Vedi questa risposta :

Tuttavia, è possibile utilizzare Flash ove disponibile per fornire uno script di fallback fino a quando WebSocket non sarà ampiamente disponibile. Il web-socket-js di Gimite ne è un esempio gratuito. Tuttavia, sei soggetto alle stesse limitazioni dei Flash Socket, in particolare che il tuo server deve essere in grado di sputare una politica tra domini su richiesta alla porta del socket e avrai spesso difficoltà con i proxy / firewall. (I socket flash sono creati direttamente; per chi non ha un accesso IP pubblico diretto che può uscire dalla rete solo tramite un proxy HTTP, non funzioneranno.)


3

" Cometa " è probabilmente un termine generico che potresti usare qui. WebSocket sarà un'opzione più desiderabile (quando sono felici che sia sicuro).


3

Node.js è la risposta. L'ho usato per sviluppare un gioco di tiro multiplayer in tempo reale e ci sono voluti circa 1 mese dall'inizio alla fine. Ha presentato alcune sfide uniche, tali da richiedere una latenza minima e tutti i giocatori devono rimanere sincronizzati all'interno di un altro perché il concetto funzioni.

Il lato client e il lato server sono entrambi scritti in javascript e condividono le classi / la logica tra loro. Questo inizia a contare quando si tenta di correggere i bug, poiché non è necessario implementare tutto due volte.

Il gioco è attivo, da circa 2 mesi, senza essere riavviato e migliaia di partite sono state giocate.

Socket.io è un'implementazione di socket e utilizza node.js, tuttavia a questo punto è troppo gonfio per un gioco. Esistono altre implementazioni di websocket su github per node.js e anche esempi di giochi che lo utilizzano.


2

Puoi sempre usare AJAX e una sorta di coda di messaggi. ActiveMQ è un buon esempio. Esegui ActiveMQ sul server, quindi JavaScript può inviare e ricevere messaggi. Basta fare in modo che ciascun giocatore abbia un nome univoco e inviare messaggi all'altro giocatore.




2

Abbiamo lavorato su una piattaforma multi-player che potresti trovare interessante. Puoi vedere il nostro progetto su www.16cubes.com - stiamo fornendo un semplice livello javascript per effettuare comunicazioni peer to peer. Si basa in qualche modo sul principio della cometa e abbiamo in programma di passare all'utilizzo dei socket Web man mano che diventa un po 'più standardizzato. D'altra parte, stiamo fornendo alcune funzionalità dallo scaffale ... come la corrispondenza automatica dell'avversario, la chat di gioco, l'invito con un clic degli amici di Facebook ecc

Abbiamo una demo tic-tac-toe, probabilmente puoi avere un'idea migliore se la vedi. E sì, puoi giocare anche in modo anonimo. Nessuna registrazione richiesta, se non vuoi. Ci sono meno di 10 API javascript che devi codificare ed è disponibile su www.16cubes.com/documentation

Siamo attivamente alla ricerca di feedback, quindi fateci sapere sia il bene che il male


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.