Bonjour.

Après une discussion avec entre autre, Koala, je me suis laissé convaincre qu'il fallait repenser mon programme, et m'orienter vers le ECS, apparemment bien adapté pour le jeu vidéo ( mon projet est de faire un STR en 2D avec la SFML ).

Avant de me lancer définitivement, j'aimerais vous exposer la façon dont je vais procéder afin de soumettre celle ci à vos critiques, pour prendre du recul et orienter au mieux mon programme dès le début.

voici comment je compte procéder ( dans les grandes lignes ) :


-une class Game va contenir l'Engine, les Systemes, et les Resources. Elle aura pour but de charger les niveaux, en lisant les fichiers sur le disque dur pour créer tous les systèmes et objets nécessaires à la scène.

-une class Engine, va récupérer tous les systèmes utilisés et les updater continuellement, en veillant à lier les modules quand il le faut.

-des class System, polymorphique, contiendront à la base un multimap avec le numéro de l'objet, et le module qu'elles manipulent. ( un Graphics, collision etc... ) . ils seraient des unique_ptr dans un vector contenue dans Game/Engine .

-une class Data, contient les donnés fondamentales de chaque objet ( son nom, sa position, etc...), et sera utilisable dans chaque module. ( en outre, un module "Graphics", par ex, aura une référence/ptr data auquel il aura accès lors de l'update : ainsi si le module Physics bouge l'objet, le module Graphics, lors de l'update, le repositionnera automatiquement ).

Mes interrogations sont les suivantes :

_est-ce une bonne idée d'utiliser l'héritage pour les systèmes ( selon vous ) ? Et si oui, allier cela avec des templates serait-il chose à faire ?

_utiliser un Data pour chaque module est-il là aussi une idée valable ?

Il y a évidement une infinité d'autres interrogations, mais ce sont les premières qui me viennent...

Merci si vous pouvez commenter, proposer, orienter etc...la conception