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 invited to join in and make something fun!
New Features:
- NATIVE PLUGIN SUPPORT 🥳
- 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.
Enhancements:
- 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:
- Bug fixes: non-
Drawable
elements wouldn't draw inCanvas.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!