Pros:
- Puedes usar JavaScript. Cuando se habla específicamente del desarrollo del juego, nada supera su capacidad de reemplazar un fragmento de código in vivo, mientras se ejecuta el programa. En Unity, por ejemplo, puede exponer parámetros simples para que se puedan ajustar en el editor mientras el juego se está ejecutando, pero cambiar cualquier código requiere una recompilación lenta y tediosa, lo que significa que sus juegos serán peores (solo puede tomar tanta molestia antes) te rindes y dices “joder, es lo suficientemente bueno”).
- Puedes usar JavaScript. Admite algunos conceptos OOP más avanzados que faltan en los lenguajes populares “OOP-ish”, pero que son relevantes para la programación de juegos. Por ejemplo, mixins o la capacidad de eliminar un método de su “clase” y reutilizarlo en un entorno diferente.
- ¿Mencioné que puedes usar JavaScript? Matrices nativas, ensamblado generado eficiente, AsmJS (pronto: WebAssembly) cuando necesite integrarse con C ++ (por ejemplo, para una biblioteca de álgebra lineal).
- Su juego puede ser tan grande como quiera, siempre que transmita sus datos y código. No es necesario tener todo descargado, puede ser bajo demanda. Las actualizaciones son triviales (solo cambie los archivos en el servidor, y cuando los clientes se vuelvan a conectar tendrán la nueva versión).
- Canvas, WebGL, WebAudio, multitáctil, iconos de la pantalla de inicio, modo fuera de línea, giroscopio, GPS …
- Un juego de herramientas de interfaz de usuario de juego agradable, personalizable y de alto rendimiento llamado “HTML + CSS” 🙂
Contras:
- No hay compras en la aplicación (excepto a través de PhoneGap / Cordova, que de alguna manera frustra el propósito de estar basado en la web).
- En lugar de 16.6 ms, solo tiene como 12-ish. El navegador necesita alrededor de 4 ms por cuadro para sus propias cosas.
- Subprocesamiento múltiple solo con el paso de mensajes, es decir, sin acceso directo a la memoria compartida (no estoy seguro si esto es una estafa o un profesional … pero para juegos, probablemente una estafa).
- Puede ser muy difícil estimar qué código de máquina se generará a partir de una determinada pieza de JS. Esto puede depender de prácticamente cualquier cosa, y el optimizador puede simplemente abandonarlo si destruye sus suposiciones demasiadas veces. NO quieres que el optimizador te abandone. Probablemente debería ver esto, presenta algunos de los desafíos únicos en comparación con los lenguajes y entornos más estáticos:
- ¿Cuál es el mejor curso gratuito para aprender el desarrollo de aplicaciones de Android?
- ¿Cuál es el mejor idioma para escribir una aplicación móvil?
- Cómo ver los mejores comentarios en lugar de los más recientes en la aplicación de Facebook para Android
- ¿Conocer la versión del procesador MTK es suficiente para obtener la imagen TWRP correcta en un dispositivo Android?
- ¿Cuál debería ser la arquitectura de mi aplicación de Android?