DOME v1.5.0 - The Powerful Plugin Update

DOME v1.5.0 is now available ๐ŸŽ‰

This update is mostly changes under-the-hood, with a focus on exposing the basic functionality required for Native Plugins, which can be used to extend the functionality of DOME for your projects, without having to build the whole engine yourself.

This release is going live just before DOMEjam 2021 to celebrate a year of DOME being available to the public! ๐ŸŽ‚ ๐Ÿฅณ ๐ŸŽˆ

You're humbly invited to join in and make something fun!

New Features:

    • You can compile plugins against the C header and they will be dynamically loaded at runtime.
    • Hooks are provided so plugins can act at different points during the game loop.
    • Plugins can also register Wren-side modules with foreign classes and methods. A subset of the Wren API is exposed for this purpose.
    • A generic audio channel system is exposed so that plugins can integrate with the existing `AudioEngine` if they desire.
  • New `random` module implementation based on a Noise/Hash function, which is also accessible.
  • `platform` module for system-specific functions (Current time and OS name right now)
  • `json` module can check for circular structures, with an optional flag for performance.


  • Paths are normalised for module loading, which means that `a/path` and `./a/path` and `./a/path/../` will be treated the same and this will improve caching and load times when paths are inconsistent through a project.
  • `Color` class is now a subclass of vector, which allows for interesting operations to occur.
  • `AudioEngine` now supports plugins and makes better use of the state machine system internally.

Bug Fixes:

  • non-`Drawable` elements wouldn't draw in `Canvas.draw`, even if they had the correct method.
  • Changing volume and pan values could lead to noise and stutter.
  • Certain configurations of image transform could cause out of bounds memory accesses, so we protect against that now.
  • Alpha blending overflow could lead to some weird visual bugs and this is handled properly now.

As always, documentation is available to help you get started.
If you run into any problems or have any feature requests, please file an issue!

You can also contact me directly via twitter (@avivbeeri), or on the DOME discord as `springogeek#0572` to share screenshots or ask questions!


Leave a comment

Log in with to leave a comment.