v0.8 release candidate 1: PySDL
Pre-releaseThis release does only two things: dramatically optimizes event dispatch and replaces PyGame with PySDL2.
First, the simple one: event dispatch performance was dramatically optimized, because the performance of the previous method was just bad.
The big thing is that PursuedPyBear no longer depends on PyGame and uses PySDL2 instead. This was done because PyGame has never supported Python 3.8 in a final release, despite 3.8 being released in October, 2019. We are now using PySDL2 instead. This should require no changes from our uses, although Linux uses will require additional steps to install the SDL libraries (Debian: libsdl2-2.0-0 libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 libsdl2-gfx-1.0-0
).
Additionally, a pass was made at improving the docs: Double checking the accuracy of existing documentation, adding detailed documentation to ppb.engine.GameEngine and adding our first discussion pages. One discussing the design and constraints of the Asset system and another outlining the principles of ppb as a project.
We anticipate this release to have no impact on the vast majority of users, and minimal impact on the rest.
Added:
- Python 3.8 is now supported
Asset.free()
: Function that can be called by__del__()
to release resources held. (#387)- Sounds now supports
.wav
, AIFF, VOC, OGG/Vorbis, MP3, and FLAC, as well as potentially more depending on the system configuration. (#387) - Documentation pages. (#416, #375, #423)
Fixed:
Changed:
BadEventHandlerException
was moved fromppb.eventlib
toppb.errors
. (#402)- Documentation updates (#404)
- Various performance improvements. (#402, #415)
Removed:
ppb.eventlib
,EventMixin
, and__event__()
. Everything they used to do has been inlined into the Engine. (#402)
Internal:
- The release process was changed to be more automatic with significantly fewer human steps. (#380)