Files
Voile/TODO.md
2024-10-15 22:06:08 +02:00

66 lines
1.7 KiB
Markdown

# 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.
- (stretch goal) Streamed resource loading.
- (stretch goal) Add async API for ResourceManager.
- (stretch goal) Virtual file system.
## 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 quads~~
- ~~Camera API~~
- Arbitrary mesh rendering API.
- Create WebGPU renderer (StandardRenderer)
## Audio
- ~~Integrate FMOD~~
- 2D audio abstraction
## Misc
- ~~Asset manager~~
- ~~Separate 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.
## SceneGraph module
- Layers (sorting mechanism)
- Full overhaul using Entity Component architecture (not to be mistaken with ECS).
- 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).