Développement de jeux mobiles HTML5 par rapport aux applications de jeux natives [fermé]


12

Quel est l'état actuel des moteurs de jeu, des frameworks, des bibliothèques et des conversions liés à l'ensemble des technologies HTML5 (y compris les bibliothèques CSS3 et JavaScript telles que RaphaelJS, Impact, gameQuery); et comment le meilleur de cela se compare-t-il au développement d'une application native (en particulier pour iOS et Android)?

Surtout en termes de performances, de visuels et d'obtenir cette "sensation native".

Des réflexions sur des solutions telles que Appcelerator et Corona SDK sont également appréciées. En ce qui concerne Unity3D, est-il possible de le développer et de faire en sorte que le jeu soit jouable sur un navigateur (comme les versions actuelles de Chrome ou Firefox, au moins) sans aucune dépendance ou que l'utilisateur installe quoi que ce soit (pas de lecteur Web d'unité) .

Ce que je recherche, c'est comment développer les standards du Web pour atteindre le nombre maximum de plateformes (y compris hors mobile) tout en conservant une expérience native pour mobile sans avoir à implémenter à nouveau le jeu pour iOS et Android.


2
Unity nécessite toujours le lecteur Web. Ils travaillent sur le déploiement de Flash 11, mais cela ne sera pas disponible avant un certain temps. Je n'ai pas joué à un jeu HTML5 sur un navigateur mobile qui me faisait du bien. Et l'audio HTML5 est toujours un tas de suckitude.
michael.bartnett

1
Si vous voulez une "sensation native", alors vous avez besoin d'une application native ... sinon vous êtes toujours limité au dénominateur commun des plateformes que vous souhaitez prendre en charge.
bummzack

Oh bien sûr, sans aucun travail supplémentaire, je serais. Mais un compromis pourrait être trouvé, tant que je n'ai pas besoin de réécrire toutes les bases d'un jeu, l'ajout de code plus spécialisé pour les interfaces tactiles serait tout à fait acceptable.
Vic Goldfeld

1
D'après mon expérience, les jeux natifs ont bien plus de performances que les jeux HTML5 sur les téléphones bas de gamme
Nick Shvelidze

Réponses:


7

Les bibliothèques HTML5 sont étonnamment bonnes, surtout compte tenu de leur jeune âge. Il existe de solides moteurs 2D / 3D qui prennent en charge les effets de particules, la physique, etc. Cependant, il n'y a rien de comparable aux moteurs de jeu établis et matures tels que Unity ou Unreal Engine.

Aussi, les bibliothèques HTML5 de mon expérience aiment être pilotées par les événements. Par exemple, les sprites auront un événement onclick et il n'y aura pas vraiment de boucle de jeu traditionnelle.

Pour les performances, les applications natives sont beaucoup, beaucoup plus rapides que tout ce qui concerne le canevas HTML 5. C'est l'étendue de mon expérience, je n'ai aucune idée d'Appcelerator ou du Corona SDK.

Cependant si votre objectif est plus le "nombre maximum de plateformes" que la partie "standards web", je vous propose une solution comme Unity qui fonctionne sur presque tout et grâce à son éditeur intégré est un moteur très productif.


6

Tom ici de Scirra, nous faisons de Construct 2 le créateur de jeux HTML5 .

Nous avons récemment blogué à ce sujet, comparant les performances de HTML5 Canvas / WebGl / C ++ DX. Vous pouvez lire à ce sujet ici:

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

Et voici le graphique:

entrez la description de l'image ici

Je sais que ce n'est pas une performance par rapport aux formats mobiles natifs, mais c'est une comparaison avec les applications natives de bureau qui devrait donner une indication de l'écart de performance.


J'adore le graphique. Une chance pour une mise à jour 2016?
Dan Dascalescu

4

Tout d'abord, Corona SDK est agréable à travailler. Lua est un grand langage, Corona est un cadre très complet, et la documentation a été excellente jusqu'à présent.

