È possibile sviluppare giochi multiplayer con HTML5?


9

So che HTML5 è ottimo per i giochi Web, ma non so davvero se sia possibile sviluppare giochi online con più utenti, mantenendo tutti sincronizzati e gestendo gli accessi, ecc. È possibile farlo?

Risposte:


7

Non puoi scriverlo con HTML5 da solo. Avrai sempre bisogno di script e di un server per gestire la comunicazione tra gli utenti, a causa dei limiti di sicurezza degli script del browser e anche per evitare truffe.

Molte persone hanno scritto giochi html5 multiplayer, anche io. L'uso di html5 stesso non è probabilmente la parte più importante di esso. La maggior parte delle cose necessarie (se non tutte) sono state disponibili anche in HTML 4.01. L'eccezione è canvas, ma canvas è più lento di svg e svg era già disponibile in molti browser.

Penso che ciò che ha veramente generato la mania del "gioco html5" sia la possibilità di creare app lato server in javascript. Ciò significa che tutti i programmatori lato client possono improvvisamente creare da soli l'intero sistema, e di solito sono le persone creative quando si tratta di cose come i giochi. Per non parlare del fatto che JS è così facile che anche tua nonna potrebbe programmare con esso. Può essere.

Aggiornamento dopo commento dall'OP:

Un'architettura comune per un browser game sarebbe

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

O in termini di "lingue" effettive:

  • Vista client: HTML5 (possibilmente con angular.js, non ho ancora testato la velocità con LOTS in corso. Controlla anche raphael.js per "grafica")
  • Logica client: JavaScript (jquery / vapor / plain / qualunque)
  • Database client: WebSQL (parte della "suite" HTML5 suppongo)
  • Comunicazione: JSON (notazione di oggetti Javascript, essenzialmente oggetti javascript serializzati) su socket.io (libreria JS per il rilevamento automatico dei protocolli di comunicazione ottimali)
  • Lingua del server: anche JS (node.js se hai tonnellate di utenti simultanei su pochi core, sono disponibili anche altre soluzioni)
  • Convalida: assicurati solo che i tuoi dati di gioco INCOMING (dal client) siano validi. Non è necessario verificare la posta in uscita, nemmeno sul client. Si presume corretto. Sempre .
  • Game World: una raccolta di dati VERIFICATI che viene ridistribuita a tutti i clienti appena entrano
  • Database server: couchdb, mongodb, qualunque database che ti dia oggetti json grezzi con cui lavorare.

Eccoti. Un gioco per Internet completo scritto solo usando javascript e html. Bello.


trovo molto interessante la tua risposta, potresti darmi un piccolo consiglio su quali parti dovrei costruire (sono le più importanti) end to end e quali tecnologie alimentano ogni parte, mi dispiace per quello, sto solo cercando di sapere come costruire qualcosa di affidabile . Grazie!
arrrrgv,

1
+1, HTML5 è di gran moda, ma ciò che le persone attribuiscono ad esso sono principalmente funzionalità 4.01 e JavaScript. Potrei però chiederti di non chiamare JavaScript facilmente? Ha i suoi vantaggi, ma se vuoi scrivere programmi reali, devi essere un vero programmatore. JavaScript elimina le faccende della dichiarazione delle variabili e della gestione della memoria, ma non semplifica l'organizzazione del codice e la determinazione degli algoritmi e delle strutture dei dati, e sicuramente hai bisogno di una mentalità ed esperienza dei programmatori per tali compiti.
aaaaaaaaaaaa

@eBusiness quello che intendo per facile è che è così condensato in termini di programmazione e i suoi casi d'uso sono documentati a morte. Puoi sempre trovare un tutorial o una funzione che fa quello che vuoi. Ed è facile da configurare (non è necessario, è già nel browser).
Tor Valamo,

@arrrrgv post aggiornato con risposta alla tua domanda
Tor Valamo,

1
+1 per una buona risposta, anche se dubito che l'ascesa dei giochi HTML5 abbia qualcosa a che fare con JavaScript lato server. A rigor di termini JS non fa nemmeno parte di HTML5. Penso che siano le nuove funzionalità come canvas, webGL, audio e video e archiviazione locale a dare una spinta ai giochi HTML5. E ovviamente il fatto che sia nuovo e acclamato, quindi tutti saltano il carrozzone.
Bummzack,

3

Dai un'occhiata all'articolo su http://smus.com/multiplayer-html5-games-with-node e anche alla fonte fornita con l'articolo. Nota che questo utilizza anche JavaScript per il networking.


2
Scrivi "JavaScript" come una sola parola, per evitare confusione.
o0 '.

Un giorno, Node.js non sarà necessario - quando il supporto cross-browser per i socket web è molto diffuso.
Ingegnere

Non vedo perché il supporto cross-browser per i socket Web cambierebbe la necessità di un componente server al di fuori di qualsiasi browser. Devi sempre programmare una partita multiplayer in modo che i client si connettano a un server centrale, non direttamente da client a client.
derisione

1
Dai un'occhiata anche a NowJS ( nowjs.com )
Tim Holt

i socket Web sono intrinsecamente non sicuri per qualsiasi applicazione, motivo per cui l'implementazione pianificata è stata abbandonata da così tanti browser. non puoi consentire un ambiente che accede a "ovunque" e allo stesso tempo può ricevere input da "ovunque".
Tor Valamo,
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.