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.