IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement iOS Discussion :

Jeux HTML5 sur IOS


Sujet :

Développement iOS

  1. #1
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut Jeux HTML5 sur IOS
    Bonjour,
    Je vais commencer un projet multiplate-forme de jeu sur le web notamment en HTML5 (Framework LimeJS probablement). Ce projet devra être porté sur Mobile (Browser) et Natif (IPhone et Android)
    Si j'embarque une UIWebView dans une application IOS est ce que les performances du jeu seront bonnes ? Est ce que toutes le JS sera bien interprété ? Bref est ce que ça sera aussi bon que de développer le jeu entièrement en Objective C ?
    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Des outils comme PhoneGap fonctionnent sur le principe de l'UIWebView intégré à l'application, qui sert à interpréter le javascript et l'HTML de la webapp.
    Bien que parfaitement compatible avec le standard HTML5 (ou au moins avec le subset intégré à la version de WebKit utilisée pour iOS - c'est à dire un couverture conséquente), l'utilisation du <canvas> reste lente.
    Bien que différentes astuces existes pour accélérer le code, il faut recourir pour l'instant (et ce jusqu'à la prochaine build d'iOS autorise l'utilisation du WebGL) à des moteurs embarquant une surface OpenGL (ES) pour émuler le <canvas>, un moteur OpenAL pour l'<audio> et JavascriptCore pour le code JS.
    Là, les performances sont proches (voire identiques dans beaucoup de cas) à du natif. En effet, du code natif, pour un jeu, c'est ObjC/OpenGL ES, OpenAL et du Lua (donc un langage dynamique, comme le JS) pour l'architecture métier du jeu.
    Je connais au moins deux solutions basées sur ce principe : ImapctJS, et directCanvas d'appMobi. CocoonJS se lance aussi sur ce créneau, mais il n'y a pas encore de build accessible aux développeurs pour faciliter les tests.

  3. #3
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut
    Je suis parti en fait sur ImpactJs donc tu me rassure en terme de rapidité ! car après avoir regardé les demos de beaucoup de framework HTML5 propre au jeu, impactjs m'a semblé être de loin le meilleur et le plus rapide.
    Par contre je ne connais pas encore trop les possibilités de Phonegap qu'elle est la différence entre intégrer une uiwebview en objective-C et utiliser phonegap ?
    appmobi apporte deux solutions jqMobi et appMobi Bridga Api, quelle est la difference entre les deux et laquelle utiliser ?
    et pour finir si j'utilise ImpactJs le rendu ne sera pas utilisé comme un canvas 2D mais bien comme une emulation d'Open GL ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Effectivement, ImpactJS est rapide.
    Pour simplifier, c'est un Quad en OpenGL(ES), texturé. Le codeur derrière l'API a réécrit un certains nombre de fonctions disponibles pour le tag <canvas> afin d'avoir l'équivalent en appels OpenGL. (Cela veut aussi dire que certaines fonctions ne seront pas accessible, car pas encore réécrites).

    Pour PhoneGap, en fait il n'y a pas de différence entre intégrer une UIWebView dans un projet XCode ObjC et un projet PhoneGap (puisque c'est ce qu'ils font en sous-main). L'avantage de PhoneGap, c'est le bridge Javascript <-> ObjectiveC qui est déjà écrit (et qui permet d'appeler des fonctions natives à partir du JS, et inversement).

    Pour appMobi, dans l'ensemble des solutions qu'ils présentent, c'est directCanvas qui sert à accélérer le <canvas> (en fait une méthode similaire à celle d'ImpactJS, avec peut-être un peu plus de fonctionnalités implémentées). jqMobi est une implémentation de jQuery, accélérée et minimisée pour les mobiles (dont les temps d'accès pour les modifications aux DOM ont plusieurs ordres de grandeur de décalages avec les desktops).

    Au fait, j'ai envoyé un MP, je ne sais pas si tu l'as vu .

  5. #5
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut
    Merci encore pour ces précisions. j'ai commencé a développer mon premier jeu sur impactjs et ça fonctionne plutôt bien excepté sur Android Browser et Safari ou la j'ai une page blanche et une erreur dans la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    impactjs.js:64TypeError: 'undefined' is not a constructor (evaluating 'new Audio()')
    Dans mon projet global je vais avoir plusieurs jeux distincts en Impatcjs et une navigation en jquerymobile pour naviguer dans l'application et je pensais encapsuler le tout dans une WebView avec Phonegap pour IOS et Android.
    Tu n'y vois pas de problèmes que je pourrais avoir par la suite ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    L'erreur ressemble for à un problème d'objet Audio non supporté. Le code qui créé l'objet vient d'un framework ou il est de toi ?

    J'essaye de visualiser ce que tu veux faire en mixant la vue ImpactJS et une WebView "classique". Je ne sais pas si cela va fonctionner tel quel sur les deux architecture. En toute logique, il va falloir switcher entre les deux vues pour en mettre une au premier plan. Est-ce qu'ImpactJS le supporte sans problèmes ? (Du style perte de contexte OpenGL, buffers écrasés ou d'autres choses qui pourraient arriver...).
    C'est une vraie question de ma part, car je connais ImpactJS mais je ne l'ai pas utilisé en prod.
    Si c'est possible d'alterner entre le deux sans problème de la part d'IJS et de PhoneGap (qui peut lui aussi être capricieux), alors ta GUI sera développée en HTML/JS/CSS "classique", et comportera des liens vers les différents jeux, et sera affichée par PhoneGap. Lorsque tu lanceras un jeu, c'est IJS qui passe au premier plan.
    Il faut dans ce cas penser à proposer un lien de retour vers l'affichage de la GUI HTML.

  7. #7
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut
    L'erreur viens du framework ImpactJs lui même ce qui m’étonne c'est que le framework est fais pour être supporté sur Android.

    Pour le problème de la Webview je visualise a peu prêt ... en tout cas j'ai déjà réalisé une navigation avec Jquery mobile et un premier jeu avec impactjs , sur le navigateur de l'iphone ça fonctionne très bien !
    c'est super fluide et toutes les fonctionnalités sont supportés après pour encapsuler le tout dans une webview en objective-C ou via Phonegap je ne connais pas encore trop les problématiques qu'il pourrais y avoir, j’espère qu'il n'y en a pas car je pars du principe que tout ce qui fonctionne dans le browser fonctionne dans une webview native , a tort ? je ne sais pas ...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Effectivement, tout ce qui fonctionne dans une WebView fonctionne dans le navigateur "natif" (Safari) puisque c'est le même moteur (Webkit) qui est appelé derrière. Par contre, il faut savoir que jusqu'à iOS 5 (je ne sais plus si c'est encore vrai pour le 5.1), les pages affichées dans Safari (jeu HTML5 ou webapp, ou pages classiques) profitent de l'accélération du moteur JS Nitro, mais pas les applications utilisant une WebView (Nitro n'est pas accéléré dans ce dernier cas). L'origine du problème vient du JIT qui permet de marquer des pages de code en mémoire comme exécutable, ce qui est une faille de sécurité potentielle.
    Ce genre de choses va s'améliorer dans les mois qui viennent (tout comme le support de WebGL pour iOS arrive), mais ce n'est pas encore le cas là tout de suite.

  9. #9
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut
    Je fais vraiment des petits jeux et une navigation simple via jquery mobile si il n'y a pas toutes accélérations, ce n'est pas trop grave

  10. #10
    Candidat au Club
    Homme Profil pro
    Communications & Community
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Communications & Community
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Si tu souhaites apporter une couche multijoueurs à tes jeux et les intégrer au portail de jeux Gamorlive, il y a ce topic :http://www.developpez.net/forums/d12...5/#post6622598

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/10/2012, 13h37
  2. Premiers pas - développement de jeux video sur portable
    Par francois en galere dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 09/02/2006, 20h12
  3. Lire jeux PS2 sur PC
    Par ren29 dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 24/10/2005, 20h44
  4. Jeux java sur telephone portable
    Par lereveur84 dans le forum Développement Mobile en Java
    Réponses: 7
    Dernier message: 19/07/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo