Connaissances essentielles pour créer des jeux HTML / JavaScript [fermé]

17

Je me demandais si des experts pourraient partager les connaissances et les ressources nécessaires pour commencer à créer des jeux avec les dernières normes HTML et JavaScript (ou ce que certains aiment appeler HTML 5). Existe-t-il des bibliothèques JavaScript essentielles au processus? Mis à part la <canvas>balise, de quels autres éléments HTML devons-nous être conscients?

Edmundito
la source

Réponses:

9

Vous devez connaître les balises audio et vidéo . Le stockage Web est assez critique si vous devez enregistrer beaucoup de données pour les jeux enregistrés, etc.

Il existe déjà quelques frameworks de jeu Javascript html5, Akihabara est plutôt populaire.

En ce qui concerne les autres bibliothèques, Jquery et Functional Javascript sont 2 de mes favoris.

jdeseno
la source
quelles sont les forces de chaque framework? Lequel est le plus simple, le plus robuste et le code le plus propre? Le mot "fonctionnel" dans le terme Javascript fonctionnel semble intéressant, de quoi s'agit-il vraiment? Quel cadre proposeriez-vous au pythoniste?
qu'est-ce que le stockage Web fournit qu'un db ne peut pas?
expiredninja
@expiredninja une base de données serait en fait meilleure mais le stockage web est local sur la machine de l'utilisateur. Pas d'hébergement et plus rapide que de faire des appels ajax, etc. Cette réponse est (légèrement) obsolète par rapport aux techniques utilisées pour les jeux modernes basés sur un navigateur.
jdeseno
6

Il existe déjà quelques frameworks: GameQuery et Akihabara , qui est un plugin pour jQuery pour effectuer certaines activités liées au jeu, comme des animations, regrouper des sprites, détecter des collisions et lire les entrées des joueurs.

chiguire
la source
4

Juste pour jeter plus de ressources, consultez RaphaelJS . C'est une très belle bibliothèque de dessins et d'animations SVG qui a une belle API. N'oubliez pas de consulter les démos.

Dans l'ensemble, je recommanderais les <canvas>balises plutôt que la manipulation directe du DOM (par exemple, faire en sorte que chaque sprite soit le sien <div>pour rendre les tests de hit incroyablement simples). Il est facile d'obtenir une manipulation DOM erronée et peu performante, tandis que les stratégies de développement 2D traditionnelles fonctionnent bien sur un canevas HTML.

drhayes
la source
3

En plus de certains des cadres de création de jeux qui existent, vous devez connaître le Burst Engine, qui est un cadre JS pour afficher des animations basées sur SVG dans un canevas HTML5:

http://burst.bocoup.com/

Jusqu'à présent, j'ai vu des gens mentionner les balises et, mais il y a d'autres choses DOM qui sont vitales pour le développement de jeux JS / HTML, y compris des choses comme l'ajout de rappels EventListener à l'élément pour des choses comme les événements 'mousemove' et 'mousedown'. Par exemple, cela prend le premier élément de canevas qu'il peut trouver et le configure de sorte que lorsque vous cliquez sur le canevas, il appelle une fonction que vous avez définie appelée "shootAtClick":

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

Vous pouvez le voir en action dans cet exemple où j'ai étendu le moteur Akihabara pour accepter le contrôle de base de la souris. (Appuyez sur Z pour commencer, utilisez les touches fléchées pour vous déplacer, cliquez sur la souris pour tirer dans la direction du curseur.)

DariusK
la source
3

Connaissance des composants HTML5 pris en charge dans quels navigateurs.

Bien que la compatibilité entre les navigateurs s'améliore et devienne plus uniforme au fil du temps, certains des composants les plus récents ne sont toujours pas pris en charge de la même manière.

Le stockage local peut avoir des différences spécifiques au navigateur, et pour la prise en charge héritée, vous aurez certainement besoin d'une bibliothèque telle que jStorage ou YUI Storage Lite .

Les sockets Web peuvent également avoir des différences spécifiques au navigateur, mais socket.io ressemble à une bibliothèque prometteuse qui fournit une abstraction pratique.

La compatibilité audio est un composant assez important qui nécessite différents fichiers audio pour différents navigateurs: http://html5doctor.com/native-audio-in-the-browser/

Chrome présente quelques bogues audio importants, tels que l' impossibilité de lire de courts fichiers audio et la lecture de nombreux sons simultanés peut bloquer l'ensemble du navigateur.

L'essentiel est de comprendre les différences de navigateur, en utilisant des bibliothèques pour résumer et fournir un support hérité selon les besoins.

Daniel X Moore
la source
1

Le HTML et le JavaScript sont des plateformes honnêtement assez mauvaises pour le développement de jeux, mais cela n'aura pas d'importance jusqu'à ce que vous ayez décidé d'un type de jeu. La réponse serait radicalement différente pour un jeu de tir à la première personne, un RTS ou un jeu de puzzle.

Notez que vous commencez à obtenir des réponses vagues et vagues de la part de technologies aléatoires qui semblent intéressantes. C'est un signe d'avertissement que vous n'avez pas posé de question avec une réponse particulièrement légitime.

Vous pourriez aussi bien demander de quoi vous avez besoin en C ++ pour écrire des applications. Ça dépend. Parlez-nous davantage du projet et vous obtiendrez peut-être une réponse utile.

Dans l'ensemble, il y a une raison pour laquelle presque tous les jeux Web sont toujours Flash.

John Haugeland
la source
4
Je suis d'accord pour dire que la question est vague et les réponses partout, mais je ne suis pas d'accord pour dire que "HTML et [JS] sont ... de mauvaises plateformes pour le développement de jeux." Vous vous souvenez du doodle Pac-Man de Google? HTML et JS simples. Je pense qu'un certain type de jeu occasionnel fonctionne plutôt bien sur cette plate-forme, et les humains utilisant le Web ont déjà le temps d'exécution. (=
drhayes
1
Wow, pac-man. Révolutionnaire. Il y a une raison pour laquelle personne n'utilise HTML / JS dans les jeux pour autre chose que des démos technologiques.
John Haugeland
1
@Edmundito: Si c'est ainsi que vous pensez que cette «question» devrait aller, elle devrait être marquée comme CW.
Jesse Dorsey
12
-1 réponse sans valeur. Si vous pensez que les jeux Web ne sont pas une bonne plateforme, asseyez-vous. Je ne sais pas pourquoi cela a suscité autant de votes positifs, peut-être que d'autres personnes partagent vos opinions, mais cela ne contribue pas du tout à répondre à cette question.
Ricket
1
Les gars, arrêtez de faire rage. La réponse a été très différente en 2010 de ce qu'elle est aujourd'hui en 2014. J'ai un tas de jeux HTML en magasin en ce moment.
John Haugeland