Handles input in game state as a state machine. Removes construction system. Add basic UI.
Fix deepth buffer.
Input events are handled separatly for clear separation between game screens. Mirror factory and limit rotation of tower by a few axes.
Towers are shooting lasers. Lasers can be reflected by mirrors.
Handles event unsubcription (deal with connection invalid constructor by making a copy of instanciated object in memory). Bank.
Trigger collision detection. Change map at runtime. Game class as a basic state machine (circular inclusion problem encountered, and resolved via events and dependency injection)
Health bar.
Pathfinding. Explosions on enemy destroy.
Service locator pattern. Construct graph from image.
Event dispatcher.
Show map on screen.
Factories are not to be used as singleton anymore. Separation between factories for entities and factories for special components. Start using services.
Debug drawing for physics.
Switch Bullet for Box2D, better fit for a 2D game.
Add FMOD lib to play sounds and Bullet lib for physics.
Fix several bugs related to sprite array rendering. Switch back to ENTT in C++ 14 to get tag supports.
Change ECS library ENTT for EntityX. Now the project is compatible from C++ 11. Use x86 architecture on Windows for larger audience.
ImGUI, NeosisGUI and logging system implementation. Game class to init renderer content (the main.ccp will change a lot, so by moving these things away we prevent from breaking them).
Add OpenGL wrapper classes and start project structure. Implement ECS library ENTT.