Files
Voile/TODO.md

2.0 KiB

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.
  • Separate render and update thread.

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 (StandardRenderSystem)

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

  • Basic widgets (button, label, text input)
  • Layout
  • Input propagation
  • Styling.
  • Basic input elements (button, text field, toggle).
  • Containers (vertical and horizontal).