Skip to content

Version 0.6.0

Released May 14th, 2025

Breaking Changes

  • Vector.from_tuple name change to from_iterable and supports Vector of the same dimension, numpy arrays, tuple, or list.
  • Vectors can now only interact with objects of it's own type (~IntVector cannot interact with ~FloatVector, vice versa, etc.).
  • Interval will not longer be found in the common module and will now come with wame as is.
  • Common module now renamed to Utils. This reflects new changes with developer utilities and QoL features.

Additions

  • Vector object changes:
    1. 2D vectors inherit BaseVector2, 3D vectors inherit BaseVector3, to which both BaseVector2/3 inherit BaseVector.
    2. Now use numpy.ndarray in the backend instead of hard-coded attributes like x, y, and z.
    3. Memory footprint of each is slightly smaller due to implementation of __slots__.
    4. Differences between all old and new Vector objects:
      • abs() now supported (measures magnitude)
      • len() now supported (2D is always 2, 3D is always 3)
      • iter() now supported as well as unpacking (gets internal x and y, z if 3D)
      • >= conditionals now supported
      • v[0] and v[1] get and set now supported
      • > conditionals now supported
      • // arithmetic now supported
      • <= conditionals now supported
      • < conditionals now supported
      • * arithmetic now supported
      • - negative/flip arithmetic now supported
      • Reversed + and - arithmetic now supported
      • str() now supported (to print values if necessary)
      • / arithmetic now supported
      • copy() method addition
      • dot() method addition
      • magnitude() method addition
      • normalize() method addition
  • Steppable game loop in the Engine (to support custom GUI applications rather than games):
    1. If you'd like to render frames only when you ask the Engine to:
    2. Disable the game loop using Engine.set_game_loop_enabled(False) (True to switch back).
    3. Poll the update/render Scene methods using Engine.step_game_loop.
  • Pipeline now inherits enum.Enum instead of using raw int values in place of PYGAME and OPENGL.
  • Interval now inherits enum.Enum.
  • New Tween object:
    1. Animates various objects' (like UI elements, pygame.Rect, etc.) size, color, position, etc.
    2. Scene has an instance of Tween under Scene.tween.
    3. Uses easing methods like LINEAR, QUAD_IN_OUT, etc. under wame.utils.Easing.
    4. Dispatches event under Scene.on_tweened when the tween is successfully completed.