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 2D, 3D et Jeux Discussion :

Quelles libs choisiriez vous?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut Quelles libs choisiriez vous?
    Bonjour à tous,

    j'avais fait un pti jeu de stratégie en 2d avec la SDL, et, pour diverses raisons, j'ai décidé de le passer en 3d. Mais avant de me lancer dans le dev, je suis en train de voir quelles libs je vais utiliser, et c'est plus compliqué que je ne le pensais.

    Voilà ce que je veux faire:

    un jeu de stratégie en tour par tour (jusqu'ici, tout va bien)

    une fenêtre principale séparée en deux:
    --> une "sous-fenêtre" pour la scène 3d
    --> une "sous-fenêtre" pour un menu, avec des boutons et des panneaux pour mettre des images 2d simples (fixes).

    Alors là déjà c'est plus compliqué, car je ne peux pas faire ça avec seulement la lib 3d (pour l'instant j'ai regardé IrrLicht et Ogre). Si je ne m'abuse, il me faut un gestionnaire de fenêtre au-dessus.

    En plus, si je décide d'utiliser une lib d'IHM, comme wxWidget par exemple, c'est super compliqué d'interfacer ça avec les libs de rendu 3d. Qt pourrait-il être une solution?

    Je dois pouvoir afficher un menu principal par dessus la fenêtre principale. Ca n'a l'air de rien, mais c'est pas si évident que ça. Notamment avec IrrLicht je ne sais même pas si c'est possible.

    Le tout doit tourner sous linux et Windows (Mac, tout ce qui est "exotique" (embeded, Win CE, ...) on verra - éventuellement - après) et n'utiliser que des libs open source (s'il abouti, il sera open source lui-même bien sûr).


    Voili voilou, j'aimerais donc savoir: si vous étiez à ma place, quels choix feriez-vous et, grosso modo, comment vous y prendriez-vous?

    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour

    Il existe peu de libs d'IHM en mode jeu.
    CEGUI est celle à la mode, sinon tu devras t'en recoder une
    J'en ai aussi une en stock mais elle n'est pas terminée (et elle n'est pas bien partie pour être terminée). Elle est quand même capable d'afficher des boutons

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    En fonction de la complexité de la GUI que tu cherches, ça peut valoir le coup d'en recoder une (par exemple si tu te contentes de boutons simples, d'images etc.) Comme khayyam j'en ai aussi une en cours de développement, pour les besoins de mon jeu, je peux te fournir les sources et faire le SAV

    Je dois pouvoir afficher un menu principal par dessus la fenêtre principale.
    En OpenGL, c'est tout simple : il te suffit d'afficher ta fenêtre principale, puis modifier la matrice de projection pour la mettre en orthogonale avant d'afficher ton menu. A voir si irrlicht te permet d'accéder comme ça à la matrice de projection.

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Yopopop, j'ai du nouveau

    En fait IrrLicht permet tout ça ^^
    Il ne lui manque que l'audio, mais bon, ce n'est pas le problème principal et il existe tout un tas de libs pour ça, (dont IrrKlang).
    Nan vraiment, IrrLicht à l'air nickel pour ce genre de trucs

    (bon par contre je n'ai pas encore réellement testé, juste discuté sur les forums et compilé les exemples)
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    Sinon, tu as un site où tu présentes ton jeu? Ca m'intéresse un jeu de strat' tour par tour, je suis aussi dans ce registre

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ben le truc c'est que je ne l'ai pas terminé
    Je suis bloqué depuis des mois sur un problème: je sais pas pourquoi, mais ça saccade dès que je scrolle
    Du coup je me suis mangé le cerveau des mois là-dessus, sans trouver de solution, et là j'en ai eu marre alors je switche sur la 3d.

    Au cas où, si tu ne l'as pas déjà fait, je te conseille de regarder wesnoth. Les sources sont impec.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  7. #7
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par r0d Voir le message
    (bon par contre je n'ai pas encore réellement testé, juste discuté sur les forums et compilé les exemples)
    Tu devrais éventuellement jeté un oeil à Ogre; ça permet tout ça aussi. La différence pour ce que tu veux faire, tu la trouveras dans ta préférence au niveau des APIs et archis de l'un ou l'autre (je suis fan d'ogre perso, c'est pour ça que je te suggère une comparaison )

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par r0d Voir le message
    Je suis bloqué depuis des mois sur un problème: je sais pas pourquoi, mais ça saccade dès que je scrolle
    Du coup je me suis mangé le cerveau des mois là-dessus, sans trouver de solution, et là j'en ai eu marre alors je switche sur la 3d.
    Mais oui mais peut-être qu'on peut te donner un coup de main
    On aimerait voir un peu ce que c'est comme projet
    Quelle lib as-tu pris ? SDL ?

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Mais oui mais peut-être qu'on peut te donner un coup de main
    Il en avait déjà parlé là : http://www.developpez.net/forums/d68...image-blitter/

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    Citation Envoyé par r0d Voir le message
    Au cas où, si tu ne l'as pas déjà fait, je te conseille de regarder wesnoth. Les sources sont impec.
    Je ne connaissais pas, je viens de l'installer pour tester ça, merci pour l'info

  11. #11
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Mais oui mais peut-être qu'on peut te donner un coup de main
    On aimerait voir un peu ce que c'est comme projet
    Quelle lib as-tu pris ? SDL ?
    Vi, la SDL.
    Si vous voulez, je peux vous filer le code, si vous avez le courage de jeter un coup d'oeil. Le seul petit problème, c'est que j'ai pommé la dernière version... enfin, elle était sur un portable sous linux qui est mort (c'est aussi une des raisons puor laquelle j'ai décidé de passer à autre chose ). Du coup j'ai récupéré une vieille version, mais comme je n'ai plus de linux sous la main, ben je suis en train d'essayer de la compiler sous Windows... mais c'est plus compliqué que prévu, j'ai des problème de link et tout, c'est bien relou.
    Cette version implémentait la base du jeu: affichage du plateau et selection d'unité. Mais pas encore de déplacement ni de combats ./

    Mais si ça vous dit, je vous envoie les sources quand j'aurai réussi à compiler
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  12. #12
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    En OpenGL, c'est tout simple : il te suffit d'afficher ta fenêtre principale, puis modifier la matrice de projection pour la mettre en orthogonale avant d'afficher ton menu.
    Je n'ai pas trop compris comment ce principe peut permettre d'afficher un menu par dessus le contenu de la fenêtre principale

    Naoss.
    C'est dans ses rêves que l'homme trouve la liberté cela fut, est et restera la vérité! (John Keating - Le cercle des poètes disparus)

  13. #13
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ben si: il suffit de créer un rectangle (avec opengl ce sera 2 triangles) sur lequel tu colle l'image de ton menu. Ensuite tu positionnes ce rectangle de façon à ce qu'il soit perpendiculaire à l'angle de vue (orientation de la caméra). Après il faut voir pour que la distance soit bonne.
    Moi ce qui me fait peur en revanche avec cette méthode, c'est pour la gestion des événements.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  14. #14
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Ok c'est plus clair, désolé je suis pas une bête en math
    C'est dans ses rêves que l'homme trouve la liberté cela fut, est et restera la vérité! (John Keating - Le cercle des poètes disparus)

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    Un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // ------------------------------------------------------------------
    // Name : begin2D
    // ------------------------------------------------------------------
    void DisplayEngine::begin2D()
    {
      glMatrixMode(GL_PROJECTION);
      glPushMatrix();
      glLoadIdentity();
      glOrtho(0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, 0.1f, 100.0f);
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
    }
     
    // ------------------------------------------------------------------
    // Name : end2D
    // ------------------------------------------------------------------
    void DisplayEngine::end2D()
    {
      glMatrixMode(GL_PROJECTION);
      glPopMatrix();
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
    }
    => Donc après avoir affiché le scène 3D, on appelle begin2D(), on affiche les menus et on appelle end2D().
    Après pour la gestion des évènements, dans cet exemple on affiche les menus en coordonnées écran, indépendamment de la 3D, donc si tes inputs utilisent les coordonnées écran (je crois que c'est toujours le cas, en tout cas c'est la cas avec GLUT) il n'y a aucun problème de conversion.

  16. #16
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    R0d je peux toujours essayer de porter cela sous Direct X à condition que cela ne soit pas trop compliqué.
    SDL ça rame un peu la différence avec Direct X est flagrante.

    Je suis aussi en train de finaliser un jeu de stratégie/RTS j'ai pas de problème de scrolling..
    Je devrais en faire une présentation d'ici peu mais c'est un boulot énorme

  17. #17
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ben le truc c'est que je tiens absolument à ce que mon jeu soit portable. Donc DirectX c'est mort.

    En revanche, je suis en train de le passer sous la SFML (je verrai plus tard pour la 3d...). J'ai encore quelques soucis, mais ça semble résoudre mon problème de scrolling.

    Tu nous feras signe quand tu auras fini ton RTS? (c'est clair que c'est un boulot énorme...)
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  18. #18
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Ok R0d je mettrai cela dans la rubrique "Projets"

  19. #19
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par r0d Voir le message
    un jeu de stratégie en tour par tour (jusqu'ici, tout va bien)
    Tu as quoi comme prérogatives pour ce projet ?
    Citation Envoyé par khayyam90 Voir le message
    Bien le bonjour

    Il existe peu de libs d'IHM en mode jeu.
    CEGUI est celle à la mode, sinon tu devras t'en recoder une
    J'en ai aussi une en stock mais elle n'est pas terminée (et elle n'est pas bien partie pour être terminée). Elle est quand même capable d'afficher des boutons
    D'ailleurs, vous en êtes où ? Tu bosses toujours avec JC ?
    Citation Envoyé par r0d Voir le message
    Ben le truc c'est que je ne l'ai pas terminé
    Je suis bloqué depuis des mois sur un problème: je sais pas pourquoi, mais ça saccade dès que je scrolle
    Du coup je me suis mangé le cerveau des mois là-dessus, sans trouver de solution, et là j'en ai eu marre alors je switche sur la 3d.

    Au cas où, si tu ne l'as pas déjà fait, je te conseille de regarder wesnoth. Les sources sont impec.
    Tu as tes sources sur un repository quelque part ?
    Citation Envoyé par Mat.M Voir le message
    Je suis aussi en train de finaliser un jeu de stratégie/RTS j'ai pas de problème de scrolling..
    Je devrais en faire une présentation d'ici peu mais c'est un boulot énorme
    Et toi ? Tu en es où ?

  20. #20
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Et toi ? Tu en es où ?
    Tiens tiens on me sollicite ?
    Je compte mettre une démo et en parler sur la section ( projets ) d'ici 15 jours

    Je suis en train de finir la partie graphisme et blocs de décors de fond.

Discussions similaires

  1. Réponses: 36
    Dernier message: 01/03/2011, 18h23
  2. Réponses: 6
    Dernier message: 26/07/2009, 18h04
  3. [BDD statique sur CD] Quelle solution préconiseriez-vous ?
    Par Willl dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/03/2006, 19h02
  4. [Stage] Lequel choisiriez-vous?
    Par Nasky dans le forum Stages
    Réponses: 4
    Dernier message: 01/03/2006, 12h57
  5. Quelle lib pour vos GUI?
    Par mandale dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 03/08/2004, 17h58

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