This project is a small and simple 2D game engine I am building from scratch to learn about how modern engines (and games) are made. Written in C++17
. My knowledge of 3D graphics is basic at the moment, so I ended up using SDL2
for rendering (and for events, audio as well), and used EnTT
for ECS. I read various sources (videos, sites, books, etc.) on how to architect an engine, the various systems, etc. Thanks also to TheCherno from which I took some knowledge and concepts/ideas.
I created a sandbox project, called AngryBird (yet another Flappy Bird clone) to demo the engine. Also, the engine supports native C++ scripting (at compile time) to add behavior to entities.
- Logger
- Audio
- Event Handler
- ECS
- Renderer
- Physics
- Serializer
- Asset Manager
- C++ scripting (compile time)
- Animation
- Clone recursively this repository.
- Run
WinGenProject.bat
file found inscripts
folder. - Launch
tsEngine.sln
.
- [WIP] Simple game/level editor
Click me
![editor](https://i.postimg.cc/SRMjgsk0/editor.jpg)- Dynamic (runtime) C++ script loading.
- Particle system
- Box2D
- The repository is updated, most of the time, using amend (don't ask why).
- Currently works/tested ONLY on Windows.
- [Engine] Some unnoticed memory leaks possibly.
- [Engine/Sandbox]
UI text flickering.(Fixed: 1/12/21) - [Engine]
Physics colliders size if different than initial(Fixed: 28/1/22). - [Editor]
On window resize or maximize, ImGui (and viewport) don't get resized/aligned properly (maybe switch to ImGui docking?)(Fixed: 25/4/22)