2.3.0
pygame-ce 2.3.0
โ๏ธ๐๐๏ธ๐๐๐๐๏ธ๐นโ๏ธ๐๐๏ธ
pip uninstall pygame
pip install pygame-ce --upgrade
โ๏ธ๐๐๏ธ๐๐๐๐๏ธ๐นโ๏ธ๐๐๏ธ
Welcome to the newest release of pygame-ce! Summer is near (here in the northern hemisphere), and with that comes the time of vacations and game jams. The pygame-ce team has been working hard on improving several things for the last few months so you can enjoy your programming activity. You will be seeing a lot of light during these months, so for a change you can now view the pygame-ce documentation in dark mode. Outside of that, there have been a lot of other improvements, bug fixes, and other stuff which are listed below. We hope you will enjoy the changes, and we will continue to improve our beloved library in the following releases.
Besides the dark mode docs, a big story in this release are improvements to the experimental pygame._sdl2 module. It now has non-skeleton documentation, and the Window class was completely rewritten in C to enable better integration with the rest of pygame-ce.
Check out what we've been working on!
What's Changed
Additions
- @durkisneer1 added the
pygame.Surface.get_frect()
convenience method. #2071 - @yunline added
pygame.mixer.Channel.set_source_location()
(for panning-like effects). #1844 - @PurityLake added keyword argument support to
Font.render()
. #2000 - @Sjmarf improved a font warning message emitted when requested system fonts are not found. For example:
The system font 'comicsans2' couldn't be found. Did you mean: 'comicsans', 'comicsansms'?
#2147
Bug Fixes
- @ankith26 fixed audio issues on older Macs (like pygame.mixer wouldn't work at all). If you see
Library not loaded: @loader_path/libmp3lame.0.dylib
, this is fixed now. #2118 - @Starbuck5 fixed a regression where "tracker music" (XM/MOD/IT files) would no longer play on Windows. #2152
- @Starbuck5 fixed a regression in
pygame.transform.scale()
when scaling to a destination surface with a different pixel format. #2172 - @yunline fixed a
SystemError
issue when disconnecting and reconnecting controllers. #2048 - @Temmie3754 fixed issue when converting surface to 8 bit surface with palettes. #2031
- @yunline made it so pygame-ce will raise an error if source and destination surfaces are the same in
pygame.transform.(box/gaussian)_blur
, rather than just producing incorrect results. #2161 - @cbdj fixed the Android build configuration. #2249
Optimizations
- @ScriptLineStudios optimized a case for
pygame.draw.polygon
when drawing triangles. #2126 - @itzpr3d4t0r optimized
pygame.Rect.move
,pygame.Rect.move_ip
(and corresponding FRect methods) with FASTCALL, a 20-40% speedup. #2040 - @Matiiss optimized
pygame.Surface.get_(f)rect
with FASTCALL, achieving a 20-40% speedup as well. #2179 - @Starbuck5 slightly improved create/destroy performance and reduced memory usage of
pygame.math.Vector(2/3)
(enabling future optimizations). #2174
Deprecations
- @MyreMylar added deprecation warnings for
pygame.sprite.RenderPlain
,pygame.sprite.RenderClear
andpygame.sprite.OrderedUpdates
(will be removed in pygame-ce 2.4.0). #2036 - @SSS-Says-Snek added deprecation warnings for
pygame.image.tostring
andpygame.image.fromstring
in favor of(to/from)bytes
. #2101
Documentation, Examples, and Type Hints
- @Notenlish added an optional dark mode to the pygame-ce documentation! What an impressive first contribution! This can be enabled/disabled by the sun/moon icon next to the search bar in the upper right. @MyreMylar and @rethanon also contributed to fix a few styling gremlins that emerged.. #2122, #2226, #2215, #2248
- @oddbookworm, @Temmie3754, @narilee2006, @Starbuck5 all worked on "pygame-ce-ification"-- making sure the documentation and code reflect "pygame-ce" rather than "pygame" in relevant places. #2203, #2133, #2112, #2194
- @Mega-JC vastly expanded the experimental pygame._sdl2 documentation. #2128
- @Starbuck5, @narilee2006, and @yunline contributed miscellaneous documentation improvements. #2183, #2096, #2099, #2106
- @that1guy232 improved several of the pygame-ce example programs, making them more modern and consistent. #2204, #2191, #2193
- @oddbookworm added type hints for
pygame.PixelArray
. #2113 - @bilhox and @jd-develop worked to translate the README into French, @yolowex translated the README into Persian. #2140, #2187, #2201
Operations and Code Quality
- @yunline rewrote the _sdl2.video.Window class into C from Cython, which is huge for our processes moving forward. #2114
- @yunline changed the default _sdl2.video.Window window title to match pygame.display. #2200
- @MyreMylar, @ankith26, and @Starbuck5 kept pygame-ce operations moving forward. #2213, #2173, #2212, (+release PRs)
- @yunline and @Starbuck5 worked explicitly on code quality to stay resilient for future changes. #1939, #2196, #2210, #2108, #2123, #2195
New Contributors
- @narilee2006 made their first contribution in #2096
- @durkisneer1 made their first contribution in #2071
- @bilhox made their first contribution in #2140
- @that1guy232 made their first contribution in #2191
- @jd-develop made their first contribution in #2187
- @yolowex made their first contribution in #2201
- @Notenlish made their first contribution in #2122
- @cbdj made their first contribution in #2249
Other News
DaFluffyPotato gave us a shoutout in a video about pygame-ce on his channel, titled "Pygame CE - Better & Faster." Check it out if you're interested: https://www.youtube.com/watch?v=pYq9edSUaOw
Full Changelog: 2.2.1...2.3.0