2.8 KiB
2.8 KiB
Voile MVP
Bugfixes
- ActionJustPressed and KeyboardKeyJustPressed don't detect inputs consistently.
- Solution: This is a problem related to custom frame pacing for fixed timestep. Raylib polls input in BeginFrame, which means certain functions related to JustPressed* may work incorrectly when polled in a separate timestep. This can be fixed if the entire input system will be moved to SDL or with a custom render + input backend altogether.
- Fix any remaining bugs with anchor positioning system.
- Containers don't position their chilren correctly when using anchors and adding/removing them.
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
UI
LayoutContainersVerticalContainerHorizontalContainerGridContainerFlexContainer
Positioning (anchors)
Move layouting to Render instead of Update, use Update for input.- Input propagation
- Basic input elements (button, text field, toggle).
- Styling.