Cada día que pasa HTML5 está cogiendo más fuerza en el mundo de los juegos y de las apps, aunque aún queda mucho camino por recorrer lo cierto es que en apenas un par de años se ha avanzado muchísimo en este campo. Actualmente son muchas las empresas que han visto una buena forma de distribuir sus juegos en HTML5, es lógico, hacer que tu juego funcione en cualquier dispositivo que disponga de navegador sin obligar al usuario a descargar ningún plugin externo es, a mi entender, una ventaja.

En un principio, y dado el estado primitivo de HTML5, los juegos eran básicamente en 2D, usando SVG, la api del contexto 2d de canvas, o combinaciones de DOM con CSS y Javascript. Con el tiempo y a medida que el estándar ha ido avanzando, la api de canvas ha ganado importancia siendo hoy por hoy la forma más extendida de realizar juegos en html5.

Poco después llega el 3d a los juegos de navegador de la mano del maravilloso WebGL, el cual permitió expandir aún más el poder de los juegos de navegador dando acceso a recursos que antes no se podía (como la gpu), permitiendo hacer juegos bastante más complejos y con un mejor rendimiento gracias a la aceleración por hadware.

El ultimo gran paso que se ha dado en este campo, es la creación de emscripten/asm.js, una herramienta que nos permite compilar código c/c++ a javascript y ejecutarlo dentro de un navegador, y en el caso que nos interesa, usar juegos que fueron principalmente diseñador en c/c++ para otros entornos, bajo webgl en el navegador. Esta herramienta ha sido básicamente la culpable de que empresas con motores de juegos consolidados hayan decidido incluir exportadores a html5 de los juegos creados bajo su producto. (Video de Unreal Engine 3 en Mozilla Firefox).

Ahora, desde mi punto de vista, hay que diferenciar bien que es lo que buscamos, como he dicho en otras ocasiones cada motor es un mundo, y puede que prefiramos un motor u otro dependiendo del tipo de desarrollo que tenemos entre manos. Si usamos motores javascript, un contexto 2d nos va a permitir hacer juegos 2d sin aceleración por hadware, un contexto webgl nos va a permitir crear tanto juegos 2d como juegos 3d acelerados por hadware, pero bajo apis diferentes (lo que quiere decir que tendrás que aprender dos formas de trabajar diferentes), y un desarrollo basado en emscripten/asm.js nos va a permitir lo mismo que en webgl pero usando otro tipo de herramientas u otro tipo de lenguajes, a cambio posiblemente sacrificaremos algo de rendimiento en dispositivos “más” antiguos al existir una capa intermedia (ojo, aunque no será lo mismo que trabajar directamente en javascript, el rendimiento puede ser muy bueno).

Llegado a este punto, dirás que esto es un rollo, que estás peor que al principio y que tu solo quieres desarrollar juegos sin preocuparte de nada más, en ese caso, estás de suerte porque existe muchísima variedad en cuanto a motores se refieren, algunos se encargarán ellos mismos de aplicar el contexto adecuado sin que el developer se tenga que preocupar de aprender nada externo a la api propia del motor, y otros usaran emscripten/asm.js dándole al programador un fichero html que subir, y listo.

He recopilado unos cuantos motores que de una forma u otra te permitirán crear juegos para navegadores, y la he organizado en 3 categorías para ayudarte a elegir, estas son: javascript/2d, javascript/webgl, y por ultimo emscripten/asm.js.

Javascript / 2d

1. CutJS

Precio: Gratuito
Open Source: Si
Web: http://cutjs.org/

2. ImpactJS

Precio: 99$
Open Source: No
Web: http://impactjs.com/

3. Wade

Precio: Gratuito bajo ciertas condiciones http://www.clockworkchilli.com/index.php/main/policy/wade_eula
Open Source: No
Web: http://www.clockworkchilli.com/index.php/developers

4. FrozenJS

