Skip to content

Releases: domeengine/dome

DOME v1.6.1

11 May 11:41
a502a22
Compare
Choose a tag to compare

DOME v1.6.1 is now available 🎉

Image of DOME logo

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

22 Apr 19:21
b559a84
Compare
Choose a tag to compare

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!

Image of DOME logo

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 and Canvas.getTextArea can be used to calculate the maximum area needed to draw a string in the selected font.
  • Added Clipboard to the input module so you can access the system clipboard.
  • The Keyboard now has a handleText 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 and Keyboard.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.

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

14 Mar 10:39
Compare
Choose a tag to compare
DOME v1.6.0-M1 Pre-release
Pre-release

Milestone build of DOME with Font.getArea and some various other features/bugfixes.

DOME v1.5.2

27 Feb 16:05
86d2cd7
Compare
Choose a tag to compare

DOME v1.5.2 is now available 🎉

Image of DOME logo

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 and Canvas.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

16 Feb 12:05
4cae256
Compare
Choose a tag to compare

DOME v1.5.1 is now available 🎉

A quick bug-fix release following DOME JAM 2021!

Image of DOME logo

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

28 Jan 12:35
b850c05
Compare
Choose a tag to compare

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!

Image of DOME logo

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 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!

DOME v1.4.0 - The Jumbled JSON Update

03 Dec 23:33
Compare
Choose a tag to compare

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!

Image of DOME logo

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 a Vector
  • Color.hex now supports short hex codes.
  • Color.hex can optionally use alpha values (both short and long versions)
  • ImageData.transform now allows for global opacity and color tint effects.
  • Canvas now supports a clip 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

23 Oct 11:01
Compare
Choose a tag to compare

DOME v1.3.1 is now available 🎉

Image of DOME logo

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

17 Oct 14:49
Compare
Choose a tag to compare

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.

Image of DOME logo

New Features

  • Input methods (Keyboard, Mouse and GamePad) now track the state of buttons as instances of DigitalInput, including the state of the previous tick, as well as how many ticks an input has been held for.
  • Mouse now supports a relative 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 using pset/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

14 Oct 12:14
03ed70e
Compare
Choose a tag to compare
DOME 1.3.0-RC3 Pre-release
Pre-release

(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.

Image of DOME logo

New Features

  • Input methods (Keyboard, Mouse and GamePad) now track the state of buttons as instances of DigitalInput, including the state of the previous tick, as well as how many ticks an input has been held for.
  • Mouse now supports a relative 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 using pset/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!