# 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.~~ - Custom PAK format using the VFS implementation. - (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 - Use SoLoud as a default sound engine. - Integrate FMOD. ## 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).