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

Android Discussion :

Jeu en 2D, quels moteurs/techno pour les graphismes ?


Sujet :

Android

  1. #1
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut Jeu en 2D, quels moteurs/techno pour les graphismes ?
    Bonjour,

    Développeur expérimenté dans différentes technos (dont Java), je suis un total débutant sous Android. J'aimerais pour me faire la main commencer avec un petit jeu avec des graphismes en 2D. D'après ce que j'ai compris, il existe beaucoup de solutions techniques différentes:

    - utiliser la lib 3D (openGL) et ne s'en servir que pour faire de la 2D

    - utiliser un Panel et surcharger la méthode 'onDraw' pour se retrouver avec une solution de graphisme stateless (ie. on doit tout redessiner à chaque fois) un peu équivalente à ce que je connais pour le Java 'standard' J2SE avec Graphics2D et consors.

    - taper dans quelque chose d'un peu plus 'high level' pour retrouver du 'statefull' en détournant plus ou moins la notion de Drawable qui (si j'ai bien tout compris) est pensée au départ pour la GUI d'application classiques, genre l'équivalent d'AWT et de sa classe Component.


    Néanmoins chacune de ces solutions ne me convient pas trop en l'état:

    - la première demande des compétences en 3D que j'ai certes un peu, mais qui va à coup sûr me faire perdre beaucoup de temps.

    - la seconde m'ennuie un peu car elle se base sur le concept d'un canvas stateless où il y aura donc beaucoup de choses à se taper à la main.

    - la troisième ne semble pas du tout pensée pour faire du graphisme 2D 'intensif' au départ, plutôt pour des interface relativement figées (un formulaire, des boutons, ...), pas pour des graphismes de jeu qui changent 60 fois par seconde.

    A noter qu'il y a peut-être d'autres techno/possibilités de base dans le SDK d'Android, mais je ne les connais pas (et elles m'intéressent ).

    Moi ce que j'aimerais trouver dans l'idéal c'est une solution pensée dès le départ pour le jeu en 2D et qui propose donc les fonctionnalités récurrentes pour ce type d'applications:

    - une solution où on travaille sur des objets de 'haut niveau' (un sprite en bitmap, un rectangle, une ligne, une ligne de texte, ...) ; à chaque pour la solution sous jacente de s'occuper du redraw, d'optimiser l'affichage en ne redessinant que les parties qui ont changé, etc...

    - la notion de scénographe où lesdits objets sont organisables en hiérarchie (type arbre) et où on peut grouper des éléments pour leur appliquer des transformations communes (un Groupe d'objets fils d'un noeud commun qu'on va translater ou faire tourner par exemple).

    - la notion de gestion du framerate et du temps pour ajouter facilement des animations (genre tel sprite bouge de (0,0) à (100, 100) en 2 secondes ; telle autre objet voit son alpha passer de 255 à 0 en 3 secondes, ...).

    - si possibie des facilités pour charger des ressources (bitmaps, sons, ...) et les utiliser dans le jeu.

    Pour ceux qui connaissent (et pour ceux qui ne connaissent pas), l'idéal de chez idéal serait pour moi un équivalent de la librairie PulpCore qui existe pour la création d'applets Java.



    D'où ma question: connaîtriez-vous une lib qui correspond grosso modo à ce que je recherche, donc plus ou moins spécialisée dans les graphismes pour le jeu en 2D pour android ?


    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonsoir,

    Le meilleur moteur 2D Android que j'ai testé jusqu'à présent à été celui-ci : Andengine.

    Sinon il y a encore une alternative parmi les techniques que tu décris pour le faire à la main : utiliser le SurfaceView et son canvas. Ça revient un peu à la technique Graphics2D de Swing, et c'est plus propre que de surcharger le onDraw d'une View. C'est d'ailleurs la technique utilisée pour créer les live wallpapers sous Android.

    Bonne continuation.

  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Merci pour les infos, Viish.

    Effectivement, plus j'écume le web, plus les deux noms de AndEngine et de LibGDX reviennent comme les deux moteurs les plus nommés.

    - d'après les retours d'expérience, libGDX semble se positionner comme étant plus 'bas niveau', plutôt de l'ordre d'un wrapper autour d'OpenGL.

    - andEngine semble se rapprocher plus d'une solution intégrée un peu plus 'high level' gérant non seulement les graphismes en stateful, mais également d'autres aspects (ressources, audio, controlleurs, sensors, ui, ...) ; c'est au prix de moins de généricité et de performances un peu moins bonnes que libGDX. Mais ça a surtout son importance quand on veut faire des jeux qui demandent beaucoup de perfs.

    Bref, je vais effectivement tenter l'aventure avec AndEngine pour me faire la main.

    Merci également pour l'info sur SurfaceView ; même si je ne m'en servirai pas dans l'immédiat, c'est toujours bon à savoir

  4. #4
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    Merci pour toutes les information

    Pourri vous nous dire ce que tu as opté a la fin?
    Quelle sont les tuto suivi ?
    Quelle sont les avantages et les inconvénients?

    Cordialement .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 17
    Points
    17

  6. #6
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    Merci beaucoup

Discussions similaires

  1. Quel type SQL pour les chiffres
    Par marquito dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/06/2007, 15h23
  2. Quel SGBD choisir pour les outils mobiles : Palm, BlackBerry ?
    Par ginkas31 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/06/2007, 10h57
  3. Quel SGBD choisir pour les données vectorielles ?
    Par fab dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 25/04/2007, 18h21
  4. [RegEx] Quels caractères interdire pour les logins utilisateurs ?
    Par Death83 dans le forum Langage
    Réponses: 24
    Dernier message: 15/05/2006, 21h45

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