# Voile MVP ## Core - ~~Add and implement interfaces for systems (ISystem, IUpdatableSystem, etc.)~~ - Minimize amount of possible null references. - Serialization and deserialization of Resources from and to TOML 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. - (stretch goal) Make async API for ResourceManager - (stretch goal/1.0) Streamed resource loading - (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. - (1.0) Create WebGPU renderer (StandardRenderer) ## Audio - ~~Integrate FMOD~~ - 2D audio abstraction ## Misc - ~~Asset manager~~ - ~~Separate engine and game into separate projects~~ - ~~Particle system~~ ## 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).