Version 0.4.0
Released May 5th, 2025
Breaking Changes
- Removed the
settingsOverrideparameter in theEngineconstructor. - Renamed the
Rendererclass toPipelineto make it more understandable/readable. - Complete rewrite of the UI system:
Frameobject: Container for all UI objects - AllScenes have a nativeFrameunderScene.frame.- Position and sizes can now be absolute (pixel-based) or relatively sized (scaled by percentage).
- Children of
Frames inherit theFrame's size and position. - Any subclass of the
Renderablecan be enabled/disabled. - When rendering objects manually instead of through a parent->children render like
Frame, useask_render()notrender()(to permit enable/disable behavior).
- UI system can be found in the
wame.uimodule. - Vectors can be found in the
wame.vectormodule. Fontobjects have been removed. UsePygame'sfontmodule.OPENGLPipelineis now only flagged in window instantiation and background colors in theEngine. All otherOpenGLcode is managed by the user (unless inuimodule).Engine._scenewas renamed to.sceneto promote external access.Scene.on_start()was removed. Please only useScene.on_first().Sceneon_update()andon_render()methods are now required.- All object parameter names are now using
snake_caserather thancamelCase(byPythonconvention).
Additions
- Ability to pass in data between scenes when switching them using the
Engineset_scenemethod. - Colors have been added in the
wame.colormodule. - 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.commonmodule with some commonly necessary functions and objects:Keyobjects and checkers.
- All
Scenes must defineon_renderandon_updatefor theSceneto be instantiated. - Mouse button argument added when
Scenedispatcheson_mouse_pressedandon_mouse_releasedevents. Engineis now a singleton object as now only one instance can be created.Engine.pipelineis now added as a property, so you can check the pipeline during runtime if necessary.- Python
3.7+is now supported, instead of3.10+.
Fixes
- Never called a scene's
on_firstevent when the scene was switched to after another scene was already loaded. - Any arguments requiring a
wamevector object should now be able to accepttupleobjects. Engineset_mouse_visibleandset_mouse_lockednever updated the actual state of the mouse's visibility or grab status.Enginewill no longer automatically clear the console on startup.max_fpsSettingwasn't updating theEngine's set FPS.Engine().scenewasn't set whenon_firstwas called.