¿Por qué los pros y los contras de desarrollar juegos HTML5 para la web móvil?

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:

Æ !!

Rafael Masoni y yo trabajamos juntos para crear una demostración de un juego HTML5 en nuestro tiempo libre: Plaev – Skeleton Jigsaw y dejaré aquí algunas ventajas y desventajas del proyecto.

pros:

  • Compartir fue realmente fácil, solo envíe una URL. Sin problemas de compilación, sin múltiples binarios, etc.
  • Solo necesitábamos nuestras habilidades de desarrolladores web para comenzar con lo básico, después de todo, es solo Javascript, HTML y CSS
  • No se necesitan grandes motores, marcos, IDE o cosas complejas. Utilizamos un motor js simple y nuestros navegadores y editores favoritos
  • Hasta ahora (lo hicimos en 2013) es fácil mostrar el juego a cualquiera que esté interesado, solo lo abro en mi teléfono celular.
  • Hicimos todo desde casa y la interacción fue realmente genial. Nos reunimos una vez a la semana por Skype y configuramos todo, revisamos la semana anterior de trabajo y planificamos la siguiente.
  • Tuvimos la oportunidad de jugar con las tecnologías de vanguardia de los navegadores y dispositivos actuales y llevarlos a sus límites.
  • Tuvimos la oportunidad de trabajar en la optimización de todo lo que pudimos para que el juego se ejecute lo suficientemente bien en dispositivos que tienen menos potencia informática o navegadores más antiguos.

contras:

  • Tomó mucho tiempo probar en los dispositivos más utilizados y sabemos que la mayor parte se quedó atrás. Ese mismo viejo problema que tenemos con la web desde que nació.
  • La optimización no es un “plus” en su proyecto, es una parte vital del proyecto. Es realmente importante optimizar sus activos (solo imagine planes limitados de 3G para acceder a su juego y perder todos los datos que tenía para el día, este es el caso en Brasil) y su código. Obtuve 2 FPS cuando ejecuté mi juego en un teléfono barato con una versión anterior de Android.
  • Necesitará crear herramientas para algunas tareas. Estábamos usando Impact.js (HTML5 Canvas & JavaScript Game Engine) e IFAIK era el único que tenía un editor de niveles (Weltmeister – Impact), en caso de que estés usando un marco diferente (o construyendo uno nuevo …) Necesitaré construir esta herramienta también.
  • No habrá ayuda para lidiar con diferentes anchos de pantalla. Vimos que algunas opciones de diseño de nivel dejaron atrás el hecho de que la resolución de la pantalla podría variar mucho y no hay herramientas para ayudarlo y demasiadas pantallas para tratar.

Soy un gran admirador de HTML5 para construir juegos casuales y rompecabezas. Lo usaría nuevamente si el tipo de juego que planeo construir se ajusta a lo que HTML5 + Javascript puede ofrecer.

¡Espero eso ayude!

* errores de ortografía de perdón: responder mientras viaja

Además de ser multiplataforma y relativamente fácil de desarrollar que java (si vienes de fondo de desarrollo web) HTML5 puede brindar una experiencia inmersiva siempre que tengas un buen navegador / kit web y memoria para hacer los complejos cálculos y dibujos.

Los dispositivos de mano pueden o no tener ambos. Lo que significa que, después de desarrollar su juego en una computadora con mucha potencia de procesamiento, tendrá que pasar casi el mismo tiempo para optimizarlo para dispositivos específicos.
Además de eso, es posible que su juego quiera tener alguna funcionalidad nativa (notificaciones push, acceso a datos de usuario, vibración, análisis complejo, información de batería y red, etc.) que sería fácil de lograr solo cuando empaqueta su juego usando cordova / phonegap / AIR y solo los gustos. Hacerlo no solo le dará soporte nativo a tu juego, sino que también asignará más memoria y potencia de procesamiento que ejecutar tu juego en un navegador.

Espero que esto te dé una idea de alto nivel sobre cómo quieres hacer tu juego.

No soy un desarrollador de juegos HTML5, pero he tenido algunos experimentos con él, desde mi perspectiva …

Pro:

Funciona en la mayoría de los dispositivos / plataformas.

Contras:

Tienes que probarlo en muchos dispositivos / navegadores.

A pesar de que hay algunos SDK excelentes (un marco de juego HTML5 de código abierto rápido, divertido y gratuito), todavía es todo JS que, si vienes de un fondo OO, puede ser difícil de manejar. Y sigue siendo una forma muy basada en código de hacer juegos, todavía se trata más del desarrollo web que de hacer juegos, aunque eso probablemente cambie con el tiempo.

Debido a que su juego es solo un montón de scripts JS, html, css, su juego está prácticamente abandonado en una ubicación web. No es como el antiguo archivo Flash .swf que solía copiarse y difundirse por la web a otras ubicaciones.

Igualmente, su código de juego está ahí para que todos lo vean (aunque creo que hay formas de ocultar las cosas).

El futuro de Internet es hacia aplicaciones y lejos de cualquier cosa basada en el navegador.

HTML5 en este momento, sin embargo, es una buena opción para advergames. Juegos para sitios web de empresas, que pueden ejecutarse en dispositivos móviles y de escritorio.

More Interesting

¿Qué implica desarrollar una aplicación de Android: esfuerzos / tiempo?

¿Cuál es la mejor aplicación de chatbot para Android?

¿Cuál es la mejor aplicación de Android para grabar llamadas que registra automáticamente todas mis llamadas telefónicas y las carga en la nube para su almacenamiento?

¿Qué teléfono inteligente Android de la empresa debo comprar si mi presupuesto es de alrededor de 15k (excepto Samsung)?

¿Cuáles son las alternativas para ejecutar ventas de productos sin una tienda física? En mi ubicación, conozco aplicaciones de anuncios como OLX y Jiji y aplicaciones extranjeras como AliExpress, pero necesito conocer otras alternativas comerciales.

¿Cómo funciona el alcance de nombres de recursos de Android?

Cómo verificar si esa llamada API es desde mi aplicación de Android o desde afuera (en el lado del servidor)

¿Por qué la gente instala Cyanogen Mod en el teléfono inteligente Nexus cuando su teléfono ya es potente con las actualizaciones de Android y Android?

¿Cuál es la mejor aplicación de GPS para el sistema Android?

¿Por qué Google no escucha a sus usuarios y les da la posibilidad de desactivar la vista de conversación en la aplicación Gmail?

Cómo reiniciar aplicaciones que han sido forzadas a detenerse

¿Cuáles son las mejores aplicaciones móviles de transporte público? (en todo el mundo)

¿Cuáles son las 3 aplicaciones (Apple / Android) que mejorarán su calidad de vida?

¿Por qué Alarm Manager me alerta antes de la hora que configuré en Android?

¿Qué necesitas aprender para crear una aplicación de mensajería?