Thanks!
I have continued to work on the project since last time, mostly on the game engine.
I implemented an ECS library that is available on
GitHub. I also wrote two articles to describe its design, the series starts
here. I have improved the code a bit since and I should write a new article.
Then, I worked on the foundations of a game engine: an input manager, a state manager, a basic render manager, etc. You can read more in this
devlog. I also integrate Dear ImGui using Elias' binding.
Next, I worked on an OpenGL wrapper to be able to use floating-point textures, array textures and meshes with custom vertex definition. I was happy because everything works well with SFML graphics module. You can read some thoughts about its design
here.
I used this wrapper to implement a light system, you can see some screenshots below. It is nothing as fancy as Let There Be Light but I am happy with the results and I have still some ideas to improve it. You can read more about it
here.
Then, I worked on the physics system. I implemented a quadtree and shared my implementation
here, the code is available
there. Next, I implemented a simple physics engine that works well for 2D top-down RPG, I shared its design
there.
Last week, I worked on the audio engine. It is only a thin layer above SFML audio. You can read more about it
here.
Finally, this week, I have worked on the user interface. I tried several libraries and chose the one that suits my needs the best. A write-up is available
here. I finally chose MyGUI and wrote a small wrapper to integrate it in SFML, it is available
here.
The next steps are networking and then working on the game itself.