1

À titre de défi personnel et d'entraînement, j'ai décidé de m'essayer à la création d'un moteur de rendu 2D pour un RPG (FF6-like).
Je fais cela en C++ à l'aide de la librairie SDL (que d'ailleurs je recommande, pas mieux pour de la 2D).

J'ai déjà fait la gestion des sprites, avec possibilité de déplacement du personnage avec sauvegarde de la partie du background à remplacer après, animation, etc ; et je travaille actuellement sur un système de collision.

Le problème vient du fait que je ne sais pas du tout comment organiser mon code. Car plus tard il faudra faire venir des maps, qui délimiteront des zones sur lesquelles le personnage peut se déplacer, des personnages spécifiques, des événements, etc.
Je ne sais pas du tout comment gérer ça dans mon code de façon extensible (je dois dire que jusqu'à présent, je ne faisais que du C/C++ en mode texte avec un fichier unique)

2

Hmm prends un papier et définis dessus les différentes choses dont tu as besoin (maps, sprites, personnages, animations, décors, etc, ...)
Ensuite organise ça par classes, de façon bien claire (par exemple si tu as deux types de maps fait les de préférence hériter d'un même type ancêtre).
Il n'y a pas de manière universelle de gérer un jeu, il faut principalement se focaliser sur ce qui est important pour toi (les features dont tu n'estimes pas avoir besoin tu leur dis au revoir, ça allègera déjà pas mal ton travail).
Si tui veux avoir un truc "extensible" (mais fais gaffe quand même à pas viser trop large - c ce que je fais toujours et ça rend les projets bien plus difficiles/ennuyeux à coder - restreints ton code au minimum, mais pas de trop, il faut toujours que ça soit utilisable comme tu veux mais sans plus) il faut déjà qu'à chaque fois que tu implémentes un truc, tu te demandes quelles seraient les différentes manières de l'implémenter et quelles seraient les différentes manières de l'utiliser. Parmi tout ça tu réfléchis (pas la peine de se précipiter, ça ne sert à rien) à la manière d'implémentation qui te sera le plus utile et la plus simple à utiliser pour ton projet et tu l'implémentes.
Ensuite, si tu as bien organisé tes classes, ajouter des fonctionnalités ne devrait pas s'avérer trop difficile happy

Bonne chance smile
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes