Le jeu vidéo, c’est complexe a programmer. Des tas d’infos dans tous les sens, qu’il faut protéger des modifications importunes tout en les rendant accessibles à ceux qui en ont besoin, qu’il faut faire passer entre les threads, envoyer sur le réseau, sur l’écran, dans les différents systèmes.
J’ai toujours été un codeur instinctif. J’ai une idée abstraite de ce que je veux faire, et je la concrétise directement en code. Mais avec le jeu vidéo, principalement quand il s’agit de faire un moteur, la complexité est telle que soit je me noie dans les possibilités et je n’arrive a rien, soit j’oublie des trucs. J’avais donc besoin d’une méthode pour essayer de réduire le problème. La méthode que j’envisage est la suivante :
-D’abord, je précise le gameplay du jeu. Je le décrit en détail, sans m’occuper de la technique derrière. A quoi ressemblera le monde dans lequel le jeu se déroule ? Quelles actions les entités vont elles entreprendre, quelles sont les conséquences possibles des actions, comment le résultat est il décidé, qui ou quoi décide des actions entreprises, et selon quels critères ? Quelle interface est présentée au joueur ? Quel est le but du jeu ? Et tous les autres éléments de gameplay qui sont pertinents.
-Ensuite je traduis ces spécifications en flux de données. Qui a besoin de quelle info, qui effectue quelle action, et comment cette information transite ? Je note ca sur papier, ca servira de checklist.
-Ensuite UML. Je fais les structures de données, diagrammes de sequence sur la transmission des données, et tout ce qui est pertinent.
-Enfin seulement, je code.
J’amenderais surement cette méthode, probablement pour la simplifier une fois que je serais familier avec le processus et que j’aurais des technologies un peu éprouvées. Mais je pense que c’est une bonne base pour commencer.