Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet : Platformer à Génération procédurale

    26 janvier 2015 à 10:56:42

    Bonjour à tous !

    J'ai décidé avec un ami de me lancer dans un jeu de type platformer où les niveaux seraient générés de manière procédurale, soit semi-aléatoirement, le jeu possèderait un scrolling suivant le personnage. Je possède de bonnes bases en python, mais j'ai quelques doutes sur les ressources que je vais utiliser, voilà sur quoi j'aimerais avoir votre avis. J'ai fais quelques jeux en utilisant Pygame mais son utilisation me parait limité. Sinon, j'utilise assez souvent Unity mais la génération procédurale me parait assez compliquée à mettre en place dessus. Ma question est donc : que me conseillez-vous pour gérer cet aspect graphique avec comme contrainte la génération aléatoire de niveau en 2D (de taille moyenne) ?

    J'espère m'être exprimé clairement, merci d'avance. :)

    Bonne journée.

    • Partager sur Facebook
    • Partager sur Twitter
    "The best thing about now, is that there's another one tomorrow."
      26 janvier 2015 à 11:17:11

      C'est comme si tu devais générer un string et savoir s'il faut utiliser print ou sys.stdout pour l'afficher.

      Il n'y a aucun rapport; ou bien j'ai pas compris la question. 

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        26 janvier 2015 à 11:25:26

        Désolé, je pensais ma question finale assez claire. Que me conseillez-vous d'utiliser pour gérer la partie graphique de mon jeu ? Et comme je compte créer des niveaux de manière procédurale, je me disais qu'il y aurait peut-être des facilités à utiliser telle ou telle ressource.
        • Partager sur Facebook
        • Partager sur Twitter
        "The best thing about now, is that there's another one tomorrow."
          26 janvier 2015 à 11:55:40

          ça se rapprocherait de quel jeu (images ?)
          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            26 janvier 2015 à 12:05:03

            Souvent, dans les jeux où les maps sont générer aléatoirement, ce sont juste des block ou des parties d'un niveau qui sont assemblés aléatoirement et tu peut faire ça avec ce que tu veut, pas besoin d'unity, je pense que pygame te suffit largement !

            Tu peut faire un truc du style:

            import random
            # Ton niveau est une liste de toutes les blocks
            # Insérer aléatoirement
            # Autrement dit, tout ton niveau ser contenu dans la liste niveau
            niveau = []
            
            # Les variables qui contiendront les différentes parties
            # de ton niveau
            block_1 = "Schema d'une partie du niveau"
            block_2 = "Une autre partie"
            block_3 = "Encore une autre"
            tous_les_blocks = [block_1, block_2, block_3]
            # Etc ...
            
            # Insertion aléatoirement des blocks dans la liste
            # niveau
            for i in range(len(tous_les_blocks)):
               block = random.choice(tous_les_blocks) 
               niveau.append(block)
               tous_les_blocks.remove(block)
            print(niveau)
            
            # Ton code pour générer les parties du niveau 
            # a partir de la liste niveau





            -
            Edité par CactusHaven 26 janvier 2015 à 12:08:37

            • Partager sur Facebook
            • Partager sur Twitter
            CactusHaven
              26 janvier 2015 à 12:13:16

              @josmiley : Cela se rapprocherait un peu de Super Meat Boy Forever (recherche google : https://www.google.fr/search?q=super+meat+boy+forever&source=lnms&tbm=isch&sa=X&ei=iSDGVKCBDMnKPYztgegM&ved=0CAoQ_AUoAw&biw=1920&bih=967)

              @CactusHaven : Merci pour ton exemple. Penses-tu que pygame est assez complet ? Ou existe-t-il un module python du même genre un peu plus fourni ?

              • Partager sur Facebook
              • Partager sur Twitter
              "The best thing about now, is that there's another one tomorrow."
                26 janvier 2015 à 12:33:34

                Eh bien, j'ai moi même fait de nombreux jeu de plateforme et de scrolling avec pygame et tous fonctionne correctement si tu te débrouille un peu et que tu lis bien la doc tu peut tout faire !

                Et pour une autre bibliothèque python pour des jeux qui est PyGlet mais personnelement je préfère largement Pygame !

                (Et si ça t'intéresse, je suis actuellement en train de rédiger un cours sur Pygame ! http://openclassrooms.com/forum/sujet/maj-du-cour-sur-pygame )

                • Partager sur Facebook
                • Partager sur Twitter
                CactusHaven
                  26 janvier 2015 à 13:04:46

                  Merci beaucoup, je vais me renseigner ! :) Serait-il possible de voir un peu ce que tu as fais comme jeux ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  "The best thing about now, is that there's another one tomorrow."
                    26 janvier 2015 à 14:14:02

                    He bien ça m'a l'air assez chaud à générer aléatoirement ...

                    Pour la partie graphique, pygame sans problème. 

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Python c'est bon, mangez-en. 

                      26 janvier 2015 à 18:06:43

                      josmiley a écrit:

                      He bien ça m'a l'air assez chaud à générer aléatoirement ...

                      Pour la partie graphique, pygame sans problème. 


                      Mais si c'est facile ! 

                      Tu reprend le code que j'ai poster et tu remplace les variable block_1 etc... Par des variables contenant les positions des platform puis tu n'a plus qua faire une petite boucle pour afficher toutes les plateforme contenu dans la liste niveau[] !

                      • Partager sur Facebook
                      • Partager sur Twitter
                      CactusHaven
                        26 janvier 2015 à 18:07:42

                        Shashimee a écrit:

                        Merci beaucoup, je vais me renseigner ! :) Serait-il possible de voir un peu ce que tu as fais comme jeux ?


                        Bien sur ! Je te les envoie ce soir en MP !
                        • Partager sur Facebook
                        • Partager sur Twitter
                        CactusHaven
                          26 janvier 2015 à 20:30:57

                          Sympa pour les autres ...
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Python c'est bon, mangez-en. 

                            26 janvier 2015 à 20:55:47

                            Désoler, la clé USB contenant mes jeux n'est pas avec moi mais j'ai quand même un petit test de jeu plateforme que j'ai retrouvé sur mon ancienne ordinateur alors désolé si le code n'est pas très complet mais bon j'essaie de vous renvoyé mes jeux dès que possible enfin bref l'important c'est qu'il y est les bases dans jeu de plateforme et encore désoler mais il n'y pas encore de scroller:

                            ZIP: https://www.dropbox.com/s/n79oiknrrkv8uec/Test-platform.zip?dl=0

                            RAR: https://www.dropbox.com/s/k34zv50gxvtsjbt/Test-platform.rar?dl=0

                            Si les liens ne marchent pas, prévenez moi !

                            Désoler si mon code n'est pas claire ou si vous ne comprenez mais ça fait déjà un bout de temps que j'ai écrit ce code et je n'y ai pas retouché depuis alors si vous avez quelques questions je serai ravi de vous répondre et si vous voulez réutilisez mon code libre à vous !

                            • Partager sur Facebook
                            • Partager sur Twitter
                            CactusHaven

                            Projet : Platformer à Génération procédurale

                            × 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