2022-04-17 02:21:13 +00:00
|
|
|
## Features targeted for 22.3.0.0-alpha.0
|
|
|
|
* `[PlutoRuntime,PlutoCore]` **Initial implementation of the layer system (formerly known as "stage")**
|
2022-04-16 12:40:59 +00:00
|
|
|
* 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
|
2020-09-09 22:46:19 +00:00
|
|
|
1. Unload unused assets
|
|
|
|
2. Load new assets
|
2022-04-16 12:40:59 +00:00
|
|
|
* Provide multiple means of layer switching
|
|
|
|
* Two modes with the initial release, asynchronous switching will come at a later date
|
2020-09-09 22:46:19 +00:00
|
|
|
1. Instant switch
|
|
|
|
* Assets will be loaded and unloaded synchronously
|
2022-04-16 12:40:59 +00:00
|
|
|
* The layer switch will happen in one frame
|
2020-09-09 22:46:19 +00:00
|
|
|
2. Deferred switch
|
2022-04-16 12:40:59 +00:00
|
|
|
* The layer will continue running until all assets load
|
2020-09-09 22:46:19 +00:00
|
|
|
* Assets will load synchronously, but at a slower pace
|
2022-04-06 09:01:41 +00:00
|
|
|
to avoid frame stutter
|
2020-09-09 22:46:19 +00:00
|
|
|
* 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
|
|
|
|
* Let the stage system handle audio playback
|
|
|
|
* This API should be as neutral as possible and avoid steering towards
|
2022-04-06 09:01:41 +00:00
|
|
|
game-only use
|
2020-09-11 12:57:04 +00:00
|
|
|
* The stage manager should be relatively low-overhead and allow multiple
|
2022-04-06 09:01:41 +00:00
|
|
|
instances
|
2020-09-11 12:57:04 +00:00
|
|
|
* Allow stages to be inherited from, creating a stack-like structure
|
2022-04-16 12:40:59 +00:00
|
|
|
* `[PlutoAudio]` Integrate the Audio API with the Stage API
|
|
|
|
|
|
|
|
## Features targeted for an unspecified future release
|
|
|
|
* `[PlutoSpritesheet]` Expanded capabilities
|
|
|
|
* Support for 9-slice rendering
|
|
|
|
* Support for animated sprite rendering
|
|
|
|
* Support for multidirectional sprite rendering
|
|
|
|
* A spritesheet skeleton editor
|
|
|
|
|
|
|
|
* `[PlutoRuntime]`
|
|
|
|
* Asynchronous switch
|
|
|
|
* Assets will be loaded in asynchronously, where applicable
|
|
|
|
* Falls back to deferred switching for synchronous loading,
|
|
|
|
such as OpenGL texture upload
|
|
|
|
|
|
|
|
* `[PlutoGUI]` A fully-fledged GUI engine
|
|
|
|
* Improve font-rendering capabilities
|
|
|
|
* Subpixel rendering support [?]
|
|
|
|
* Reimplement support for bitmap fonts
|
|
|
|
* Improve upon the support of thread-local Pluto instances
|
|
|
|
* The long term goal is to allow an unlimited amount of Pluto applications at any given time
|