Partage
  • Partager sur Facebook
  • Partager sur Twitter

Choisir entre PyGame, PySFML, ou autre

Sujet résolu
Anonyme
    12 novembre 2010 à 21:50:30

    Bonsoir bonsoir,

    Avec quelques amis, nous avons un projet de jeu en 2D qui nécessite bien entendu la gestion des événements à la souris et au clavier.

    J'ai commencé par utiliser la bibliothèque SFML (PySFML avec Python donc) mais c'est comme qui dirait pénible de l'utiliser, et puis j'ai l'impression que je ne pourrais faire ce que je veux avec.

    J'aimerais par exemple créer un thread qui surveille les I/O (clavier souris en gros) et qui vient chatouiller telle ou telle fonction en fonction de ce qui a été activé (clique gauche sur telle vue à tel endroit, appui d'une touche ect ect ect)
    Alors soit je suis une branque, et le seul moyen que j'ai trouvé pour y arriver c'est de lancer un thread avec python contenant une boucle infinie (ou du moins apparenté) qui vient lire la pile des événements, ou alors c'est pas loin d'être le seul moyen qui permet de le faire.

    Dans ce cas je souhaiterais que vous me donniez votre avis sur le module PyGame, ou même d'autres modules, voir carrément d'autres bibliothèques utilisables avec un langage comme le C ou C++, ou même tout ça à la fois.

    Le post sur le fofo C++: C++
    • Partager sur Facebook
    • Partager sur Twitter
      13 novembre 2010 à 10:13:03

      salut,
      je suis pygame addict je n'ai donc pas un avis objectif ^^
      un programme bien construit, devrait, en général, pouvoir se passer de thread.
      si je comprends bien, tu veux que la partie gestion des events soit indépendante du reste ?
      tu veux faire une lib maison généraliste pour la gestion des events ?
      en fait, il y a plein de façons de coder un jeu ...
      quel genre de jeu veux-tu faire ?
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        13 novembre 2010 à 11:48:09

        Citation : akregator


        J'aimerais par exemple créer un thread qui surveille les I/O (clavier souris en gros) et qui vient chatouiller telle ou telle fonction en fonction de ce qui a été activé (clique gauche sur telle vue à tel endroit, appui d'une touche ect ect ect)
        Alors soit je suis une branque, et le seul moyen que j'ai trouvé pour y arriver c'est de lancer un thread avec python contenant une boucle infinie (ou du moins apparenté) qui vient lire la pile des événements, ou alors c'est pas loin d'être le seul moyen qui permet de le faire.



        Quelle que soit la bibliothèque graphique que tu vas utiliser, c'est exactement comme ça qu'elle fonctionnera intrinsèquement, sauf que tu n'auras pas besoin de coder toi-même la gestion des threads puisque ce code est déjà contenu dans la bibliothèque graphique.

        Typiquement, pour un jeu, l'approche par défaut est de faire ce genre de boucle infinie, que l'on appelle, pour le coup, une boucle événementielle. Que tu travailles avec Pygame ou PySFML, cela reviendra au même sur cet aspect.

        Ce qui va motiver ton choix, c'est plutôt cette question : cherches-tu la simplicité d'utilisation ou as-tu besoin de performances de boulzor ?
        Si ton jeu inclut un scrolling, par exemple (ce qui implique de redessiner tout l'écran à chaque frame, comme, mettons, un Mario-like avec un fond complexe), il vaut mieux te pencher vers PySFML, qui dépend d'OpenGL et t'offrira les perfs nécessaires. Si ton jeu n'a pas besoin de grosses performances (au pire, de nombreux petits sprites qui bougent indépendamment les uns des autres, mais un fond qui reste fixe la plupart du temps, comme un bomberman, par exemple), Pygame est tout à fait adaptée, et a le mérite d'être plus simple d'accès et plus "pythonique" (elle respecte notamment la PEP-8, contrairement à PySFML qui est un binding "sauvage").
        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
        Anonyme
          13 novembre 2010 à 12:32:30

          Merci bien NoHaR. SFML est une bibliothèque qui me convient parfaitement, mais le binding python n'étant pas vraiment au point, je vais l'utiliser en C++.
          • Partager sur Facebook
          • Partager sur Twitter
            18 novembre 2010 à 21:17:53

            Autrement, pour Python, il y a pyglet.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              24 novembre 2010 à 18:59:25

              Et vous n'en connaîtriez pas qui soient compatibles Python 3 et disponibles pour Mac ?
              Même PyGame ne l'est pas...
              • Partager sur Facebook
              • Partager sur Twitter
                24 novembre 2010 à 19:01:36

                Pygame est compatible Mac.

                Mais en effet, très peu de bibliothèques graphiques sont encore seulement sous Py2.x. Il va sûrement falloir t'en contenter.
                • Partager sur Facebook
                • Partager sur Twitter
                yjltg.
                  24 novembre 2010 à 19:07:56

                  Pygame est compatible Mac mais seulement avec Python 2.x actuellement. Il y a un mois que la version 3.x devait sortir dans une ou deux semaines d'ailleurs...
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    24 novembre 2010 à 19:14:38

                    Par contre je vois que PySFML semble correspondre, non ? Il y a un Full SDK compatible Mac et Python 3 est mentionné (http://www.sfml-dev.org/download.php).
                    Mais est-ce que cette librairie est toujours en mouvement ? Quand je l'utilisais en C, je me rappelle qu'on m'avait déconseillé son utilisation du fait de ses trop rares mises à jour. La dernière news date de mai...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      24 novembre 2010 à 19:23:10

                      Je ne vois pas où est le problème que la dernière MAJ soit de _fin_ main 2010 alors qu'on peut voir sur le forum que beaucoup de bugs sont en fait des erreurs d'utilisation. Si on regarde sur le dépôt SVN dans branches, c'est encore actif.

                      Et quand bien même ça ne serait pas actif, la bibliothèque fonctionne bien et le forum est actif, son développeur aussi.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        24 novembre 2010 à 19:58:03

                        Citation

                        Quand je l'utilisais en C, je me rappelle qu'on m'avait déconseillé son utilisation du fait de ses trop rares mises à jour



                        Les mises à jour sont souvent dû à des reports de bugs, si elles ne sont pas très fréquentes c'est qu'il n'y en a pas besoin.

                        Je serais toi je m'inquièterais pas de ces grosses bibliothèques, qui ont suffisamment de personnes en collaboration pour maîtriser leur sujet.

                        Je te conseille de passer à la version 2.x de python qui te permettra de profiter pleinement de la SDL et de SFML.

                        Tu pourras donc comparer par toi même, car à ce niveau c'est une histoire de goût. Pour moi c'est la SDL, mais ça ne s'explique pas, c'est du feeling.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 novembre 2010 à 21:28:53

                          SFML 1.x est effectivement assez calme depuis quelque temps car la branche 2 est en préparation avec, de ce que j’ai vu, des avancées importantes (j’ai notamment été conquis par l’installation d’un module FindSFML pour CMake :D ).
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            25 novembre 2010 à 22:57:07

                            Bon, j'ai vraiment cherché partout, j'ai trouvé aucune librairie compatible Python 3 / Mac spécialisée dans le développement de jeu.
                            Si quelqu'un en connaît une, je suis preneur... :(
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Choisir entre PyGame, PySFML, ou autre

                            × 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