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) ?
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.
"The best thing about now, is that there's another one tomorrow."
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
@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 ?
"The best thing about now, is that there's another one tomorrow."
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 !
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[] !
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:
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 !
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.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.