plutoengine/NEXT_RELEASE_DRAFT.md

2.3 KiB
Executable File

Features targeted for 22.3.0.0-alpha.0

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

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