À mon avis, le développement de jeux HTML5 n'en vaut pas la peine. Sur les navigateurs de bureau et mobiles. Si votre objectif est de créer un jeu génial à exécuter sur des ordinateurs de bureau et des appareils mobiles, ne vous embêtez pas. Si votre objectif est de créer un jeu HTML5, allez-y et utilisez l'un des cadres que les gens ont mentionnés (regardez également Crafty ou Gee pour plus d'une interface de type dessin).

La raison principale est que lorsque je crée un jeu, je veux créer un jeu complet et soigné. Une bonne partie de la création d'un jeu complet et soigné est un bon son. Bien que la <audio>balise soit prise en charge sur les principaux navigateurs (en supposant que vous fournissez suffisamment de formats différents), la gestion de votre bande sonore par programmation avec createElementest une sorte de douleur. SoundManager 2 est un pansement, pas une solution. Dans de nombreux cas, il se contentera d'utiliser un objet Flash pour les ordinateurs de bureau. À quel point je demande, pourquoi ne pas simplement faire la chose sacrément dans Flash?

Sur iOS, à moins que vous n'utilisiez un hack comme dans la bibliothèque Jukebox de Zynga , vous êtes en fait limité à la lecture de sons uniquement en réponse à l'entrée de l'utilisateur. C'est ridicule.

De plus, à moins que vous ne compressiez votre jeu HTML5 en tant qu'application, les gens ont besoin d'une connexion pour jouer. Le temps que je passe le plus à jouer à des jeux mobiles est dans le métro - pas de signal. Et si vous emballez votre jeu, ne sera-t-il pas étrange de ne pas avoir de son? Si je télécharge un jeu, je m'attends à un certain niveau de réactivité et de polissage. Lire: une application native.

Jusqu'à ce que d' autres navigateurs développés et mobiles HTML5 sont plus rapides et les arrêts audio HTML5 sucer, je vais avoir du plaisir à jouer avec Javascript et <canvas>tout ça, mais je ne vais pas aller aussi loin que pour produire un jeu poli avec elle. Cela se résume à vos objectifs. Je sais très peu de gens qui jouent à des jeux et qui ne sont pas des développeurs ont même des jeux HTML5 mobiles sur leur radar. Encore une fois, si vous voulez créer de superbes jeux HTML5, créez des jeux HTML5. Si vous voulez créer et vendre des jeux géniaux, faites de la qualité de l'expérience de vos joueurs une priorité.


Demander une mise à jour mi-2012 - le développement de jeux HTML5 s'est-il amélioré? Y a-t-il encore des écarts de performances et des problèmes audio?
Flash

3

Vérifiez http://cocos2d-javascript.org/

Ce n'est pas encore complètement implémenté. Mais une fois terminé, ce pourrait être le meilleur :)

Il y a quelques démos sur ce site, elles sont assez bonnes ...

Edit: Juste vérifié, les démos ne sont pas adaptées aux mobiles ...


3

Comme d'autres réponses l'ont montré, la différence de performances est assez importante. Cependant, de nouvelles façons sont utilisées pour obtenir des performances Web natives sur le Web (à l'aide de Chrome).

MonoGame est une implémentation open source du framework XNA qui est conçue pour fonctionner sur autant de plateformes que possible. Lorsque cela est combiné avec Google Chromes NaCl (Native Client), les résultats sont assez étonnants (nécessite du chrome).

Mon conseil serait de créer une application native dans XNA ou MonoGame et d'envisager NaCl et / ou ExEn pour mettre votre jeu sur d'autres plateformes. La grande majorité de votre base de code sera la même pour toutes les plates-formes, mais la taille réduite libérant votre jeu n'aura pas la simplicité d'un jeu HTML5.

HTML5, à mon avis, n'est tout simplement pas encore là en ce qui concerne les performances utilisables, mais il existe d'autres options qui rivalisent presque avec l'accessibilité HTML5, tout en ajoutant un peu plus de complexité (et de coût dans certaines situations) à la sortie de votre jeu.


Oh mon dieu, je pensais que NaCl était uniquement pour le code C ++ natif, mais il fonctionne aussi en Mono?!
David Gouveia


1

Vous voudrez peut-être essayer PlayN . Ce n'est pas très mature ou bien documenté pour le moment, et cela prend un certain effort pour le faire fonctionner, mais cela vous permet de programmer en Java et d'exporter votre jeu vers un certain nombre de plates-formes différentes (pour le moment, Java, HTML5, Flash, Android et iOS, et à l'avenir, Windows Phone 7).

L'avantage qu'il a sur Corona, Phonegap, etc. est qu'il compile votre jeu pour chacune des plates-formes plutôt que de simplement l'exécuter à l'aide d'une machine virtuelle; cela garantit que vous obtenez des performances presque natives sur chaque plate-forme.


0

Réponse et liens impressionnants - merci!

Je fais mes propres analyses comparatives (HTML5 / JS et PhoneGap) et je trouve la même réponse. HTML5 n'est tout simplement pas encore là. Je n'ai joué avec aucune des réponses les plus «exotiques» comme l'application * mobi, qui prétend avoir un navigateur dépouillé optimisé pour les jeux, mais le plan général «Écrivez votre jeu en HTML5 et jouez-le sur un téléphone» est pas viable à ce stade. Il peut y arriver, mais je ne suis pas sûr. Le navigateur n'est tout simplement pas censé être un moteur de rendu, et nous sautons à travers de nombreux cerceaux pour y arriver. Je pense plutôt que nous verrons quelqu'un trouver une alternative qui obtiendra une masse critique, et qui décollera. Le temps nous le dira.

J'adorerais toute rétroaction et critique constructive de mon travail, qui est sur GitHub et est gratuit pour tous.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.