1 pièce(s) jointe(s)
Vue 2D étalée (Don't Starve)
Bonjour,
J'ai découvert la bibliothèque pygame il y a peu et je me demande si elle est justifiée pour ce que je souhaite faire ou si il vaut mieux que je choisisse quelque chose d'autre.
Je souhaite disposer d'un environnement numérique (comprendre un "monde") dans lequel je pourrai faire mes tests de gameplay. Je compte faire interagir des personnages en 2D vue de face et cela dans un monde lui aussi en 2D mais en 2D étalé si je puis dire. Je ne sais pas quel est le bon terme pour cela, mais c'est la vue du jeu Don't Starve que je souhaite reproduire.
Pièce jointe 272903
La caméra pourra naviguer dans ce monde, tout en gardant le même angle en plongé. Pensez-vous que je peux l'obtenir avec pygame ? À la base, je pensais que j'allais juste me servir d'une sous-bibliothèque, mais ça va surement être plus compliqué... Si ça l'est trop, je pourrai basculer vers un autre environnement de programmation. J'ai choisi pygame parce que je connais python.
Étalée, simplicité et perspectives
Par étalée je pense que tu entends profondeur/perspective et défilement. Par contre dans le cas de ce titre l'environnement est en 3D même si beaucoup d'élements sont plats comme dans Paper Mario par exemple. Sinon cette biblio permet bien de répondre à ton besoin et plus encore. Après avant de t'attaquer à la perspective je te conseille de plutôt viser la classique vue de côté comme dans beaucoup de jeux vidéo de plate-forme : Braid, celui en ombre chinoise dont le nom m'échappe, Super Meat Boy… Super Mario Bros. ? Pas assez étrange ! :lol::aie::lol:
Un compromis c'est une fausse perspective, comme en isométrique, où on peut se déplacer vers le fond ou vers l'avant mais les éléments ne changent pas d'échelle. Je pense à des vieux beat them all comme Golden Axe (Arcade) et ces dernières années de nombreux titres ont repris cette approche. Comme dans Don't Starve mais avec des niveaux plus horizontaux et donc des déplacements plus limités mais l'intérêt c'est de simplifier la tâche dans un premier temps.
Organisation et autres projets
En effet le passage par la 2D est plus sage et pertinent dans ton cas. Tu pourras ajouter une nouvelle dimension, celle de la 3D, plus tard. Par contre c'est important de découper ton travail car déjà tu as listé plusieurs choses. Faudrait les ordonner, par complexité/priorité, et élaborer tes besoins afin d'avoir une idée plus précise de ce que tu souhaites obtenir. Une étape après l'autre pour pas être découragé. Ensuite tu pourras déterminer si pygame seul suffit pour y répondre ou si tu dois aussi rechercher des biblios complémentaires. De mémoire elle reste assez limitée, basée sur SDL avec quelques fonctionnalités en plus, donc ça implique de mettre pas mal les mains à la pâte. Un enfer pour certains, que du bonheur pour d'autres ! Enfin c'est important de déterminer ce que tu sais déjà faire afin de définir ce que tu dois apprendre, pratiquer…
Pour être très concret :
- Créer ton monde directement ou commencer par faire quelques didacticiels pygame ?
- Parvenir déjà à déplacer un perso ou s'attaquer directement à la génération procédurale ?
- Faire beaucoup de choses toi-même ou déléguer au maximum à une biblio ?
- …
Tant que j'y pense j'ai récemment testé la dernière version d'Unknown Horizons. C'est un clone de la série Anno, gérer une colonie sur des îles en temps réel, et il est développé principalement en Python. Par contre son moteur FIFE est en C++. Avec un peu d'imagination sa perspective isométrique se rapproche de celle que tu recherches. L'idée c'est que tu pourrais parfaitement partir d'un tel projet et t'en servir de laboratoire pour expérimenter. D'ailleurs FIFE a aussi été utilisé pour un JDR je crois et de mémoire je me souviens de visuels assez sombres style Diablo & Cie. D'où l'intérêt de fouiner pour dénicher d'autres projets et t'en inspirer. Certains sont en plus pensés pour être modifiés/enrichis facilement.
Sinon je précise que je ne suis pas du tout un expert de pygame et Python. J'ai juste une expérience générale du sujet.
Biblios vs. EDIs, étapes et perspective isométrique
Compte tenu de ton organisation et tes priorités pygame est donc trop bas niveau. Pour être plus efficace et coller à ton approche le mieux serait peut-être de te reposer sur un logiciel comme Blender (100% scriptable en Python). Son Game Engine (BGE) est destiné à changer mais en fouinant ça te permettra de constater que c'est une solution accessible et puissante. Du côté de Wikipédia/Wikipedia j'ai aussi repéré des articles/catégories dédiés aux autres bibliothèques. Une autre piste serait de manière générale les EDIs des grosses références comme Unreal Engine, Unity… Tous ces moteurs sont scriptables et même si leurs langages sont spéciaux peut-être qu'il existe des passerelles.
Sinon t'es dans la bonne voie en procédant par étapes et en attendant de trouver la perle rare en effet rien ne t'empêcher de jouer au savant-fou avec pygame.
Enfin pour l'isométrique détrompe-toi car il ne faut pas se fier au défilement volontairement saccadé de plein de trucs. Par exemple dans le cas de titres comme Unknown Horizons c'est voulu puisqu'on ne contrôle pas un perso dont le déplacement affecte la vue mais directement cette dernière. Même à l'époque du cultissime Marble Madness le défilement était parfaitement fluide. C'est donc tout à fait envisageable de considérer cette perspective comme intermédiaire. 2D, iso, 3D. D'ailleurs tout à l'heure je suis retombé sur Dofus et si mes souvenirs sont bons il est en iso il me semble ou je confonds peut-être avec d'autres JDRs. Enfin l'idée est là car t'as bien insisté sur la profondeur !
PS : N'oublie pas les forums Développement 2D, 3D et Jeux puisque celui-ci reste très spécialisé