Skip to content

Version 0.8.0

Released July 18th, 2025

Breaking Changes

  • Rewritten ui module:
    1. Base implementation under Element.
    2. Reintroduction to Anchor - allowing anchored transform data to make things easier.
    3. Parent/child changes dispatched down the chain - if you change the transform of the parent, all children will change.
    4. Transform (position and size) data is found under the bounds attribute.
    5. OpenGL code is no longer maintained:
      • Due to a vast amount of OpenGL contexts made by developers, it's impossible to make one renderer that works for everyone.
      • We tried with y_flipped in the past, but it didn't work effectively enough to make this reasonable.
      • To utilize OpenGL rendering, UI elements' render_opengl method must be overwritten with your implementation of OpenGL render code.
      • All necessary objects needed to render with OpenGL should be exposed per UI element, and should be updated every time the content of the UI element is updated.
    6. All tweening-related functionality is localized to each UI object.
    7. Only Frame and Text will be maintained. All other implementations like Image, Button, Checkbox, etc. may be added in the future.
  • All on_joy_... methods in Scene have been renamed to on_joystick_... to maintain readability.
  • Scene.on_tween has been removed as each UI element has it's own tweening system and callback.

Additions

  • New version variable under wame module for dynamic/static version checking.
  • Allowed to change fixed update interval during gameloop (if required).
  • New plugin module:
    1. Allows different developers to share code and run them in different engine instances.
    2. For example, if one developer makes an FPS display that other developers want to use, other developers can just import the code - just drag and drop.
    3. Plugins can be stored on our Wame-Plugins GitHub repository. To add to this list, contact us in our Discord.
    4. Documentation page added for making plugins as well.
  • New logging system:
    1. Engine has a built-in logger, but isn't exposed to it's public API.
    2. Each Plugin will integrate with the Engine's logger as a separate source.
    3. Since print calls are expensive and timely in game loops, each log is queued and printed in a separate thread.

Fixes

  • Engine.set_scene attempted to del the current scene when switching but had no deleter.
  • Scene.on_key_pressing event listener dispatched events to on_key_pressed rather than on_key_pressing.
  • Scene.on_key_pressing event listener was dispatching scan codes rather than key codes.