Implement the layer system #2

Open
opened 2022-04-27 16:53:56 +00:00 by AMNatty · 0 comments
AMNatty commented 2022-04-27 16:53:56 +00:00 (Migrated from github.com)
  • [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
      1. Unload unused assets
      2. Load new assets
    • Provide multiple means of layer switching
      • Two modes with the initial release, asynchronous switching will come at a later date
        1. Instant switch
          • Assets will be loaded and unloaded synchronously
          • The layer switch will happen in one frame
        2. Deferred switch
          • The layer will continue running until all assets load
          • Assets will load synchronously, but at a slower pace
            to avoid frame stutter
    • 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
      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
  • [PlutoAudio] Integrate the Audio API with the Stage API
* `[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 1. Unload unused assets 2. Load new assets * Provide multiple means of layer switching * Two modes with the initial release, asynchronous switching will come at a later date 1. Instant switch * Assets will be loaded and unloaded synchronously * The layer switch will happen in one frame 2. Deferred switch * The layer will continue running until all assets load * Assets will load synchronously, but at a slower pace to avoid frame stutter * 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 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 * `[PlutoAudio]` Integrate the Audio API with the Stage API
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: natty/plutoengine#2
No description provided.