
Learning HTML5 Game Programming
James L. Williams
- Editorial
- Addison Wesley
- Año
- 2011
- Páginas
- ~256
- Nivel
- Básico
De qué trata
Guía práctica de James L. Williams, publicada por Addison-Wesley (con copyright de 2012), para crear juegos que se ejecutan en el navegador con las tecnologías de HTML5 de aquella época: Canvas, SVG y WebGL. El libro presenta HTML5 como sucesor de Flash y Silverlight para los juegos web y móviles. Según la editorial, va dirigido tanto a desarrolladores de juegos con experiencia como a programadores web o móviles que hacen su primer juego. Incluye un capítulo de introducción a JavaScript, así que alcanza con tener nociones generales de programación.
El recorrido empieza con un repaso de las novedades de HTML5 (WebSockets, Web Workers, APIs de almacenamiento, geolocalización, notificaciones y elementos multimedia), la preparación de un entorno de desarrollo de código abierto y los fundamentos del funcionamiento de un juego. Luego dedica un capítulo a cada técnica de dibujo: animación y lógica de juego con la etiqueta canvas, gráficos vectoriales SVG con RaphaëlJS y juegos 3D en WebGL con Three.js. Usa además el Simple Game Framework, basado en prototipos, para hacer prototipos rápidos. También enseña a programar juegos sin escribir JavaScript directamente, con GWT o CoffeeScript, a montar un servidor multijugador con Node.js y WebSockets, a elegir herramientas para móviles y a optimizar con caché offline y minificación antes de publicar.
Su principal aporte es la variedad: el lector pasa por varios juegos clásicos y prueba casi todas las vías gráficas del navegador, además de un servidor en tiempo real. Los capítulos traen ejercicios con soluciones y el código está publicado en GitHub. Hay que tener en cuenta su antigüedad: varias de sus herramientas (GWT, CoffeeScript, la caché offline de AppCache y las primeras versiones de Three.js) han quedado obsoletas o cambiado mucho, y no trata motores modernos como Phaser. Sirve como panorama conceptual, pero conviene trasladar lo aprendido a APIs y herramientas actuales.
- HTML5
- Canvas
- SVG
- RaphaëlJS
- WebGL
- Three.js
- Simple Game Framework
- Node.js
- WebSockets
- CoffeeScript
- GWT
- Juegos móviles
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Pong
Versión del clásico Pong hecha con el Simple Game Framework para explicar el bucle de juego y la lógica básica.
Asteroids
Clon de Asteroids con el que se explican la detección de colisiones avanzada y los sistemas de partículas.
Tres en raya (Tic-Tac-Toe)
Juego de tres en raya con una inteligencia artificial sencilla, que después se rehace en canvas con sprites.
Copy Me
Juego de memoria en canvas que añade sonido y texto en pantalla.
Juego de cartas con RaphaëlJS
Juego de cartas dibujado con gráficos vectoriales SVG mediante la librería RaphaëlJS.
Juego 3D con Three.js
Juego tridimensional que usa WebGL a través de la librería Three.js.
Servidor de juego multijugador
Servidor hecho con Node.js y WebSockets, con lobby y salas de juego para partidas en tiempo real.

