Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelles bibliothèques utiliser ?

Pour un jeu (gros projet)

Sujet résolu
    31 mai 2008 à 16:07:38

    Salut !

    J'aimerais faire un jeu de course en C++. Seul petit problème, je ne sais vraiment pas quelle bibliothèque choisir...
    J'avais fait une première version en C avec la SDL (et FMOD pour le son), mais j'aimerais vraiment que la version 2 soit beaucoup plus complète.

    Au départ, j'avais pensé à SFML qui regroupe tout ce dont j'ai besoin. Mais j'ai rencontré des problèmes avec cette bibliothèque : problème pour l'installer sous Linux, sensée être multiplateforme mais n'est plus mise à jour pour Mac, et surtout, étant une librairie jeune, elle est souvent mise à jour : les noms des fonctions et leur utilisation change et cela pose problème pour mon projet qui est plutôt important et qui a donc besoin d'une librairie stable.

    J'avais donc pensé à la SDL mais le petit bémol, c'est que tout n'y est pas intégré : il me faudra donc SDL, SDL_gfx (que je n'ai jamais réussi à installer sous Linux :( ), et une librairie pour tout ce qui est réseau. En plus, on ne peut pas faire plusieurs fenêtres avec la SDL apparemment... Dernier inconvénient : elle n'est pas très rapide...

    Je pense maintenant que je vais faire une classe qui me simplifie l'utilisation de la SDL (pour que ce soit plus de la POO, et pour avoir moins de choses à gérer dans le code principal), mais je ne sais pas trop si c'est une bonne idée...

    Je suis donc un peu perdu à vrai dire...
    Si quelqu'un pouvait me conseiller, ce serait vraiment sympa ^^
    • Partager sur Facebook
    • Partager sur Twitter
      31 mai 2008 à 16:13:22

      Tu peux toi même la mettre à jours sur mac, tu télécharges les source et tu compiles.
      Sinon je ne vois pas quel librairie tu peux utiliser autrement à part Qt mais ce n'est pas trop fais pour les jeu vidéo :p .
      • Partager sur Facebook
      • Partager sur Twitter
        31 mai 2008 à 16:16:26

        Oui au pire, je pourrais faire ça, mais je pense que je vais laisser tomber la sfml (pour les raisons évoquées au dessus ^^)
        • Partager sur Facebook
        • Partager sur Twitter
          31 mai 2008 à 16:36:25

          Je vais pas t'obliger à l'utiliser chuis pas t'as mère :p .
          • Partager sur Facebook
          • Partager sur Twitter
            31 mai 2008 à 16:42:51

            au pire tu peut utiliser Qt ET la SFML ...
            • Partager sur Facebook
            • Partager sur Twitter
              31 mai 2008 à 16:46:46

              Ben le problème avec la SFML, c'est surtout le fait qu'elle est jeune et que les modifications qui lui sont apportées changent vraiment trop l'utilisation...
              J'avais fait un programme sous Windows, j'ai voulu le compiler sous Linux avec la dernière version de SFML mais comme ce n'est pas rétrocompatible (ça se dit ça ? ^^), je me suis retrouvé avec une multitude d'erreurs, et donc j'ai peur que ça refasse la même chose quand j'aurai 15 fichiers cpp de 5000 lignes ^^

              Edit : OpenGL pourrait être une solution couplé avec la SDL pour la rendre plus rapide...
              (OpenGL ne gére pas les événements je crois ?)
              • Partager sur Facebook
              • Partager sur Twitter
                31 mai 2008 à 16:54:00

                Salut, tu pourrais utiliser Qt et son module QtOpenGL, et le module phonon de Qt pour les sons.
                Au revoir
                • Partager sur Facebook
                • Partager sur Twitter
                  31 mai 2008 à 16:54:52

                  Bas si tu veux faire un jeu c'est pas avec 1 fichier cpp de 1 ligne.
                  Oui mais Qt n'est pas fais pour les jeu vidéo les DLL sont grosses alors en ajoutant le sont ça devient un truc énorme tendit que la SFML est moins grosse avec les même fonctionnalité sauf la bare de menu mais c'est pas très très utile en jeu vidéo.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    31 mai 2008 à 16:55:46

                    Au début c'était tout à fait logique que les fonctions ait changé de nom. Maintenant ça ne risque plus trop d'arriver. (Enfin, après la 1.3). Du moins à mon avis.

                    Pour ce qui de OSX avec la SFML, le portage à été repris.

                    Après, il faut voir, il existe p-ê une autre bibliothèque qui conviendrait bien à ton projet. Une autre que Qt, SDL ou SFML...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 mai 2008 à 17:04:34

                      Au départ, je voulais vraiment prendre SFML : elle correspondait exactement à ce dont j'avais besoin. Mais d'après ce que Laurent dit, pour le moment, il ne se soucie pas de la rétrocompatibilité...
                      Et donc pour mon projet qui risque de se terminer dans assez longtemps vu tout ce que je veux faire, il faudrait pas avoir à reprendre tout mon code ^^

                      (Là j'avais déjà commencé mon menu, plus qu'à recommencer : il y a plein d'erreurs...)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 mai 2008 à 17:38:32

                        il y a toujours Allegro. Sinon, fait comme moi, encapsule bien ton moteur 3D et l'utilisation de ta lib 2D. Comme ça, tu peux facilement changé quoique ce soit et la rétrocompatibilité n'est plus un problême. Sinon, moi j'utilise Stratumik, une lib qui utilise SFML, mais elle est encore très jeunes.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 mai 2008 à 18:15:28

                          Pour Stratumik, je n'ai rien trouvé sur Google...
                          Pour allegro, ce serait quoi les avantages face à la sfml et la sdl ?

                          (PS : petite précision : mon jeu est un jeu en 2D, j'avais oublié de le dire et ça change pas mal de choses ^^ )
                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 mai 2008 à 18:25:14

                            C# + SDL.NET + IrrKlang

                            Sinon ouais ce que tu peux faire c'est OpenGL avec amorce SDL ( comme ça t'es pépère pour les events ).
                            • Partager sur Facebook
                            • Partager sur Twitter
                              31 mai 2008 à 18:38:04

                              Citation : noob4ever

                              C# + SDL.NET + IrrKlang


                              C'est une blague ?

                              Comme je l'ai dit plus haut, je veux que mon jeu soit multiplateforme...

                              Finalement, je vais certainement continuer avec SFML, parce que même s'il y a des problèmes, il y a bien plus d'avantages...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 mai 2008 à 18:38:46

                                Citation : Pas de titre

                                Comme je l'ai dit plus haut, je veux que mon jeu soit multiplateforme...



                                Mono, dotGNU, tu connais ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  31 mai 2008 à 18:53:52

                                  En même temps il va pas ce mettre au C# si il a déjà un très bon niveau en C++ juste pour un seul projet...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    31 mai 2008 à 18:57:22

                                    Citation : noob4ever

                                    Citation : Pas de titre

                                    Comme je l'ai dit plus haut, je veux que mon jeu soit multiplateforme...



                                    Mono, dotGNU, tu connais ?



                                    N'empêche, ça c'est pour Linux. On peut oublier Mac OS X. En plus, C#, c'est lent et c'est lourd (comme tout ce qui vient du .NET Framework, d'ailleurs, 5 Mo de RAM pour un Hello World...).
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      31 mai 2008 à 19:01:06

                                      Citation : Ice_Keese

                                      Citation : noob4ever

                                      Citation : Pas de titre

                                      Comme je l'ai dit plus haut, je veux que mon jeu soit multiplateforme...



                                      Mono, dotGNU, tu connais ?



                                      N'empêche, ça c'est pour Linux. On peut oublier Mac OS X. En plus, C#, c'est lent et c'est lourd (comme tout ce qui vient du .NET Framework, d'ailleurs, 5 Mo de RAM pour un Hello World...).



                                      Et alors ? Si tu viens à manquer cruellement de mémoire vive pour l'OS par exemple, le garbage collector s'occupera de libérer toutes les ressources non utilisés, donc au final tu t'en fou qu'un Hello world prenne 5mo de ram.

                                      Sinon pour mac je sais pas, moi ce qui m'intéresse c'est linux et windows donc je me suis jamais demandé si .NET a été porté sur mac.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        31 mai 2008 à 19:06:23

                                        C'était un exemple pour démontrer que .NET n'est pas fait pour la performance. Tout comme Java, d'ailleurs (duquel les concepteurs de .NET se sont grandement inspirés). Si c'est pour un petit jeu, d'accord, mais le gars soutient que c'est un "gros projet".
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          31 mai 2008 à 19:19:00

                                          Citation : Goten

                                          En même temps il va pas ce mettre au C# si il a déjà un très bon niveau en C++ juste pour un seul projet...


                                          Je dirais pas que j'ai un super niveau en C++ mais l'idée est là :p

                                          Sinon, effectivement, c'est un gros projet ^^
                                          Vous pouvez voir la v1 ici (Les scores en ligne ne fonctionnent plus, apparemment c'est dû à l'hébergeur de ma BDD)
                                          Cette version est la première, faite en C avec SDL et qui ne comporte à peine 1/10ème de ce que comportera la v2. ^^

                                          Edit : si vous voulez faire un commentaire sur la v1, RDV ici pour ne pas polluer ce topic, Merci ;)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            31 mai 2008 à 22:32:42

                                            J'ai entendu dire que SxDL n'était plus maintenue et plus utilisée...
                                            Finalement, je crois que je vais bien garder SFML, en espérant ne plus rencontrer de bug majeur ^^

                                            Problème résolu ;)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              1 juin 2008 à 11:39:20

                                              Sinon tu codes toi meme ton petit module 2D à partir de opengl, tu te fais un systeme de coordonnées, des loaders d'image, une gestion des sprites etc .. T'en as peut être pour un petit moment, mais apres tu as quelque chose de léger qui convient juste à ton besoin. Rien ne t'empeche de t'inspirer dans les sources de la SDL ou SFML pour faire ça. Puis ça te seras que bénéfique au niveau de l'apprentissage.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                1 juin 2008 à 20:42:12

                                                Citation : askerat

                                                Sinon tu codes toi meme ton petit module 2D à partir de opengl, tu te fais un systeme de coordonnées, des loaders d'image, une gestion des sprites etc .. T'en as peut être pour un petit moment, mais apres tu as quelque chose de léger qui convient juste à ton besoin. Rien ne t'empeche de t'inspirer dans les sources de la SDL ou SFML pour faire ça. Puis ça te seras que bénéfique au niveau de l'apprentissage.



                                                Peut-être pour la V3 de mon jeu si elle existe un jour, mais là je suis loin d'avoir les connaissances nécessaires ^^ . Et puis j'aimerais bien commencer le projet en lui même assez rapidement.
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Quelles bibliothèques utiliser ?

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown