Libro Programando Videojuegos 2.0 JavaScript
Hacer videojuegos es uno de los retos más complejos a los que se puede hacer frente, controlando dispositivos del ordenador como el teclado, el ratón, el sonido y la pantalla. Pero además, se debe construir una buena estructura y jerarquía de clases POO que desarrollen el guión del videojuego al ritmo de las acciones del usuario. Por si todo esto fuera poco, también se deben tener conocimientos de diseño gráfico e interfaces.
Sin plugins ni frameworks, con JavaScript puro, en este libro desarrollaremos el videojuego Asteroides de principio a fin y partiendo de la nada.
Qué aprenderemos?
A diferencia de otros libros sobre JavaScript, en “Programando Videojuegos 2.0” utilizaremos JavaScript puro para programar y controlar los dispositivos del ordenador, enfocándolos a su interacción con los videojuegos. De esta forma aprenderemos:
Teclado: crearemos nuestro propio controlador de teclado para detectar todas las teclas pulsadas simultáneamente por el usuario y realizar acciones combinadas en nuestros videojuegos. También añadiremos técnicas para obtener las teclas clic a clic o de forma continua, controlando el teclado de forma absoluta.
Ratón: además de obtener los botones pulsados del ratón añadiremos funciones para detectar si el puntero se encuentra sobre un elemento gráfico creado por nosotros dentro del <canvas>.
Sonido: aprenderemos a añadir, activar, pausar, reanudar y copiar sonidos a medida que los necesitemos en nuestros videojuegos, obteniendo un control total sobre los sonidos.
Pantalla: el lienzo <canvas> será la pantalla donde mostraremos los gráficos de nuestro videojuego fotograma a fotograma 60 veces por segundo. Haremos que sea adaptable al tamaño del dispositivo donde se reproduzca: ordenador, tablet o móvil.
Librería gráfica: aprenderemos a crear nuestra propia librería gráfica capaz de cargar y mostrar todas las imágenes que necesita nuestro videojuego. Le añadiremos funciones para crear mapas de tiles, sprites animados o detectar colisiones y será la base gráfica para crear nuestro videojuego sobre el lienzo <canvas>.
Programación POO: aprenderemos las bases de la Programación Orientada a Objetos. A partir del videojuego que queremos crear, aprenderemos a diseñar una arquitectura y jerarquía de clases que, como resultado final, ejecutará todo el videojuego con una única instrucción run().
Programación lógica: a partir de la programación POO aprenderemos a crear los diferentes tipos de entidades lógicas del juego como enemigos, asteroides, disparos, bonus, jugador, explosiones, etc. Cada una de estas entidades lógicas, la programaremos a partir de elementos comunes creando herencia de clases y, al mismo tiempo, comportamientos específicos para adaptar cada elemento a la lógica del videojuego. Por ejemplo:
Bonus: aprenderemos a crear bonus a partir de la destrucción de un enemigo que añaden mejoras a la nave del jugador.
Disparos: aprenderemos a crear diferentes tipos de disparos que se activan al obtener un bonus.
Escudo: aprenderemos a añadir un escudo protector a la nave del jugador que se activa al obtener un bonus.
Vida extra: aprenderemos a añadir una vida extra al jugador que se activa al obtener un bonus.
Enemigos: aprenderemos a crear enemigos con la capacidad de moverse y disparar de forma independiente.
Movimientos: aprenderemos a mover y rotar los elementos gráficos por la pantalla en cualquier dirección de los 360 grados posibles.
Colisiones: aprenderemos a detectar colisiones entre elementos gráficos e interactuar con ellos dependiendo de su entidades lógicas, sumando puntos, destruyendo enemigos, activando bonus, etc.
Diseño de interfaz: aprenderemos a diseñar toda la interfaz del videojuego con sus diferentes pantallas y mantenerla actualizada durante el juego.
Configuración: aprenderemos a añadir opciones de configuración del juego donde el usuario podrá activar/desactivar música, configurar el teclado o añadir el nick del jugador.
Récords: aprenderemos a crear una pantalla de récords y añadir la puntuación del jugador en cada nueva partida.
Búsqueda de recursos: aprenderemos a buscar los recursos gráficos y de sonido necesarios para nuestros videojuegos, adaptarlos a nuestras necesidades y respetar los derechos de autor.
Otros: aunque no se explica con detalle en este libro, sí se muestran las técnicas para crear mapas de tiles (tilemaps), elementos gráficos articulados (jefes finales), diferentes tipos de enemigos, asteroides y naves.
Sin duda dominar todos estos conceptos aunque estén enfocados al desarrollo de videojuegos, elevarán tu nivel de JavaScript.
https://fashehlabs.com/libro-programando-videojuegos-2-javascript/