68 lines
1.8 KiB
Markdown
68 lines
1.8 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.
|
|
- 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 quads~~
|
|
- ~~Camera API~~
|
|
- Arbitrary mesh rendering API.
|
|
- Create WebGPU renderer (StandardRenderer)
|
|
|
|
## Audio
|
|
|
|
- ~~Integrate FMOD~~
|
|
- Use SoLoud as a default sound engine.
|
|
|
|
## 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.~~
|
|
- ~~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).
|