Akurat pomysł robienia kilku gier w jednym projekcie jest dobry, bo pomaga ulepszać architekturę.
Ja teraz robię apkę w Three.js (ten edytor map, o którym pisałem na mikroblogu) i niedawno zacząłem w tym samym repo tworzyć na tym samym silniku drugi nieco inny edytor - i architektura polepszyła mi się niezmiernie, bo od razu widać jak na dłoni rzeczy, które są specyficzne dla danej apki (i które trzeba wywalić z core'a), a które są wspólne. Architektura się hartuje. I to nie pierwszy raz zresztą, kiedy coś takiego robię - jedna apka-silnik - i kilka pod-apek, które mogę sobie łatwo przełączać.
Oczywiście można się spierać, czy należy to robić wszystko w jednym repo Git (podejście monorepo), czy może lepiej wydzielić bibliotekę i ją importować z kolejnych projektów, ale to już jest oddzielny problem.
Tylko, że ja akurat wydzieliłem kod do odpowiednich folderów, nadałem temu strukturę.
Tutaj jednak struktury nie widzę, napaćkane jest luzem ileś plików. A przecież zamiast Arkanoid_Block.cpp
itp. można zrobić folder Arkanoid
https://github.com/ArturKnopik/Game/blob/master/Learn_Game/
Poza tym dobrze jest, jak projekty mają podobną strukturę wewnętrzną. A tutaj znowu - mamy plik ArkanoidPlayingGameState.cpp
ale nie ma już TibiaPlayingGameState.cpp
.(edit: chociaż jak patrzę, to inne projekty mają same GameState, bez Playing, czyli niby jest pewna konsekwencja).
Jest za to TibiaAnimationController.cpp
, ale już ArkanoidAnimationController.cpp
nie ma.
Czyli mogę się domyślać, że każdą grę tworzysz całkowicie inaczej i mogę przypuszczać, że nie wykorzystujesz dobrze wspólnego core'a (domyślać, bo patrzę po nazwach plików, nie wnikałem w kod).
Swoją drogą Tibia, Mario - nie wiem, czy to dobry pomysł nazywać swoje projekty tak samo jak te istniejące. Arkanoid niby też, ale ta nazwa jakoś stała się bardziej pospolita niczym Tetris.