This page details the main design concerns of Theater engine.
Design targets:
- Resonably fast
- Smallish games
- Primarily 2D games
- Written in Beef
- Gui support
Modularity
I dont have a big team of people working on this, so I need to choose my fights in order to be atleast somewhat productive.
Breaking the main engine up into smaller parts that can stick together allows better reusing of code,
it makes the entire engine fit onto the game more and should be helpful in general.
The thing that weaves everything together is the game itself.
So hard dependencies to individual modules are possible and probably even preferable.
Having one layer of indirection over everything just makes things slower and because games are
unlikely to change the modules that they are using during development it should not be a problem.
Possible Modules:
- Core
- Rendering
- Input
- Sound
- Textures
- Object Model
- Editor
- etc...
Threading
In order to be fast the engine should probably do some sort of threading.
This could be achieved via a job system that runs ontop of a threadpool.