Desarrollo de juegos móviles HTML5 versus aplicaciones de juegos nativas [cerrado]

12

¿Cuál es el estado actual de los motores de juegos, marcos, bibliotecas y conversiones relacionadas con el conjunto de tecnologías HTML5 (incluidas las bibliotecas CSS3 y JavaScript como RaphaelJS, Impact, gameQuery); ¿Y cómo se compara lo mejor de eso con el desarrollo de una aplicación nativa (especialmente para iOS y Android)?

Especialmente en términos de rendimiento, imágenes y obtener esa "sensación nativa".

También se agradecen los pensamientos sobre soluciones como Appcelerator y Corona SDK. En lo que respecta a Unity3D, ¿es posible desarrollarse en él y aún tener el juego jugable en un navegador (como las versiones actuales de Chrome o Firefox, al menos) sin ninguna dependencia o que el usuario instale algo (no hay un reproductor web de la unidad) .

Lo que estoy buscando es cómo desarrollar estándares web para alcanzar el número máximo de plataformas (incluso fuera de dispositivos móviles) sin perder la experiencia nativa para dispositivos móviles sin tener que implementar el juego de nuevo para iOS y Android.

Vic Goldfeld
fuente
2
La unidad todavía requiere el reproductor web. Están trabajando en la implementación de Flash 11, pero eso no estará disponible por un tiempo. No he jugado un juego HTML5 en un navegador móvil que se haya sentido bien. Y el audio HTML5 sigue siendo un montón de succión.
michael.bartnett
1
Si desea una "sensación nativa", entonces necesita una aplicación nativa ... de lo contrario, siempre estará limitado al denominador común de las plataformas que desea admitir.
bummzack
Oh, claro, sin ningún trabajo extra estaría. Pero se podría llegar a un compromiso, siempre y cuando no necesite reescribir todas las bases para un juego, agregar código más especializado para interfaces táctiles sería completamente aceptable.
Vic Goldfeld
1
Según mi experiencia, los juegos nativos tienen mucho más rendimiento que los HTML5 en teléfonos de gama baja
Nick Shvelidze

Respuestas:

7

Las bibliotecas HTML5 son sorprendentemente buenas, especialmente teniendo en cuenta su corta edad. Hay motores sólidos 2D / 3D que admiten efectos de partículas, física y similares. Sin embargo, no hay nada comparable a los motores de juego establecidos y maduros como Unity o Unreal Engine.

También las bibliotecas HTML5 en mi experiencia les gusta estar controladas por eventos. Por ejemplo, los sprites tendrán un evento onclick y en realidad no habrá un ciclo de juego tradicional.

Para el rendimiento, las aplicaciones nativas son mucho, mucho más rápidas que cualquier cosa que tenga que ver con el lienzo HTML 5. Sin embargo, ese es el alcance de mi experiencia, no tengo idea sobre Appcelerator o Corona SDK.

Sin embargo, si su objetivo es más el "número máximo de plataformas" que la parte de "estándares web", sugiero una solución como Unity que funciona en casi todo y que gracias a su editor incorporado es un motor muy productivo.

Trueno clásico
fuente
6

Tom, de Scirra, hacemos de Construct 2 el creador de juegos HTML5 .

Recientemente escribimos un blog sobre esto, comparando el rendimiento de HTML5 Canvas / WebGl / C ++ DX. Usted puede leer sobre ello aquí:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

Y aquí está el gráfico:

ingrese la descripción de la imagen aquí

Sé que no es un rendimiento en comparación con los formatos móviles nativos, pero es una comparación con las aplicaciones nativas de escritorio que deberían dar alguna indicación de la brecha de rendimiento.

Tom Gullen
fuente
Me encanta el gráfico. ¿Alguna posibilidad de una actualización de 2016?
Dan Dascalescu
4

En primer lugar, Corona SDK es encantador para trabajar. Lua es un gran idioma, Corona es un marco muy completo y la documentación ha sido excelente hasta ahora.

En mi opinión, el desarrollo de juegos HTML5 todavía no lo vale. Tanto en navegadores de escritorio como móviles. Si su objetivo es hacer un juego increíble para ejecutar en computadoras de escritorio y dispositivos móviles, entonces no se moleste. Si su objetivo es hacer un juego HTML5, vaya a hacerlo y use uno de los marcos que la gente ha mencionado (también mire Crafty o Gee para obtener más información sobre una interfaz de tipo dibujo).

