Skip to content

Version 0.4.0

Released May 5th, 2025

Breaking Changes

  • Removed the settingsOverride parameter in the Engine constructor.
  • Renamed the Renderer class to Pipeline to make it more understandable/readable.
  • Complete rewrite of the UI system:
    1. Frame object: Container for all UI objects - All Scenes have a native Frame under Scene.frame.
    2. Position and sizes can now be absolute (pixel-based) or relatively sized (scaled by percentage).
    3. Children of Frames inherit the Frame's size and position.
    4. Any subclass of the Renderable can be enabled/disabled.
    5. When rendering objects manually instead of through a parent->children render like Frame, use ask_render() not render() (to permit enable/disable behavior).
  • UI system can be found in the wame.ui module.
  • Vectors can be found in the wame.vector module.
  • Font objects have been removed. Use Pygame's font module.
  • OPENGL Pipeline is now only flagged in window instantiation and background colors in the Engine. All other OpenGL code is managed by the user (unless in ui module).
  • Engine._scene was renamed to .scene to promote external access.
  • Scene.on_start() was removed. Please only use Scene.on_first().
  • Scene on_update() and on_render() methods are now required.
  • All object parameter names are now using snake_case rather than camelCase (by Python convention).

Additions

  • Ability to pass in data between scenes when switching them using the Engine set_scene method.
  • Colors have been added in the wame.color module.
  • All vector objects can now be compared to each other to see if their values match natively.
  • All vector objects are now hashable.
  • The rendering pipeline can now be switched during engine runtime (not changeable during gameloop, however), between scene swaps, etc.
  • New wame.common module with some commonly necessary functions and objects:
    1. Key objects and checkers.
  • All Scenes must define on_render and on_update for the Scene to be instantiated.
  • Mouse button argument added when Scene dispatches on_mouse_pressed and on_mouse_released events.
  • Engine is now a singleton object as now only one instance can be created.
  • Engine.pipeline is now added as a property, so you can check the pipeline during runtime if necessary.
  • Python 3.7+ is now supported, instead of 3.10+.

Fixes

  • Never called a scene's on_first event when the scene was switched to after another scene was already loaded.
  • Any arguments requiring a wame vector object should now be able to accept tuple objects.
  • Engine set_mouse_visible and set_mouse_locked never updated the actual state of the mouse's visibility or grab status.
  • Engine will no longer automatically clear the console on startup.
  • max_fps Setting wasn't updating the Engine's set FPS.
  • Engine().scene wasn't set when on_first was called.