โ๏ธ๐๐๏ธ๐๐๐๐๏ธ๐นโ๏ธ๐๐๏ธ
`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` and `pygame.sprite.OrderedUpdates` (will be removed in pygame-ce 2.4.0). 2036
* SSS-Says-Snek added deprecation warnings for `pygame.image.tostring` and `pygame.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**: https://github.com/pygame-community/pygame-ce/compare/2.2.1...2.3.0