Conocimientos esenciales para hacer juegos basados ​​en HTML / JavaScript [cerrado]

17

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?

Edmundito
fuente

Respuestas:

9

Debe tener en cuenta las etiquetas de audio y video . El almacenamiento web es bastante crítico si necesita guardar una gran cantidad de datos para juegos guardados, etc.

Ya hay algunos marcos de juego Javascript html5, Akihabara es bastante popular.

En cuanto a otras bibliotecas, Jquery y Functional Javascript son 2 de mis favoritos.

jdeseno
fuente
¿Cuáles son las fortalezas de cada marco? ¿Cuál es el más simple, el más robusto y con el código más limpio? La palabra "funcional" en el término funcional de Javascript suena interesante, ¿de qué se trata realmente? ¿Qué marco sugerirías a Pythonist?
¿Qué proporciona el almacenamiento web que un db no puede?
expiredninja
@expiredninja una base de datos en realidad sería mejor, pero el almacenamiento web es local para la máquina del usuario. Sin alojamiento y más rápido que hacer llamadas ajax, etc. Esta respuesta está (ligeramente) desactualizada con las técnicas utilizadas para los juegos modernos basados ​​en navegador.
jdeseno
6

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.

chiguire
fuente
4

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.

drhayes
fuente
3

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).

DariusK
fuente
3

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.

Daniel X Moore
fuente
1

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.

John Haugeland
fuente
44
Estoy de acuerdo en que la pregunta es vaga y las respuestas están por todas partes, pero no estoy de acuerdo con que "HTML y [JS] sean ... plataformas malas para el desarrollo de juegos". ¿Recuerdas el doodle de Pac-Man de Google? HTML directo y JS. Creo que cierto tipo de juego casual funciona bastante bien en esa plataforma, y ​​los humanos que usan la web ya tienen el tiempo de ejecución. (=
drhayes
1
Guau, pac-man. Innovador Hay una razón por la que nadie usa HTML / JS en los juegos para nada más que demostraciones tecnológicas.
John Haugeland
1
@Edmundito: Si así es como crees que debería ir esta 'pregunta', debería estar marcada como CW.
Jesse Dorsey
12
-1 respuesta inútil. Si tu opinión es que los juegos web no son una buena plataforma, entonces siéntate. No sé por qué esto obtuvo tantos votos positivos, tal vez otras personas compartan sus opiniones, pero no contribuyen a responder esta pregunta en absoluto.
Ricket
1
Chicos, dejen de enfurecerse. La respuesta fue muy diferente en 2010 de lo que es hoy en 2014. Tengo un montón de juegos HTML en la tienda en este momento.
John Haugeland