Precio: Gratuito
Open Source: Si
Web: http://frozenjs.com/docs/

5. Quintus

Precio: Gratuito
Open Source: Si
Web: http://html5quintus.com/

6. FabricJS

Precio: Gratuito
Open Source: Si
Web: http://fabricjs.com/

7. MelonJS

Precio: Gratuito
Open Source: Si
Web: http://melonjs.org/index.html

8. LimeJS

Precio: Gratuito
Open Source: Si
Web: http://www.limejs.com/

9. Booty5

Precio: Gratuito
Open Source: Si
Web: https://github.com/mrmop/Booty5

Javascript / WebGL

10. PixiJS

Precio: Gratuito
Open Source: Si
Web: http://www.pixijs.com/

*No es realmente un motor o famework de juegos, más bien es un renderer

11. Phaser

Precio: Gratuito
Open Source: Si
Web: http://phaser.io/

12. PandaJS

Precio: Gratuito
Open Source: Si
Web: http://www.pandajs.net/

13. Construct2

Precio: Dispone de diferentes planes de precios.
Open Source: No
Web: https://www.scirra.com/

14. BabylonJS

Precio: Gratuito
Open Source: Si
Web: http://www.babylonjs.com/

15. Trubulenz

Precio: Gratuito
Open Source: Si
Web: http://biz.turbulenz.com/

16. SpellJS

Precio: Dispone de planes de precios
Open Source: No
Web: http://spelljs.com/

17. ThreeJS

Precio: Gratuito
Open Source: Si
Web: http://threejs.org/

18. KiwiJS

Precio: Gratuito
Open Source: Si
Web: http://www.kiwijs.org/

19. CAAT

Precio: Gratuito
Open Source: Si
Web: https://github.com/hyperandroid/caat

20. CraftyJS

Precio: Gratuito
Open Source: Si
Web: http://craftyjs.com/

21. VoxelJS

Precio: Gratuito
Open Source: Si
Web: http://voxeljs.com/

22. PlayCanvas

Precio: Dispone de planes de precios
Open Source: Si
Web: https://playcanvas.com/

23. Cocos2d-JS

Precio: Gratuito
Open Source: Si
Web: http://www.cocos2d-x.org/wiki/Cocos2d-JS

24. LycheeJS

Precio: Gratuito
Open Source: Si
Web: http://lycheejs.org/index.html

25. EnchantJS

Precio: Gratuito
Open Source: Si
Web: http://enchantjs.com/es/

26. Haxor

Precio: Gratuito
Open Source: Si
Web: http://haxor.thelaborat.org/

Emscripten / asm.js

27. GameSalad

Precio: Dispone de planes de precios
Open Source: No
Web: http://gamesalad.com/

28. Game Maker Studio HTML5

Precio: 199.98$ (GMS Pro 99.99$ + HTML5 Module 99.99$)
Open Source: No
Web: https://www.yoyogames.com/

29. Unity 5

Precio: Dispone de planes de precios
Open Source: No
Web: https://unity3d.com/es/5

30. UnrealEngine 4

*No he podido encontrar mucha más información acerca del exportador html5 de UnrealEngine4

Precio: ???
Open Source: ???
Web: https://docs.unrealengine.com/latest/INT/Platforms/HTML5/GettingStarted/index.html

Comentario final

Me hubiera gustado añadir algunos comentarios sobre cada uno de los motores para tratar de ayudar a decidir a los indecisos, pero no me pareció adecuado, ya que no he probado todos los motores aquí listados y no podría ofrecer un “juicio” real de ellos.

Lo que si puedo hacer para futuros post es comentar un poco los que si he usado, mi opinión y experiencia con ellos. Igualmente si has usado cualquiera de estos motores, y quieres añadir o compartir información al respecto me agradaría leerla en los comentarios, y si conoces algún otro motor que no esté aquí listado, y que consideres que puede interesar a otras personas, me gustaría que lo compartieras también en los comentarios.