Conoscenze essenziali per creare giochi basati su HTML / JavaScript [chiuso]


17

Mi chiedevo se qualche esperto là fuori potesse condividere le conoscenze e le risorse di ciò che è necessario per iniziare a creare giochi con gli ultimi standard HTML e JavaScript (o come alcuni preferiscono chiamare HTML 5). Esistono librerie JavaScript essenziali per il processo? A parte il <canvas>tag, di quali altri elementi HTML dobbiamo essere consapevoli?

Risposte:


9

È necessario essere consapevoli dei tag audio e video . L'archiviazione Web è piuttosto critica se è necessario salvare molti dati per i giochi salvati ecc.

Esistono già alcuni framework di gioco html5 Javascript, Akihabara è piuttosto popolare.

Per quanto riguarda le altre librerie, Jquery e Javascript funzionale sono 2 dei miei preferiti.


quali sono i punti di forza di ciascun framework? Qual è il più semplice, il più robusto e con il codice più pulito? La parola "Funzionale" nel termine funzionale Javascript sembra interessante, di cosa si tratta davvero? Quale framework suggeriresti a Pythonist?

cosa fornisce Web Storage che un db non può?
expiredninja,

@expiredninja un database sarebbe effettivamente migliore, ma l'archiviazione Web è locale per il computer dell'utente. Nessun hosting e più veloce di effettuare chiamate Ajax ecc. Questa risposta è (leggermente) obsoleta con le tecniche utilizzate per i moderni giochi basati su browser.
jdeseno,

6

Esistono già un paio di framework: GameQuery e Akihabara , che è un plugin per jQuery per svolgere alcune attività legate al gioco, come animazioni, raggruppamenti di sprite, rilevare collisioni e leggere l'input del giocatore.


4

Solo per buttare più risorse là fuori, controlla RaphaelJS . È una libreria di disegno e animazione SVG molto bella che ha una bella API. Non dimenticare di dare un'occhiata alle demo.

Nel complesso, consiglierei i <canvas>tag rispetto alla semplice manipolazione del DOM (ad es. Rendere ogni sprite proprio <div>per rendere incredibilmente semplice l'hit test). È facile sbagliare e mal funzionare la manipolazione del DOM, mentre le tradizionali strategie di sviluppo 2D funzionano bene su un canvas HTML.


3

Oltre ad alcuni dei framework di gioco presenti, dovresti essere consapevole del Burst Engine, che è un framework JS per la visualizzazione di animazioni basate su SVG in una tela HTML5:

http://burst.bocoup.com/

Finora ho visto persone menzionare i tag e, ma ci sono altre cose DOM che sono vitali per lo sviluppo di giochi JS / HTML, tra cui cose come l'aggiunta di callback EventListener all'elemento per cose come gli eventi 'mousemove' e 'mousedown'. Ad esempio, questo prende il primo elemento canvas che riesce a trovare e lo configura in modo tale che quando fai clic sull'area di disegno, chiama una funzione che hai definito chiamata "shootAtClick":

document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', shootAtClick, false);

Puoi vederlo in azione in questo esempio in cui ho esteso il motore Akihabara per accettare il controllo di base del mouse. (Premi Z per iniziare, usa i tasti freccia per spostarti, fai clic con il mouse per sparare nella direzione del cursore.)


3

Conoscenza di quali componenti HTML5 sono supportati in quali browser.

Sebbene la compatibilità tra browser stia diventando migliore e più uniforme col passare del tempo, alcuni dei componenti più recenti non sono ancora completamente supportati allo stesso modo.

L'archiviazione locale potrebbe presentare alcune differenze specifiche del browser e per il supporto legacy avrai sicuramente bisogno di una libreria come jStorage o YUI Storage Lite .

Anche i socket Web possono presentare differenze specifiche per il browser, ma socket.io sembra una libreria promettente che fornisce un'astrazione conveniente.

La compatibilità audio è un componente piuttosto importante che richiede file audio diversi per browser diversi: http://html5doctor.com/native-audio-in-the-browser/

Chrome ha un paio di bug audio significativi, come l'impossibilità di riprodurre brevi file audio e la riproduzione di molti suoni simultanei può causare il crash dell'intero browser.

La cosa principale è capire le differenze del browser, usando le librerie per astrarre e fornire il supporto legacy secondo necessità.


1

HTML e JavaScript sono onestamente piattaforme pessime per lo sviluppo di giochi, ma questo non avrà importanza fino a quando non deciderai un tipo di gioco. La risposta sarebbe radicalmente diversa per uno sparatutto in prima persona, un RTS o un gioco puzzle.

Si noti che stai iniziando a ottenere risposte vaghe e ondulate che scuotono le tecnologie casuali che sembrano pulite. Questo è un segnale di avvertimento che non hai posto una domanda con una risposta particolarmente legittima.

Potresti anche chiedere quali elementi C ++ sono necessari per scrivere applicazioni. Dipende. Raccontaci di più sul progetto e potresti ricevere una risposta utile.

Nel complesso, c'è una ragione per cui quasi tutti i giochi Web sono ancora Flash.


4
Concordo sul fatto che la domanda sia vaga e che le risposte siano ovunque, ma non sono d'accordo sul fatto che "HTML e [JS] sono ... cattive piattaforme per lo sviluppo di giochi". Ricordi il doodle Pac-Man di Google? HTML e JS semplici. Penso che un certo tipo di gioco casual funzioni piuttosto bene su quella piattaforma, e gli umani che usano il web hanno già l'autonomia. (=
drhayes

1
Wow, pac-man. Innovativo. C'è un motivo per cui nessuno usa HTML / JS nei giochi per qualcosa di diverso dalle demo tecnologiche.
John Haugeland,

1
@Edmundito: Se è così che pensi che questa 'domanda' dovrebbe andare, dovrebbe essere contrassegnata come CW.
Jesse Dorsey

12
-1 risposta senza valore. Se la tua opinione è che i giochi Web non sono una buona piattaforma, siediti. Non so perché questo abbia ottenuto così tanti voti, forse altre persone condividono le tue opinioni ma non contribuisce affatto a rispondere a questa domanda.
Ricket

1
Ragazzi, smettete di infuriare. La risposta è stata molto diversa nel 2010 rispetto a oggi nel 2014. Al momento ho un sacco di giochi HTML in serbo.
John Haugeland,
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.