Si decido escribir un juego simple, tanto de texto como gráfico (2d), ¿qué bibliotecas usaría? (Supongamos que estamos usando un navegador compatible con HTML5)
Lo principal en lo que puedo pensar
- Renderizar texto en pantalla
- Animar sprites (usando imágenes / css)
- Entrada (capturar las teclas de flecha y obtener posiciones relativas del mouse)
- Quizás algún recurso de precarga o cargando recursos dinámicamente y eligiendo orden
- Sonido (pero no estoy seguro de lo importante que será para mí al principio). Tal vez con sonidos de mezcla y encadenamiento o bucles para siempre hasta detenerse.
- Redes (prioridad baja) para conectar a un usuario con otro o para obtener continuamente datos sin solicitud múltiple (Sé que esto existe, pero no sé lo fácil que es configurarlo o usarlo. Pero esto no es importante para mí. Es para la pregunta).
html5
javascript
usuario1047
fuente
fuente
Respuestas:
jQuery y MooTools son geniales bibliotecas de JavaScript; Prefiero jQuery yo mismo. Cualquiera de los dos te ayudará en el desarrollo de tu juego JS si usas el DOM. Si optas por el renderizado de Canvas, sigo pensando que deberías usar una de esas bibliotecas, pero necesitarás aprender las funciones de Canvas. Aquí hay un tutorial que lo introduce al lienzo creando un clon de Breakout, por lo que podría ser exactamente el tipo de cosa que está buscando (y usa jQuery).
Animar sprites es una cuestión de cambiar el src de una imagen, o precargar varias imágenes e intercambiarlas, o en un lienzo simplemente dibujando cuadros de una animación. Las bibliotecas anteriores pueden ayudar con cualquiera de estos casos. Las bibliotecas también ayudan con la entrada (ver eventos como onkeypress y onmousemove).
Para precargar recursos, me parecen algunos juegos que usan una sola imagen de "hoja de sprite" ( aquí está la del juego Pacman de Google ). Creo que básicamente crean un DIV de un tamaño de mosaico, con la propiedad de imagen de fondo CSS establecida en la hoja de sprite y la propiedad de posición de fondo establecida en el desplazamiento del mosaico en la hoja de sprite. No he visto una biblioteca que haga esto por usted, pero jQuery o MooTools pueden ayudarlo a crear dinámicamente el DIV y manipular su CSS. De lo contrario, la carga previa de imágenes es una cuestión de crear
<img>
etiquetas de las imágenes que desea cargar previamente y no agregarlas a la página (o agregarlas de forma invisible). Aquí hay una publicación de blog que tiene algún código para una función que usa jQuery para precargar imágenes por usted.SoundManager 2 parece ser la biblioteca de sonidos JS para usar; Sé que Vanthia lo usa, y Pacman de Googleusó algo similar (o al menos la misma técnica, de usar un archivo Flash oculto en la página para reproducir sonidos).
Para redes, jQuery puede manejar AJAX por usted, o si desea una red mucho más en tiempo real (y tiene el servidor para hacerlo), busque en los enchufes de JavaScript . No sé si hay una biblioteca estable para eso, pero podrías investigar esto o esto . Básicamente, utiliza un archivo Java o Flash oculto en la página para que pueda hacer una verdadera comunicación de socket con JavaScript, que es mucho más rápido que el sondeo AJAX y un poco más eficiente que "AJAX Push" . Sin embargo, lo más probable es que AJAX Push sea lo que desea, y APE (Ajax Push Engine) es probablemente la biblioteca para usar.
Además, aquí hay una charla técnica de Google sobre "Creación de un motor de juego basado en JavaScript para la Web" . Se ve bien.
fuente
Cuando evalué los motores de JavaScript hace un tiempo, mi favorito era Crafty:
http://craftyjs.com/
Hubo muchísimas opciones que tuve que considerar, y algunas otras que me gustaron fueron:
http://easeljs.com/
http://www.limejs.com/
http://code.google.com/p/casualjs/
(Por cierto, otra opción que parece bastante ingeniosa inicialmente es http://impactjs.com/ pero teniendo en cuenta que cuesta dinero y las otras opciones que miré eran motores de código abierto, hubo algunas omisiones evidentes, como la incapacidad de adjuntar elementos de visualización en una jerarquía)
ACTUALIZACIÓN: Han pasado casi 2 años desde que publiqué esa respuesta y la situación ha cambiado ligeramente (esta es un área naciente de tecnología). Aunque Crafty sigue siendo una gran opción, en el último año EaselJS ha cobrado mucho impulso (especialmente considerando que Adobe se subió al tren EaselJS .) Voy a cambiar a esa herramienta para futuros proyectos (también tenga en cuenta que tiene un nuevo sitio web )
fuente
El motor de juegos de efectos (javascript) es fantástico para juegos 2D, basados en mosaicos / sprites. El sitio web no hace un muy buen trabajo al describir lo que es tan bueno al respecto, pero tan pronto como profundice en la excelente documentación verá cuánto se ha cubierto para usted:
Realmente no puedo proporcionar una lista exhaustiva, ya que es tan completa. Una cosa que falta es la capacidad de crear menús e interfaz de usuario en el juego (por ejemplo, administradores de equipos, etc.), pero supuestamente está en la lista de tareas pendientes.
fuente
Mantengo un motor de juegos 2D de lienzo llamado JawsJS - http://jawsjs.com/
Fuente @ https://github.com/ippa/jaws
notas de acantilado:
fuente
¡El impacto va a estar enfermo! Solo eche un vistazo al juego de demostración, Biolab Disaster .
fuente
He estado investigando en esta área últimamente, así que permítanme agregar mis $ 0.02:
PlayN es una biblioteca multiplataforma de Google, que compila un juego orientado a objetos desde Java a javascript / Flash / Android. Manejará JSON (AJAX), modelos de datos y tiene una semántica sensata para actualizaciones y renderizado. Cosas muy chulas.
Processing es una biblioteca fácil de usar que está dirigida a diseñadores y artistas. Es excepcionalmente fácil de usar y puede brindarle excelentes resultados. He usado la versión de Java para el modelado científico, y es una delicia usarla. Las escenas 3D necesitarán WebGL, pero las escenas 2D funcionarán sin ellas.
Three.js tiene algunas demostraciones geniales. Requiere WebGL, pero el resultado parece valer la pena. También hay algunos ejemplos interesantes enlínea.
Estos son algunos de los otros elementos en mis enlaces de enlaces personales que se relacionan con WebGL:
fuente
Akihabara es un marco que he visto aparecer en varios lugares. Un amigo mío también creó una serie de tutoriales y documentación para el marco.
fuente
http://rocketpack.fi/ parece tener algo por venir.
fuente
Otro que recientemente he estado investigando con gran interés es CreateJs . Es una colección de bibliotecas de código abierto para incluir ...
Adicional, EaslJs juega bien con Box2D JS
fuente
Complementos Pixie
¡Los creadores de Contrasaurus han lanzado muchos de sus componentes individuales!
Tienen código para hacer transformaciones matriciales , abstracciones de lienzo y muchas cosas más interesantes.
Su código es excelente y sus bibliotecas son realmente útiles.
fuente
Impact JavaScript Game Engine para iOS parece prometedor. El enlace muestra una demostración, pero aún no se ha publicado.
fuente
Es extraño que Google Closure Library no haya sido mencionado. Tiene una API enorme, permite un estilo de codificación más orientado a objetos y tiene el compilador.
Hasta ahora solo he usado el compilador, pero planeo estudiar el resto lo antes posible.
fuente
Usualmente uso jawsjs porque es muy fácil configurarlo y comenzar a desarrollar un juego en minutos. Tiene muchas clases predeterminadas realmente útiles (Tilemap, Viewport, Sprite y otras) que realmente ayudan con el desarrollo del juego.
fuente
En realidad, tienes muchos de ellos, pero primero depende principalmente del tipo de motor de juego que estés buscando. Puedo darte algunas referencias de las más notables.
Motores de juego 2D
Motores de juego 3D
La fundación Mozilla ha estado trabajando en un motor de juegos en 3D llamado Paladin . Es Mozilla que realmente no puede doler, supongo.
fuente
También hay gameQuery, un motor de juego basado en jQuery. Tiene documentación decente en su API, así como algunas API de envoltura de sonido a las que se vincula en su sitio.
http://gamequery.onaluf.org/
fuente
Mozilla Gaming tiene una lista en sus páginas de Recursos . Se vincula a Diggy , que es un motor de juego DHTML que construí hace un tiempo. Demostración en vivo aquí!
fuente
Matrix.js es bueno si desea obtener transformaciones de matriz de estilo Flash.
fuente
Tom, de Scirra, somos un equipo de 2 personas que ha creado Construct 2, el creador de juegos HTML5 . (Versión gratuita disponible).
Es posible que desee considerar un motor como el nuestro, ya que hace mucho trabajo por usted. Por ejemplo, hacer colisiones en el código puede ser realmente complicado (piense en colisiones de polígonos). Todo en su lista se puede lograr fácilmente con Construct 2.
fuente