Bonjour,
Ouep, l'ECS est "sympa" mais je crois que c'est surtout un effet de mode. Il ne me semble pas que l'on puisse faire un jeu complet avec l'ECS. Enfin, c'est ce dont j'ai l'impression, je me trompe surement.
Maintenant voyons le code et je dois dire, il y a quelque trucs qui me font peur.
Ici :
std::vector < std::unique_ptr < System > > _system ;//la class mère de tous les systèmes.
Le commentaire ne convient pas � ce que je vois. Le commentaire, pour moi, semble dire que je n'aurais qu'une instance de System, alors qu'ici, on a plusieurs probablement syst�mes.
1 2
| Resources _resources ; // contient tout le package ( textures etc...) chargé, sinon le charge
std::vector < Data > _data ; //contient les données de base d'un objet. |
Quelle est la diff�rence entre Data (une donn�es) et une ressources ?
Data( bool& time ) : _time ( time )
Un temps en bool�en, moi, j'ai du mal. Mais en plus, je n'ai pas du tout, compris � quoi il servait, surtout dans le constructeur.
Une Data avec :
C'est plus qu'une Data, genre, elle est Positionnable.
void Game::build( std::string name , float x , float y )
Je conseille de passer les std::string en r�f�rence constante. Mais on me dit qu'en C++11, ce n'est plus vraiment d'actualit� ?
De plus la fonction "build" me semble g�rer beaucoup de chargement (load).
std::multimap < size_t , Graphics > _graphics ;
Pour moi, Draw n'a pas besoin de contenir les Graphics. De plus, pourquoi la size est la cl� (pour identifier les types ?) ?
Pour moi, on passe une instance par une de Graphics au Drawer afin de lui demander d'afficher.
Enfin, comme je l'ai dit, je ne suis pas convaincu de l'ECS, mais si je trouve cela cool et amusant.
Partager