IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Vue 2D étalée (Don't Starve)


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut 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.

    Nom : ds06.png
Affichages : 1524
Taille : 312,8 Ko

    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.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut É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 !

    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.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci pour ta réponse. Je suis content de lire que pygame peut assurer ça, j'avais commencé à regarder les game engines.
    Par contre j'ai bien envie de mis attelé tout de suite. Les algorithmes que je veux tester ont besoin d'un monde avec une profondeur. Ce sont des algorithmes de déplacement, d’interaction et de génération procédurale de tribu.
    Du coup, saurais-tu m'orienter pour modéliser ce monde avec "profondeur/perspective et défilement" ?

    À bien y réfléchir, c'est vrai que je peux bosser l'animation dans un environnement 2D vue de côté.
    Tout de même, je suis intéressé par la réponse à ma demande initiale.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut 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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Pour répondre à tes questions :
    Je vais surement commencer par faire des animations en 2D de côté. Je voulais savoir savoir si python et pygame étaient les bons outils pour générer un monde tel que je le désire (comme Don't Starve) avant de partir là dedans. J'en suis toujours pas sûr mais ça va tout de même m'entrainer.
    J'ai pas envie de consacrer du temps au moteur technique, au canvas du monde. J'ai plein d'idées d'algorithmes procédurales pour le remplir, mais je ne veux pas (ou peu) consacrer de temps à créer le socle. C'est pour ça que j'ai commencé à regarder les game engines.
    J'ai déjà fait un script de génération procédural de bonhomme, ça les dessine seulement pour l'instant. Leurs animations et leurs déplacements dans un monde en 2D de côté sont les prochaines étapes. Ensuite, viendra peut-être le temps de virer sous un autre moteur.
    À priori, la vue isométrique m’intéresse moins que la vue Don't Starve. Elle laisse moins voir les détails des personnages et parait moins fluide.

  6. #6
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut, mes 2 cts :

    • dans Don't Starve le fond/l'arrière plan est en 3D bien réelle, les sprites qu'on affiche dessus sont en 2D, pas de 3D == pas de rendu à la Don't Starve (l'angle de caméra en plongée dont tu parlais, donc non, Pygame ne suffit pas, il faut aussi mettre une couche d'OpenGL ou similaire pour obtenir l'effet)
    • Pygame est à peu près le seul module permettant d'attaquer les graphismes 2D, donc la question ne se pose pas vraiment, c'est un passage obligé
    • comme dit très justement plus haut, d'abord se faire les dents sur la 2D avant d'envisager la 3D, ça veut donc aussi dire revoir ses prétentions (en termes de rendu) à la baisse dans un premier temps
    • ça n'ira pas vite. le temps de mettre tout ça en place, d'appréhender la programmation graphique etc. tu peux ranger tes "tests de gameplay" dans un coin pendant quelques temps, ça ne s'improvise pas et c'est beaucoup de boulot

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Pour rester sur quelque chose de simple, tel que Python, jetez un coup d'oeil sur Godot. Sinon, je pense que le mieux, c'est de partir sur un moteur de jeux vidéo, surtout pour un game designer qui veut expérimenter (savoir programmer, c'est nécessaire dans ce métier et un moteur de jeux vidéo ne va pas vous enlever cette expérience).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut 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é

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci pour vos conseils.
    Comme conseillé, je vais d'abord me "faire les dents" sur l'animation 2D vue de côté avec pygame. J'en ai certainement pour quelque temps.
    Ensuite, je regarderai du côté de la bibliothèque OpenGL et des logiciels Godot et Blender (j'aime bien parce qu'ils tournent sous Linux).

Discussions similaires

  1. Don't Starve : survival indépendant
    Par maxusn dans le forum Jeux
    Réponses: 2
    Dernier message: 09/01/2014, 16h23
  2. question (peut-être idiote) sur les vues
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/03/2003, 10h35
  3. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo