Add Roadmap
96
Roadmap.md
Normal file
96
Roadmap.md
Normal file
@@ -0,0 +1,96 @@
|
||||
## 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 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
|
||||
|
||||
## Diagnostics
|
||||
|
||||
- Implement Profiler class.
|
||||
- Generate a Speedscope report.
|
||||
- Collect reports for systems
|
||||
- Game
|
||||
- Render
|
||||
- Audio
|
||||
- ResourceManager
|
||||
- UI
|
||||
- Particles
|
||||
|
||||
## UI
|
||||
|
||||
- ~~Layout~~
|
||||
- ~~Containers~~
|
||||
- ~~VerticalContainer~~
|
||||
- ~~HorizontalContainer~~
|
||||
- ~~GridContainer~~
|
||||
- ~~FlexContainer~~
|
||||
- ~~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 sheet~~
|
||||
- ~~Add 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.
|
||||
Reference in New Issue
Block a user