Today I’ve been focusing on an idea I concluded on Saturday after many weeks of pondering. Basically I want the prooject to have a set of core princaples to make sure that the project always stays on track. I think by doing so, it’ll also help describe what makes the project/engine different to others.
In the end I settled on 5, though I imagine one or two will change over the next few days as I think harder on the subject. Currently I have the following:
- Maintain A Responsible API
- Remain Free
- Be Accessible
- Support Minimum Specs
- Facilitate Videogame Preservation
I also decided that I will be reviving the C# MonoGame version of the engine to allow short term porting of games. The C++ is clearly the superior version of the engine, however as most of the work is already done, and MonoGame projects can already be ported to most of the basic targets I have (Mobile, Console etc…) it makes sense to provide the option to users when I go public with the project later this year.
End Of Week Summary
So as it stands, the engine now:
- Compiles correctly using CMake for Windows.
- Implements the new pointer system I wanted to set-up.
- Renders sprites and text correctly using the font generator tool I created.
Going forward, next week I need to:
- Finish the Font and Color Lua class.
- Perform a refactoring clean of the whole codebase, some source files still use spaces instead of tabs.
- Finish the global tools (audio, input).
Then the week after:
- Try and get music playback working. I know it can work with the sound player, however music/audio should be separate.
- Create a working draft for scenes. The idea is that logic and rendering code can be grouped into “scenes” that can be switched between to make it easier to organise large games. Of course they won’t be forced, but they do still need implementing.
Another week after:
- Attempt to build the engine on Linux and MacOS preferably with modifications to CMake.
- If you have success, try also getting it to work again with MSVCC. It’s not a priority, but would solve a problem I can imagine people complaining about going forward.
- Do work to add the TMX reader and TileMesh Lua/C++ class so that top down games can be built.
Further week after:
- Add the ability to swap shaders.
- Add advanced features to the SpriteBatch so that designers can specify blend modes etc…
- Introduce render targets for advanced graphic techniques.
- Clean up the C# MonoGame version of the engine and bring it upto standard with the C++ version. This needs to be last on the todo list as by this time the C++ version will be a solid template.