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

Création de jeux vidéo Discussion :

Débuter dans la programmation de jeux vidéo


Sujet :

Création de jeux vidéo

  1. #41
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Merxi beaucoup pour toute ces precision. Je vais plus en utiliser sauf si j'ai vraiment pas le choix.
    Et j'aurais encore quelque question
    1) Skeud a parler de tous regrouper dans un singleton, je suis aller voir le tuto, j'ai compris se ca servais a avoir qu'une seul instance d'une classe. Mais je comprend pas vraiment sont utiliter donc vous pouvez m'expliquer svp ?

    2) Skeud m'as dis qu'il fallais une classe pour chaque fonctionnaliter. En se moment je travail sur un petit jeux 2d ou le perso fait que se promener sur une map pour le moment. Donc j'ai creer une classe pour l'affichage de la map, une autre pour le deplacement du joueur, une autre pour l'affichage du joueur. Mais le probleme c'est que pour le deplacement du joueur par exemple j'ai besoin de connaitre la map pour savoir si je peut avancer ou non. Ensuite le deplacement dois aussi changer la position de l'affichage du perso. Et du avec tous ca je trouve que ca fait pas bien propre dans le main. Parce que ca part d'une classe pour passer par une autre et finir dans un autre. Au bout d'un momet je ne mis retrouve plus. Donc j'ai decider de recommencer en faisant une classe perso donc dans cette classe j'aurais le sprite du perso sa position et tout se qui va avec. Et je pensait faire d'autre classe mais juste avec des methode static pour les utiliser direct la class perso ou juste des fonction. Pour que ca decoupe un peu mais que au final j'ai qu'un seul objet qui est mon perso. Vous en pensez quoi ?

  2. #42
    Nouveau membre du Club
    Femme Profil pro
    Développeur 3D
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Points : 33
    Points
    33
    Par défaut
    D'où l'utilité de l'UML ^^

    Avant de te lancer dans le code, fais-toi d'abord un schéma sur du papier où tu prévoiras tout ce dont tu as besoin. Tu fais un carré par classe, tu écris dans chaque carré les fonctions et variables, et tu fais des traits entre eux dès qu'il y en a un qui a besoin de l'autre.

    Pour savoir qu'est-ce qui est une classe : écris ton scénario, les verbes deviennent des fonctions et les noms deviennent des classes.
    Par exemple "c'est un bonhomme qui se balade sur une prairie où des fleurs poussent"
    les noms (classes) c'est "bonhomme" et "prairie" et "fleur"
    et les verbes (fonctions) "se balader" et "pousser"

    c'est pour ça qu'une classe "déplacement de bonhomme" n'a pas de sens mais qu'une classe "perso" est une très bonne idée =)
    Bonne chance!

  3. #43
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour cette astuce, elle m'as l'air vraiment pratique et va beaucoup m'aider a organiser mon code

  4. #44
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Salut, me revoila .

    Alors concernant ton projet 2D, Il faut que découpe les fonctionnalité et les donnée.

    En gros, une classe correspond à une donnée.
    Une méthode correspond à une fonctionnalité.

    Pour un jeu 2D avec une map et un perso.

    tu as donc une donnée map, et une donnée perso.
    Le perso étant sur la map, c'est la classe map qui doit contenir la classe perso.

    L'affichage est une fonctionnalité, tu veux afficher la map et le perso, donc chacune des deux classes doit contenir une méthode d'affichage.
    Le déplacement est une fonctionnalité du joueur, donc c'est le joueur qui contient la méthode de déplacement.

    Le fait de faire un diagramme UML, te permets d'avoir une vision plus claire sur l'organisation de tes classes, avant meme de taper une ligne de code, c'est ce qu'on appelle la conception.

    Une bonne conception est absolument nécessaire pour pouvoir faire un bon programme et ne pas te retrouver dans une impasse.
    Une bonne conception se qualifie via un nombre de classe minimum et un nombre de fonctionnalité par classe minimum. Il faut aussi que les dépendance entre tes classes soit le plus petit possible (la classe joueur ne doit pas contenir des informations concernant la map et inversemment ).
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  5. #45
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 560
    Points
    4 560
    Par défaut
    Un objet est défini par une identité, un état, des comportements.
    Les méthodes servent à concrétiser les comportements(qui peuvent mener à des changements d'état).
    L'affichage en tant que tel n'est pas un comportement d'un perso/map/... mais un comportement d'un gestionnaire d'affichage, la méthode de mise à jour du visuel devraient donc être centralisée dans un composant spécifique(qui peut aussi gérer le son, la physique... tout dépend du niveau de granularité du composant).

    Le déplacement est effectivement un comportement du perso, mais pas forcément la manière dont il se déplace(il est à pied, puis trouve un vélo...), la logique de déplacement peut donc être transférée dans une classe séparée pour rendre le concept extensible.

    Avant de faire un UML, c'est bien de lister tous les uses cases, pour être sur que le modèle pourvoira bien à un maximum de besoins et éviter les oublis(ça va bien sur évoluer, mais autant essayer de couvrir le plus possible).
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  6. #46
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Bonjour,

    Je me permet de proposer une autre approche à ce que j'ai pu lire.

    Pour le moment, ne cherche pas à faire un UML ou une architecture. Ton archi sera mauvaise, ton utilisation de la POO te fera aller droit dans le mur. Il est inutile de faire des diagrammes et de l'architecture tant qu'on ne comprend pas POURQUOI on doit le faire.

    Si tu cherches à faire un jeu, mais que tu ne t'intéresses pas plus à la technique, utilise un moteur tout prêt (unreal, unity...) et fais ton jeu.

    Si tu t'intéresses à la technique (comment on fait un jeu), je te conseille déjà de partir sur quelque chose de très simple comme un tic tac toe ou un snake. L'avantage c'est que ce sont des jeux avec des règles simples, et connues.
    Ne perd pas de temps pour les assets (visuels 2D) et ne t'occupe pas du son ou de ce genre de choses pour le moment.
    Dans le même ordre d'idée, ne t'embête pas avec un singleton pour le moment. Tant que tu n'en as pas besoin, tu ne comprendras pas pourquoi tu en utilises un.

    Un snake, c'est une loop de jeu et un ou deux tableaux. Essaye d'avoir un sample le plus simple possible avec un snake qui se balade. Après tu ajoutes le fait qu'il grandisse, ensuite qu'il puisse manger un fruit, ensuite qu'il puisse se manger lui même, etc. Essaye d'avoir un processus le plus itératif possible (morceau par morceau, on avance).

    Le plus important à comprendre pour un jeu, c'est la mainloop qui va gérer les updates des différents éléments de ton jeu.

    Je ne vais pas relancer la polémique sur les langages, mais si tu restes sur le c++ (je pense pas que ce soit une bonne idée, vu que tu vas chercher à comprendre un langage extrêmement complexe ET l'architecture et les challenges d'un jeu), reste le plus simple possible: quelques class, quelques vector, pas d'alloc dynamique, etc.

  7. #47
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Des allocations dynamiques, il peut, quand même ! Sans memory pool ou autre allocateur maison, bien sûr, on n'en est pas là !

    Sur le reste je suis bien d'accord avec toi, seeme.

  8. #48
    Candidat au Club
    Homme Profil pro
    Developpeur débutant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur débutant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour à tous !

    J'ai suivi ce thread avec attention car moi aussi je me suis lancé dans l'apprentissage de créer des jeux vidéo (sans aucune connaissance en programmation). La partie technique m'interesse beaucoup et j'aimerais apprendre à coder pour créer un jeu de A à Z

    J'apprend aussi le C++ pour l'instant via bouquin, vidéo, tuto. Pas facile, mais tellement passionnant ! J'ai le même objectif que l'OP, d'abord créer un petit jeu console, puis via bibliothèque pour créer des petits 2d, puis la 3d, puis un RPG, et enfin un MMORPG d'ici quelque année d'experience je pense ^^

    Je me demandais si il existait un vocal où l'on pourrait de rencontrer et se réunir (genre un TS) ? Sinon pourquoi ne pas en créer un histoire de se réunir et discuter de tout ca. Je demande ca car en tant que parfait débutant, j'aimerais bien m'entourer soit de personne d'experience, soit de personne débutant comme moi afin de partager nos expériences.

    Pour l'instant, je suis dans les tuto, et je me sens un peu seul (même vraiment beaucoup ^^).

    A bientôt !

  9. #49
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Salut a tous et merci beaucoup pour toute vos réponses.
    J'ai tout repris mon jeux dès le début. J'ai commencer par faire un UML comme vous me l'aviez conseiller. Je ne l'avais pas fait la première fois parce que comme l'as dis Seeme, je ne savais pas vraiment a quoi m'attendre et se dont j'allais avoir besoin. Mais cette fois ca ma etait bien utile pour tout ranger correctement. J'arrive aussi mieux a faire le lien entre mes classes. Pour le moment j'ai une classe affichage qui s'occupe donc juste d'afficher la map. Ensuite j'ai une classe perso. Cette classe contient d'autre classe une qui d'appelle arme,une autre inventaire qui range toute les armes et objet a part, une autre niveau qui calcul le niveau du personnage par rapport a son expérience total. Puis une derniere qui est metier qui permet de couper du bois ou de miner.
    Ensuite j'ai fait une autre classe qui s'appelle monstre elle hérite de perso, il y a ca méthode de deplacement qui change, j'ai fais en sorte que si on s'approche de lui, il nous poursuis. C'as méthode pour attaquer est automatique. Et puis il y a le sprite qui change.
    Je pensais aussi a faire d'autre classe qui hériterais de monstres pour avoir plusieur catégories de monstres et rendre cette classes abstaite et pareil pour le personnage principale.
    Et pour finir j'ai fait une classe menu qui permet de mettre en pause le jeux, de sauvgarder puis de charger.
    Donc voila pour le moment je trouve que mon code n'est pas mauvais et je continue de travailler dessus.
    Si vous voulez je peut vous envoyer le code pour me dire se que vous en pensez, je l'aurais bien poster mais ca risques de faire beaucoup XD

    Aliwan si tu veut je peut te passer mon skype

  10. #50
    Candidat au Club
    Homme Profil pro
    Developpeur débutant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur débutant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Dstiny Voir le message
    Aliwan si tu veut je peut te passer mon skype

    Yep, avec plaisir Ca permettra de partager nos expériences, c'est toujours plus sympa quand on commence un tel apprentissage

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/06/2008, 17h41
  2. Par ou commencer dans la programmation de Jeux ?
    Par zalouz80 dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 18/06/2008, 19h17
  3. Réponses: 7
    Dernier message: 12/03/2008, 16h53
  4. Réponses: 9
    Dernier message: 12/12/2007, 12h31

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