1.8 KiB
1.8 KiB
Voile MVP
Core
Add and implement interfaces for systems (ISystem, IUpdatableSystem, etc.)Minimize amount of possible null references.TextDataResource providing a convenient wrapper around TOML data files.Add documentation for common classes.Hot reloading of resources.
I/O
Use GUIDs and string ID maps for fetching resources instead of string IDs alone.- Reimplement unloading.
- Finalize ResourceManager and ResourceLoader APIs for 1.0.
- Add async API for ResourceManager.
- Virtual file system.
- (stretch goal) Streamed resource loading.
Serialization
- Serialize attribute.
- Add automatic serialization of resources through code generation and System.Text.Json.
Provide means for fetching key/value configuration (INI? TOML?)- Expose some sort of ConfigFile class for safe key/value configuration fetching.
Rendering
API for drawing textured quadsCamera API- Arbitrary mesh rendering API.
- Create WebGPU renderer (StandardRenderer)
Audio
Integrate FMOD- 2D audio abstraction
Misc
Asset managerSeparate engine and game into separate projects- Particle system 2.0
Reduce the size of Particle struct by infering most parameters through lifetime.Reduce cache misses by utilizing SoA.SIMD acceleration.- Dynamically resize particle arrays as emitters get added or removed.
SceneGraph module
- Full overhaul using Entity Component architecture (not to be mistaken with ECS).
- Layers (sorting mechanism)
- Save/load scenes from file
Input
Action system- Make action system use an InputMap resource instead.
- Gamepad support
UI
- Immediate mode API.
- Styling.
- Basic input elements (button, text field, toggle).
- Containers (vertical and horizontal).