Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structure d'un jeu

Sujet résolu
10 avril 2021 à 11:45:27

Bonjour,

Je suis entrain de programmer un jeu. J'ai créée différente classe (joueur, pion, dé ...) et il faut mtn que je code les instructions pour le déroulement d'une partie.

Cela me parait une mauvaise idée de tout mettre dans la méthode main, elle sera surchargée. Mais je me demande si la solution serait de créer une classe "Partie" qui contiendrait une méthode avec tout le déroulement de la partie. Ou bien je les mets dans le constructeur de cette classe (cela me parait bizarre). Je pourrai aussi mettre tout en static mais cela me parait aussi peu pertinent.

En bref je ne suis pas sûr que créer une classe "Partie" et l'instancier dans la méthode main respecte les principes de la programmation orientée objet.

  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 16:27:31

Dans un jeu typiquement t'auras uns state machine pour les différents comportements suivant l'état de l'app (jeu, écran titre, chargement, game over,...), une game loop, les différents moteurs (graphique, audio, réseau, physique, scripts, controles), les classes de support (config, persistence, vfs, i18n ...), et enfin ta logique de jeu contenant ton modèle composé d'entités, de terrain/plateau, et des règles.

Donc t'as déjà de quoi pas mal découper.

  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 16:58:15

Ton jeu est en local / réseau ? En ligne de commande / simple plateau / 2D / 3D ? Je suppose en ligne de commande et ultra simple pour vouloir mettre le code dans une seul méthode ?

-
Edité par K@zymir 10 avril 2021 à 17:00:31

  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 17:30:54

leroiheenokkk a écrit:

Bonjour,

Je suis entrain de programmer un jeu. J'ai créée différente classe (joueur, pion, dé ...) et il faut mtn que je code les instructions pour le déroulement d'une partie.

En bref je ne suis pas sûr que créer une classe "Partie" et l'instancier dans la méthode main respecte les principes de la programmation orientée objet.


Un des principes de la POO, c'est de créer des classes en leur attribuant des responsabilités précises.  Et pas selon le principe foireux de "ça existe dans le jeu, je le représente par un objet et on verra après".

Les responsabilités, c'est qu'elle FONT quelque chose. Et qu'elles demandent au besoin aux autres objets de faire quelque chose pour elles.

Exemple, que fait un dé ?

  • Partager sur Facebook
  • Partager sur Twitter
16 avril 2021 à 12:06:56

C'est vrai que lorsque toutes les méthodes et variables sont en static, ça ne représente pas beaucoup d'interret de les découper en plusieurs classes.

Mais ça sert toujours à mieux organiser le code et à mieux comprendre quand tu le lis, et aussi à mieux débogué, parce que c'est dix fois plus chiant de chercher une ligne dans un fichier qui en contient 10 000, que chercher un fichier spécifique qui sera rangé dans un dossier., qui sera lui-même rangé dans un autre dossier.. bon je suis pas maniaque mais voilà.:D

  • Partager sur Facebook
  • Partager sur Twitter