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 source 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- Use SoLoud as a default sound engine.
Misc
Asset managerSeparate engine and game into separate projectsParticle system 2.0Reduce the size of Particle struct by infering most parameters through lifetime.Reduce cache misses by utilizing SoA.SIMD acceleration.Creating and removing emitters.
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- Nicer input mapping API using code.
- 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).