La razón principal es que cuando hago un juego, quiero hacer un juego completo y pulido. Parte de hacer un juego completo y pulido es un buen audio. Aunque la <audio>etiqueta es compatible con los principales navegadores (suponiendo que proporcione suficientes formatos diferentes), administrar su banda sonora mediante programación createElementes algo complicado. SoundManager 2 es una curita, no una solución. En muchos casos, simplemente recurrirá al uso de un objeto Flash para escritorios. En ese momento pregunto, ¿por qué no hacer la maldita cosa en Flash?

En iOS, a menos que use un truco como en la biblioteca Jukebox de Zynga , en realidad está limitado a reproducir solo sonidos en respuesta a la entrada del usuario. Es ridículo.

Además, a menos que esté empaquetando su juego HTML5 como una aplicación, las personas necesitan una conexión para jugar. El tiempo que paso más jugando juegos móviles es en el metro, sin señal. Y si empacas tu juego, ¿no será extraño no tener sonido? Si estoy descargando un juego, espero un cierto nivel de capacidad de respuesta y pulido. Leer: una aplicación nativa.

Hasta que los navegadores móviles y HTML5 más desarrollados sean más rápidos y el audio HTML5 deje de succionar, me divertiré jugando con Javascript <canvas>y todo eso, pero no iré tan lejos como para producir un juego pulido con él. Se reduce a cuáles son tus objetivos. Muy pocos que conozco que juegan juegos y no son desarrolladores, incluso tienen juegos HTML5 móviles en su radar. Nuevamente, si quieres crear juegos HTML5 increíbles, crea juegos HTML5. Si quieres crear y vender juegos increíbles, haz de la calidad de la experiencia de tus jugadores una prioridad.

michael.bartnett
fuente
Solicitar una actualización a mediados de 2012: ¿ha mejorado el desarrollo de juegos HTML5? ¿Sigue habiendo la brecha de rendimiento y problemas de audio?
Flash
3

Verifique http://cocos2d-javascript.org/

Aún no está completamente implementado. Pero una vez hecho, podría ser el mejor :)

Hay algunas demos en ese sitio, son bastante buenas ...

Editar: Acabo de marcar, las demos no son compatibles con dispositivos móviles ...

saiy2k
fuente
3

Como han mostrado otras respuestas, la diferencia de rendimiento es bastante grande. Sin embargo, hay nuevas formas de obtener rendimiento web nativo en la web (usando Chrome).

MonoGame es una implementación de código abierto del marco XNA que está diseñada para funcionar en tantas plataformas como sea posible. Cuando esto se combina con Google Chromes NaCl (Native Client), los resultados son bastante sorprendentes (requiere Chrome).

Mi consejo sería crear una aplicación nativa en XNA o MonoGame y considerar NaCl y / o ExEn para llevar tu juego a otras plataformas. La gran mayoría de su base de código será la misma para todas las plataformas, pero el tamaño reducido es el lanzamiento de su juego que no tendrá la simplicidad de un juego HTML5.

HTML5, en mi opinión, todavía no existe en lo que respecta al rendimiento utilizable, pero existen otras opciones que casi rivalizan con la accesibilidad de HTML5, aunque agregan un poco más de complejidad (y costo en alguna situación) al lanzamiento de su juego.

Darren Reid
fuente
¡Dios mío, pensé que NaCl era solo para código nativo de C ++, pero también funciona Mono!
David Gouveia
1

Es posible que desee probar PlayN . No es muy maduro o está bien documentado en este momento, y se necesita un poco de esfuerzo para que funcione, pero le permite programar en Java y exportar su juego a varias plataformas diferentes (en este momento, Java, HTML5, Flash, Android e iOS, y en el futuro, Windows Phone 7).

La ventaja que tiene sobre Corona, Phonegap, etc. es que compila tu juego para cada una de las plataformas en lugar de solo ejecutarlo usando una máquina virtual; Esto garantiza que obtenga un rendimiento casi nativo en cada plataforma.

Usuario no encontrado
fuente
0

Impresionante respuesta y enlaces - ¡gracias!

Estoy haciendo algunos benchmarking propios (HTML5 / JS y PhoneGap), y encuentro la misma respuesta. HTML5 todavía no está allí. No he jugado con ninguna de las respuestas más 'exóticas', como la aplicación * mobi, que afirma tener un navegador simplificado optimizado para juegos, pero el plan general "Escribe tu juego en HTML5 y juega en un teléfono" es No es viable en este punto. Puede llegar allí, pero no estoy seguro. El navegador simplemente no está destinado a ser un motor de renderizado, y estamos saltando a través de muchos aros para llegar allí. Creo que en cambio veremos a alguien idear una alternativa que obtenga masa crítica, y que despegue. El tiempo dirá.

Me encantaría cualquier comentario y crítica constructiva de mi trabajo, que está en GitHub y es gratis para todos.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

Fabricante de juegos
fuente