# 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).