Releases: domeengine/dome
DOME v1.6.1
DOME v1.6.1 is now available 🎉
Bug Fixes
- Updates the Wren VM to include a garbage collector hotfix, due to a bug introduced in Wren 0.4.0
- Removes a console print which would appear during ImageData
draw
calls.
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!
DOME v1.6.0 - The Terrific Text Update
DOME v1.6.0 is now available 🎉
This release brings a collection of features for handling text in your games, as well as distribution and performance improvement, just in time for Ludum Dare 48!
Enhancements
- DOME now uses the official 0.4.0 release of Wren. There are some really useful features which are now available to you, details of which can be found in the Wren release notes.
Font.getArea
andCanvas.getTextArea
can be used to calculate the maximum area needed to draw a string in the selected font.- Added
Clipboard
to theinput
module so you can access the system clipboard. - The
Keyboard
now has ahandleText
mode, which receives full text strings from the keyboard easily.- Access the incoming text using the
Keyboard.text
field. - CJK input support is possible using
Keyboard.textRegion()
,Keyboard.compositionText
andKeyboard.compositionRange
which provide information for handling text composition with an IME tool.
- A complete text entry example, with clipboard and composition, can be found here.
- Access the incoming text using the
Distribution
- Removed a reliance on super-recent versions of glibc, expanding the support for older versions of Linux.
- Introduced an experimental web build of the engine, which can be used for applications with lower performance requirements at this time.
Performance
- Minor performance improvements around GamePad handling.
- Reduced the memory overhead of
DrawTransform
, which should improve performance.
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!
DOME v1.6.0-M1
Milestone build of DOME with Font.getArea and some various other features/bugfixes.
DOME v1.5.2
DOME v1.5.2 is now available 🎉
Enhancements
- Includes a new --embed command for converting Wren files to C include files for plugin development.
- Printing text using Canvas.print now supports newlines for both default and TTF fonts.
- Expanded the available Wren API surface for plugins to allow for arbitrary call handles and script execution.
Bug Fixes
- Resolving an ongoing issue with the size of rectangles being drawn by
Canvas.rectfill
andCanvas.rect
. audio->getState
in the plugin API was not initialised and thus would cause panics.- Plugin module registration methods now make copies of incoming strings so that the user retains ownership over their string pointers.
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!
DOME v1.5.1
DOME v1.5.1 is now available 🎉
A quick bug-fix release following DOME JAM 2021!
Enhancements
- DOME will no longer buffer stdout input, so you should have immediate response if the stdout is read from a terminal embedded in a text editor or IDE.
Bug Fixes
- Trying to start DOME with a named entry point could result in crashes.
- Using the new
random
module would result in crashes during shutdown. - Some issues around rectangle rendering size were corrected. This might impact previously written projects.
getState
in the Audio plugin API was not correctly initialized.
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!
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!
DOME v1.4.0 - The Jumbled JSON Update
DOME v1.4.0 is now available 🎉
This update brings a whole collection of different changes from the past few months, and we think you'll find it very interesting!
New Features
- DOME now uses Wren 0.4.0, which brings a whole host of features
- New
json
Module for reading and writing JSON data (Good for level data!) Mouse
x and y values can be retrieved at once as aVector
Color.hex
now supports short hex codes.Color.hex
can optionally use alpha values (both short and long versions)ImageData.transform
now allows for globalopacity
and colortint
effects.Canvas
now supports aclip
area for masked draw operations.
Bug Fixes
- Lockstep behaviour was incorrect, so we've rearranged the game loop code to make it work correctly now.
- Catchup behaviour didn't interact with input correctly, resulting in repeated inputs.
- Vectors will be marginally more performant as their underlying implementation has changed.
- A bug in the performance counter precision was corrected.
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!
DOME v1.3.1
DOME v1.3.1 is now available 🎉
Bug Fixes
- Windows which are resized during
Game.init()
are now centered when the window is made visible. - VM resources are handled correctly when an error occurs during script interpretation.
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!
DOME v1.3.0 - The Incredible Input Update
DOME v1.3.0 is now available 🎉
This update brings with it some frequently requested changes to the input handling mechanisms, as well as some interesting image manipulation routines.
New Features
- Input methods (
Keyboard
,Mouse
andGamePad
) now track the state of buttons as instances ofDigitalInput
, including the state of the previous tick, as well as how many ticks an input has been held for. Mouse
now supports arelative
mode, which can be used for mouse-lock in FPS-style games, and other uses.ImageData
can now be instantiated as a blank canvas, and modified/queried usingpset
/pget
, which allows for using loaded images as textures for alternate rendering techniques, as well as editing and saving images.- GamePad now has a
rumble(strength, duration)
method, for hardware and platforms which support this. Color.toString
now reports a human-readable hexcode.- DOME now opens its window at the center of the screen.
Bug Fixes
- DOME doesn't have to try and open a window now in order to report it's version, or verify other command-line parameters.
- For Mac OS X, DOME will now be statically linked with SDL 2.0.6, as prior versions appear to break gamepad support.
- Resizing the window programmatically on Mac OS X could lead to a de-sync between the window and mouse positioning.
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!
DOME 1.3.0-RC3
(This pre-release was produced just at the end of A Game By It's Cover 2020, and may have some outstanding bugs)
DOME v1.3.0-RC3 is now available 🎉
This update brings with it some frequently requested changes to the input handling mechanisms, as well as some interesting image manipulation routines.
New Features
- Input methods (
Keyboard
,Mouse
andGamePad
) now track the state of buttons as instances ofDigitalInput
, including the state of the previous tick, as well as how many ticks an input has been held for. Mouse
now supports arelative
mode, which can be used for mouse-lock in FPS-style games, and other uses.ImageData
can now be instantiated as a blank canvas, and modified/queried usingpset
/pget
, which allows for using loaded images as textures for alternate rendering techniques, as well as editing and saving images.- GamePad now has a
rumble(strength, duration)
method, for hardware and platforms which support this. Color.toString
now reports a human-readable hexcode.
Bug Fixes
- DOME doesn't have to try and open a window now in order to report it's version, or verify other command-line parameters.
- For Mac OS X, DOME will now be statically linked with SDL 2.0.6, as prior versions appear to break gamepad support.
- Resizing the window programmatically on Mac OS X could lead to a de-sync between the window and mouse positioning.
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!