Me preguntaba si algún experto podría compartir el conocimiento y los recursos de lo que es necesario para comenzar a hacer juegos con los últimos estándares HTML y JavaScript (o lo que a algunos les gusta llamar HTML 5). ¿Hay bibliotecas de JavaScript que son esenciales para el proceso? Aparte de la <canvas>
etiqueta, ¿qué otras piezas de HTML debemos tener en cuenta?
web
html5
javascript
Edmundito
fuente
fuente
Ya hay un par de marcos: GameQuery y Akihabara , que es un complemento para que jQuery realice algunas actividades relacionadas con el juego, como animaciones, agrupación de sprites, detección de colisiones y lectura de la entrada del jugador.
fuente
Solo para lanzar más recursos, echa un vistazo a RaphaelJS . Es una muy buena biblioteca de dibujos y animación SVG que tiene una buena API. No te olvides de ver las demos.
En general, recomendaría
<canvas>
etiquetas en lugar de la manipulación directa del DOM (por ejemplo, hacer que cada sprite sea propio<div>
para hacer que las pruebas de impacto sean increíblemente simples). Es fácil interpretar mal la manipulación del DOM y tener un rendimiento incorrecto, mientras que las estrategias de desarrollo 2D tradicionales funcionan bien en un lienzo HTML.fuente
Además de algunos de los marcos de creación de juegos que existen, debe conocer el Burst Engine, que es un marco JS para mostrar animaciones basadas en SVG en un lienzo HTML5:
http://burst.bocoup.com/
Hasta ahora he visto a personas mencionar las etiquetas y, pero hay otras cosas DOM que son vitales para el desarrollo de juegos JS / HTML, incluidas cosas como agregar devoluciones de llamada EventListener al elemento para cosas como los eventos 'mousemove' y 'mousedown'. Por ejemplo, esto toma el primer elemento del lienzo que puede encontrar y lo configura para que cuando haga clic en el lienzo, llame a una función que haya definido llamada "shootAtClick":
document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', shootAtClick, false);
Puedes verlo en acción en este ejemplo en el que he extendido el motor Akihabara para aceptar el control básico del mouse. (Presione Z para comenzar, use las teclas de flecha para moverse, haga clic con el mouse para disparar en la dirección del cursor).
fuente
Conocimiento de qué componentes HTML5 son compatibles en qué navegadores.
Aunque la compatibilidad entre navegadores está mejorando y siendo más uniforme a medida que pasa el tiempo, algunos de los componentes más nuevos aún no son compatibles por completo.
El almacenamiento local puede tener algunas diferencias específicas del navegador, y para el soporte heredado definitivamente necesitará una biblioteca como jStorage o YUI Storage Lite .
Los sockets web también pueden tener diferencias específicas del navegador, pero socket.io parece una biblioteca prometedora que proporciona una abstracción conveniente.
La compatibilidad de audio es un componente bastante importante que requiere diferentes archivos de sonido para diferentes navegadores: http://html5doctor.com/native-audio-in-the-browser/
Chrome tiene un par de errores de audio importantes, como no poder reproducir archivos de audio cortos y reproducir muchos sonidos simultáneos que pueden bloquear todo el navegador.
Lo principal es comprender las diferencias del navegador, usar bibliotecas para abstraer y proporcionar soporte heredado según sea necesario.
fuente
Honestamente, HTML y JavaScript son plataformas bastante malas para el desarrollo de juegos, pero eso no importará hasta que hayas decidido un tipo de juego. La respuesta sería radicalmente diferente para un juego de disparos en primera persona, un RTS o un juego de rompecabezas.
Tenga en cuenta que está comenzando a obtener respuestas vagas y manuales que sacuden tecnologías aleatorias que parecen claras. Esa es una señal de advertencia de que no ha hecho una pregunta con una respuesta particularmente legítima.
También puede preguntar qué cosas de C ++ necesita para escribir aplicaciones. Eso depende. Cuéntanos más sobre el proyecto y podrías obtener una respuesta útil.
En general, hay una razón por la cual casi todos los juegos web siguen siendo Flash.
fuente