Skip to content

Implement the layer system #2

@AMNatty

Description

@AMNatty
  • [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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions