Page:
Roadmap
Clone
2
Roadmap
dnesov edited this page 2025-07-02 00:34:10 +02:00
Table of Contents
Roadmap
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.
- Make sure this serialization system works well with CLR and NativeAOT.
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 quadsCamera API- Arbitrary mesh rendering API.
- Create WebGPU renderer (StandardRenderSystem)
Audio
- Use SoLoud as a default sound engine.
- Integrate FMOD.
Misc
Asset managerSeparate engine and game into separate projectsParticle system 2.0Reduce 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
Diagnostics
- Implement Profiler class.
- Generate a Speedscope report.
- Collect reports for systems
- Game
- Render
- Audio
- ResourceManager
- UI
- Particles
UI
LayoutContainersVerticalContainerHorizontalContainerGridContainerFlexContainer
Positioning (anchors)
Move layouting to Render instead of Update, use Update for input.- Input propagation
Pass input to widgets.- Add element focus logic, make them focusable with action inputs.
- Basic input elements (
button, text field, toggle). - Styling
Style sheetAdd style settings for UI panels (for buttons, labels, etc.).Parse StyleSheet from TOML file.- Animated styles
- (stretch goal) Style variables
- Find a way to reference external assets in the style (fonts, textures).
- Create a default style for widgets.