Implement the layer system
AMNatty opened this issue · 0 comments
AMNatty commented
[PlutoRuntime,PlutoCore]
Initial implementation of the layer system (formerly known as "stage")- A "layer", in this context, is a set of assets bound together
by programming logic.
Layer switching and asset management are handled by the engine. - Layers can be stacked on top of each other and run sequentially
from bottom to top - Upon layer switch
- Unload unused assets
- Load new assets
- Provide multiple means of layer switching
- Two modes with the initial release, asynchronous switching will come at a later date
- Instant switch
- Assets will be loaded and unloaded synchronously
- The layer switch will happen in one frame
- Deferred switch
- The layer will continue running until all assets load
- Assets will load synchronously, but at a slower pace
to avoid frame stutter
- Instant switch
- Two modes with the initial release, asynchronous switching will come at a later date
- Automated asset loading
- All asset management will eventually be handled by
PlutoCore
- This includes audio clips, textures, sprites
- Add a common interface for all assets
- All asset management will eventually be handled by
- Let the stage system handle audio playback
- This API should be as neutral as possible and avoid steering towards
game-only use - The stage manager should be relatively low-overhead and allow multiple
instances - Allow stages to be inherited from, creating a stack-like structure
- A "layer", in this context, is a set of assets bound together
[PlutoAudio]
Integrate the Audio API with the Stage API