NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2658 most downloaded on PyPI
Python Game Development
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 8 days to 9 months
Most releases are documented
notes for 19 of 24 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
63 releases · first in 2016
This is a bugfix release for a new version of Python (3.13) that is out soon.
This is a bugfix release for a new version of Python (3.13) that is out soon.
Full Changelog: https://github.com/pygame/pygame/compare/2.6.0...2.6.1
This is a bugfix release for a new version of Python (3.13) that is out soon.
Full Changelog: 2.6.0...2.6.1
One column per quarter.
python3 setup.py lint is deprecated: Let's lint with pre-commit by @cclauss in https://github.com/pygame/pygame/pull/4200
🎉 🎈
<a href="https://github.com/pygame/pygame/issues" title="Please add issues here">Thanks</a>
<br><br><br> <div align="right"> python -m pip install -U pygame==2.6.0 </div> <br><br><br>
SDL_VIDEODRIVER=dummy by @emilytrau in https://github.com/pygame/pygame/pull/4169python3 setup.py lint by @cclauss in https://github.com/pygame/pygame/pull/4179python3 setup.py lint is deprecated: Let's lint with pre-commit by @cclauss in https://github.com/pygame/pygame/pull/4200🎉 🎈
SDL_VIDEODRIVER=dummy by @emilytrau in #4169python3 setup.py lint by @cclauss in #4179python3 setup.py lint is deprecated: Let's lint with pre-commit by @cclauss in #4200> This is a pre-release only for testing.
This is a pre-release only for testing.
python -m pip install pygame==2.6.0.dev2
https://github.com/pygame/pygame/issues
Ye olde bug fix release. Yee haw!
Ye olde bug fix release. Yee haw!
Find an issue? https://github.com/pygame/pygame/issues
Ye olde bug fix release. Yee haw!
Find an issue? https://github.com/pygame/pygame/issues
Fixed occasionally failing to open the clipboard on Windows
This is a bug fix release.
aliens.py by @kxkw in https://github.com/pygame/pygame/pull/3950This is a bug fix release.
aliens.py by @kxkw in #3950` Amorphic non-linear soul eating 🍄 bubble bath of sonic funsies c- 🦋 atapulted through-air in a fru- 🍄 ity looping manner. And such l- 🦋 ike init? De
Amorphic non-linear soul eating 🍄
bubble bath of sonic funsies c- 🦋
atapulted through-air in a fru- 🍄
ity looping manner. And such l- 🦋
ike init? Description: fearless 🍄
python3.12 -m pip install pygame -U
As usual write about your https://github.com/pygame/pygame/issues and maybe in 8 years we can close it without comment. Or maybe, just maybe someone will fix it sooner. Maybe.
⠀ ⠀ 🤠
🎮 🎮 🎮
🎮 🎮 🎮 Howdy.
👇 🎮🎮 👇 I'm the sheriff
🎮 🎮 of changes.
🎮 🎮
👢 👢
https://github.com/pygame/pygame/issues
Amorphic non-linear soul eating 🍄
bubble bath of sonic funsies c- 🦋
atapulted through-air in a fru- 🍄
ity looping manner. And such l- 🦋
ike init? Description: fearless 🍄
python3.12 -m pip install pygame -U
As usual write about your https://github.com/pygame/pygame/issues and maybe in 8 years we can close it without comment. Or maybe, just maybe someone will fix it sooner. Maybe.
⠀ ⠀ 🤠
🎮 🎮 🎮
🎮 🎮 🎮 Howdy.
👇 🎮🎮 👇 I'm the sheriff
🎮 🎮 of changes.
🎮 🎮
👢 👢
> One of life's great pleasures; a pygame pre-release.
One of life's great pleasures; a pygame pre-release. For testing only.
-- Almost as good as walking on grass with your bare feet.
python -m pip install pygame==2.5.0.dev2
If you spot a bug scurrying about: https://github.com/pygame/pygame/issues
<br><br>
One of life's great pleasures; a pygame pre-release.
For testing only.-- Almost as good as walking on grass with your bare feet.
python -m pip install pygame==2.5.0.dev2
If you spot a bug scurrying about:
https://github.com/pygame/pygame/issues
👢👞👡👠👟🥿🥿🥾🥾🩰👡👡🥿👞👟👟🩰👠👢👞🥿🥾👢👠👠🩰 👠👟 python3 -m pip install pygame==2.4.0 👞👡🥿👟🥾👡🩰🩰🥾🩰👠👢👢👟👠🥾👞👡👢👞🥿🥿👟👠🥿👠
👢👞👡👠👟🥿🥿🥾🥾🩰👡👡🥿👞👟👟🩰👠👢👞🥿🥾👢👠👠🩰 👠👟 python3 -m pip install pygame==2.4.0 👞👡🥿👟🥾👡🩰🩰🥾🩰👠👢👢👟👠🥾👞👡👢👞🥿🥿👟👠🥿👠
<br><br><br> If you notice any issues, please contribute a report here: https://github.com/pygame/pygame/issues
As well as a number of bug fixes, this version includes a new version of SDL, which includes a number of improvements in areas like vsync, game controller support, audio quality, and IME text input support.
The release notes for the SDL 2.26.x series has more information
cursors.Cursor.copy() by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3762👢👞👡👠👟🥿🥿🥾🥾🩰👡👡🥿👞👟👟🩰👠👢👞🥿🥾👢👠👠🩰
👠👟 python3 -m pip install pygame==2.4.0
👞👡🥿👟🥾👡🩰🩰🥾🩰👠👢👢👟👠🥾👞👡👢👞🥿🥿👟👠🥿👠
If you notice any issues, please contribute a report here: https://github.com/pygame/pygame/issues
As well as a number of bug fixes, this version includes a new version of SDL, which includes a number of improvements in areas like vsync, game controller support, audio quality, and IME text input support.
The release notes for the SDL 2.26.x series has more information
cursors.Cursor.copy() by @MarcellPerger1 in #3762Kicking off the pygame 2.4.0 series.
Kicking off the pygame 2.4.0 series.
👢👞👡👠👟🥿🥿🥾🥾🩰👡👡🥿👞👟👟🩰👠👢👞🥿🥾👢👠👠🩰 👠👟 python3 -m pip install pygame==2.4.0.dev2 👞👡🥿👟🥾👡🩰🩰🥾🩰👠👢👢👟👠🥾👞👡👢👞🥿🥿👟👠🥿👠
This is a release for testing only. https://github.com/pygame/pygame/issues
As well as a number of bug fixes, this version includes a new version of SDL, which includes a number of improvements in areas like vsync, game controller support, audio quality, and IME text input support.
The release notes for the SDL 2.26.x series has more information
cursors.Cursor.copy() by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3762Kicking off the pygame 2.4.0 series.
👢👞👡👠👟🥿🥿🥾🥾🩰👡👡🥿👞👟👟🩰👠👢👞🥿🥾👢👠👠🩰
👠👟 python3 -m pip install pygame==2.4.0.dev2
👞👡🥿👟🥾👡🩰🩰🥾🩰👠👢👢👟👠🥾👞👡👢👞🥿🥿👟👠🥿👠
This is a release for testing only.
https://github.com/pygame/pygame/issues
As well as a number of bug fixes, this version includes a new version of SDL, which includes a number of improvements in areas like vsync, game controller support, audio quality, and IME text input support.
The release notes for the SDL 2.26.x series has more information
cursors.Cursor.copy() by @MarcellPerger1 in #3762Fixup deprecation error on MacOS 11 by @Tobias-Fischer in https://github.com/pygame/pygame/pull/3663
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐 🌼🌸 python3 -m pip install pygame==2.3.0 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
Issue? ---> https://github.com/pygame/pygame/issues
:return from sysfont._parse_font_entry_win by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3732special_flags argument to Group.draw by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3722pygame.quit by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3755🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
🌼🌸 python3 -m pip install pygame==2.3.0
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
Issue? ---> https://github.com/pygame/pygame/issues
:return from sysfont._parse_font_entry_win by @MarcellPerger1 in #3732special_flags argument to Group.draw by @MarcellPerger1 in #3722pygame.quit by @MarcellPerger1 in #3755Fixup deprecation error on MacOS 11 by @Tobias-Fischer in https://github.com/pygame/pygame/pull/3663
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐 🌼🌸 python3 -m pip install pygame==2.3.0.dev2 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
Issue? ---> https://github.com/pygame/pygame/issues k thnx
:return from sysfont._parse_font_entry_win by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3732special_flags argument to Group.draw by @MarcellPerger1 in https://github.com/pygame/pygame/pull/3722👟🥿👠🥾
Deprecate gamma and _sdl2 window brightness functionality by @SSS-Says-Snek in https://github.com/pygame/pygame/pull/3622
🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
👻python3 -m pip install pygame==2.2.0
💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻
Please file an issue if you notice a problem: https://github.com/pygame/pygame/issues
tp_names, changed all to pygame.module.Type by @Matiiss in https://github.com/pygame/pygame/pull/3515SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS by @zoldalma999 in https://github.com/pygame/pygame/pull/3546pygame.math doc enhancements by @Matiiss in https://github.com/pygame/pygame/pull/3581list_cameras being empty on linux by @ankith26 in https://github.com/pygame/pygame/pull/3594__round__ method for vectors by @Matiiss in https://github.com/pygame/pygame/pull/3559Texture.update by @zoldalma999 in https://github.com/pygame/pygame/pull/3548music.set_pos current error message with SDL_GetError() by @Matiiss in https://github.com/pygame/pygame/pull/3641pygame.image.tobytes docs by @oddbookworm in https://github.com/pygame/pygame/pull/3657list to using copy in pygame.sprite by @Matiiss in https://github.com/pygame/pygame/pull/3655bytes and not AnyStr) by @ankith26 in https://github.com/pygame/pygame/pull/3395Please file an issue if you notice a problem: https://github.com/pygame/pygame/issues
Deprecate gamma and _sdl2 window brightness functionality by @SSS-Says-Snek in https://github.com/pygame/pygame/pull/3622
🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
👻python3 -m pip install pygame==2.2.0.dev2
💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴
This release is for testing.
Please file an issue if you notice a problem: https://github.com/pygame/pygame/issues
tp_names, changed all to pygame.module.Type by @Matiiss in https://github.com/pygame/pygame/pull/3515SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS by @zoldalma999 in https://github.com/pygame/pygame/pull/3546pygame.math doc enhancements by @Matiiss in https://github.com/pygame/pygame/pull/3581list_cameras being empty on linux by @ankith26 in https://github.com/pygame/pygame/pull/3594__round__ method for vectors by @Matiiss in https://github.com/pygame/pygame/pull/3559Texture.update by @zoldalma999 in https://github.com/pygame/pygame/pull/3548music.set_pos current error message with SDL_GetError() by @Matiiss in https://github.com/pygame/pygame/pull/3641pygame.image.tobytes docs by @oddbookworm in https://github.com/pygame/pygame/pull/3657list to using copy in pygame.sprite by @Matiiss in https://github.com/pygame/pygame/pull/3655bytes and not AnyStr) by @ankith26 in https://github.com/pygame/pygame/pull/3395Please file an issue if you notice a problem: https://github.com/pygame/pygame/issues
Remove deprecated blend argument from test and docs by @kevin-pease in https://github.com/pygame/pygame/pull/3281
<a href="https://pygame.org/" title="wander off to the pygame website"><img src="https://raw.githubusercontent.com/pygame/pygame/main/docs/reST/_static/pygame_logo.svg" alt="pygame so there" width="320" /></a>
🌹
⊂_ヽ
\\ ```
\( ͡° ͜ʖ ͡°)
> ⌒ヽ
/ へ\
/ / \\
レ ノ ヽ_つ python -m pip install -U pygame==2.1.3 --user
/ /
/ /|
( (ヽ
| |、\
| 丿 \ ⌒)
| | ) /
ノ ) Lノ
(_/
|
_|______________________________________________________________
60 contributors, 34 new contributors
_sdl2.video.Image.flipX and .flipY by @avaxar in https://github.com/pygame/pygame/pull/2978__new__ and __init__ functions for some types by @zoldalma999 in https://github.com/pygame/pygame/pull/3001textinput by @blankRiot96 in https://github.com/pygame/pygame/pull/3050get_drivers by @zoldalma999 in https://github.com/pygame/pygame/pull/3132pygame.context module by @Starbuck5 in https://github.com/pygame/pygame/pull/3100pygame.get_pref_locales by @ankith26 in https://github.com/pygame/pygame/pull/3038sysfont.get_fonts stop returning None, warn fc-list issues by @ankith26 in https://github.com/pygame/pygame/pull/3159display.set_mode by @PurityLake in https://github.com/pygame/pygame/pull/3172is not None checks in sprite module by @Matiiss in https://github.com/pygame/pygame/pull/3271Color.set_length by @blankRiot96 in https://github.com/pygame/pygame/pull/3352SDL_mixer and SDL_ttf to 2.6.2 and 2.20.1 respectively by @ankith26 in https://github.com/pygame/pygame/pull/3433examples/mask.py by @pycoinfu in https://github.com/pygame/pygame/pull/3455🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴 👻python3 -m pip install pygame==2.1.3.dev8 💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴
<br><br><br>
🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
👻python3 -m pip install pygame==2.1.3.dev8
💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴
<br><br><br>
This is a pre-release for testing. https://github.com/pygame/pygame/issues
Thanks to all.
Full Changelog: https://github.com/pygame/pygame/compare/2.1.3.dev6...2.1.3.dev8
Remove deprecated blend argument from test and docs by @kevin-pease in https://github.com/pygame/pygame/pull/3281
<br><br><br>
🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
👻python3 -m pip install pygame==2.1.3.dev6
💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴
<br><br><br>
It's a lot.
<br><br><br>
This is a pre-release for testing and giggles only. Got issues? Don't just tell your therapist. Let us know too? Thanks to all.
<br><br>
get_drivers by @zoldalma999 in https://github.com/pygame/pygame/pull/3132pygame.context module by @Starbuck5 in https://github.com/pygame/pygame/pull/3100pygame.get_pref_locales by @ankith26 in https://github.com/pygame/pygame/pull/3038sysfont.get_fonts stop returning None, warn fc-list issues by @ankith26 in https://github.com/pygame/pygame/pull/3159display.set_mode by @PurityLake in https://github.com/pygame/pygame/pull/3172is not None checks in sprite module by @Matiiss in https://github.com/pygame/pygame/pull/3271Color.set_length by @blankRiot96 in https://github.com/pygame/pygame/pull/3352SDL_mixer and SDL_ttf to 2.6.2 and 2.20.1 respectively by @ankith26 in https://github.com/pygame/pygame/pull/3433examples/mask.py by @pycoinfu in https://github.com/pygame/pygame/pull/3455Full Changelog: https://github.com/pygame/pygame/compare/2.1.3.dev4...2.1.3.dev6
Nothing published for this version
There are a couple of quick fixes for issues in the last release in this one.
There are a couple of quick fixes for issues in the last release in this one.
Full Changelog: https://github.com/pygame/pygame/compare/2.1.1...2.1.2
New contributor @CAPTAIN1947 deprecated sprite.LayeredDirty.set_timing_treshold in favor of set_timing_threshold. #2921
Don't worry, relax... have a pygame.
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻 🌼🌸 python3 -m pip install pygame==2.1.1 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
The north enters a winter solstice and the south a summer solstice.
The shortest day of the year for people up top,
and the longest day of the year for people down under.
For people in the middle, it's pretty much the same every day ;)
Whatever the length of your day, this pygame is for you.
Before we get to What's new in pygame 2.1.1...
At the bottom of this post we have a special treat... some games people have made this year. Some of the themes: Aliens, moose, cars, giant robots, trees, and... menus
<a href="#ggames"><img width="150" src="https://img.itch.zone/aW1nLzU2NDIwMDUucG5n/original/Yl3rUc.png" /> <img width="150" src="https://img.itch.zone/aW1hZ2UvMTExMzk4MC82NjQ2NTY5LnBuZw==/original/D36ryh.png" /> <img width="150" src="https://github.com/davidpendergast/circuits/raw/master/gifs/119-tele-effect.gif?raw=true" /> <img width="150" src="https://img.itch.zone/aW1hZ2UvODc0Mjc5LzQ5MjY0MDYuZ2lm/794x1000/e69j1m.gif" /> <img width="150" src="https://img.itch.zone/aW1hZ2UvMTI1MTEzMS83Njk4ODIyLmpwZWc=/794x1000/LV0DAn.jpeg" /> <img width="150" src="https://repository-images.githubusercontent.com/342905347/8c764600-a6cd-11eb-8854-8a5d35ea4e94" /> <img width="150" src="https://camo.githubusercontent.com/2270e3b3e94503fbdff874ec14fb5263f5ab4ff42f97110808cd660bbf05cb82/687474703a2f2f69332e7974696d672e636f6d2f76692f42795f636273616376544d2f6d617872657364656661756c742e6a7067" /> <img width="150" src="https://static.jam.vg/raw/ed9/81/z/445e1.gif" /> <img width="150" src="https://pygame-menu.readthedocs.io/en/4.2.0/_images/first_steps.png" /> <img width="150" src="https://img.itch.zone/aW1hZ2UvMTE4ODEwMy83MDkyNjYxLmdpZg==/794x1000/AN9Vdb.gif" /> <img width="150" src="https://raw.githubusercontent.com/novialriptide/novialriptide.github.io/main/images/projects/gravity.gif" /> </a>
But first...
We have a new SDL 2.0.18 release which brings a lot of fixes and optimizations. <details> <summary>What changed in SDL 2.0.18?</summary> <br>
<div data-pjax="true" data-test-selector="body-content" data-view-component="true" class="markdown-body my-3"><p>In addition to lots of bug fixes, here are the major changes in this SDL release:</p> <p>General:</p> <ul> <li>The SDL wiki documentation and development headers are automatically kept in sync</li> <li>Each function has information about in which version of SDL it was introduced</li> <li>SDL-specific CMake options are now prefixed with 'SDL_'. Be sure to update your CMake build scripts accordingly!</li> <li>Added the hint SDL_HINT_APP_NAME to let SDL know the name of your application for various places it might show up in system information</li> <li>Added SDL_RenderGeometry() and SDL_RenderGeometryRaw() to allow rendering of arbitrary shapes using the SDL 2D render API</li> <li>Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate application data with an SDL texture</li> <li>Added SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() to convert between window coordinates and logical render coordinates</li> <li>Added SDL_RenderSetVSync() to change whether a renderer present is synchronized with vblank at runtime</li> <li>Added SDL_PremultiplyAlpha() to premultiply alpha on a block of SDL_PIXELFORMAT_ARGB8888 pixels</li> <li>Added a window event SDL_WINDOWEVENT_DISPLAY_CHANGED which is sent when a window changes what display it's centered on</li> <li>Added SDL_GetWindowICCProfile() to query a window's ICC profile, and a window event SDL_WINDOWEVENT_ICCPROF_CHANGED that is sent when it changes</li> <li>Added the hint SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY to allow EGL windows to be transparent instead of opaque</li> <li>SDL_WaitEvent() has been redesigned to use less CPU in most cases</li> <li>Added SDL_SetWindowMouseRect() and SDL_GetWindowMouseRect() to confine the mouse cursor to an area of a window</li> <li>You can now read precise mouse wheel motion using 'preciseX' and 'preciseY' event fields</li> <li>Added SDL_GameControllerHasRumble() and SDL_GameControllerHasRumbleTriggers() to query whether a game controller supports rumble</li> <li>Added SDL_JoystickHasRumble() and SDL_JoystickHasRumbleTriggers() to query whether a joystick supports rumble</li> <li>SDL's hidapi implementation is now available as a public API in SDL_hidapi.h</li> </ul> <p>Windows:</p> <ul> <li>Improved relative mouse motion over Windows Remote Desktop</li> <li>Added the hint SDL_HINT_IME_SHOW_UI to show native UI components instead of hiding them (defaults off)</li> </ul> <p>Windows/UWP:</p> <ul> <li>WGI is used instead of XInput for better controller support in UWP apps</li> </ul> <p>Linux:</p> <ul> <li>Added the hint SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME to set the activity that's displayed by the system when the screensaver is disabled</li> <li>Added the hint SDL_HINT_LINUX_JOYSTICK_CLASSIC to control whether /dev/input/js* or /dev/input/event* are used as joystick devices</li> <li>Added the hint SDL_HINT_JOYSTICK_DEVICE to allow the user to specify devices that will be opened in addition to the normal joystick detection</li> <li>Added SDL_LinuxSetThreadPriorityAndPolicy() for more control over a thread priority on Linux</li> </ul> <p>Android:</p> <ul> <li>Added support for audio output and capture using AAudio on Android 8.1 and newer</li> <li>Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init()</li> </ul> <p>Apple Arcade:</p> <ul> <li>Added SDL_GameControllerGetAppleSFSymbolsNameForButton() and SDL_GameControllerGetAppleSFSymbolsNameForAxis() to support Apple Arcade titles</li> </ul> <p>iOS:</p> <ul> <li>Added documentation that the UIApplicationSupportsIndirectInputEvents key must be set to true in your application's Info.plist in order to get real Bluetooth mouse events.</li> <li>Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init()</li> </ul></div> </details>
We also have a new Vector2d.copy() method, a way to check if rect in rect. Some draw assembly optimizations are enabled on aarch64 (M1 and rasbperry pi), and rect drawing is much faster.
Work continues on code cleanup, and we reached a milestone where all PRs are checked for code formatting and linting. Work on enforcing stricter C level static analysis checks is in progress. Our examples were cleaned up to use simplified color names, and semantic variable names for colors (instead of naming the variables after colors). Work on other cleanups progresses too... but we can tell you about that in the next release notes!
-O3 in #2876pygame.draw.rect bug where unfilled drawn rects had weird corners in #2927. In the process of this pygame.draw.rect saw some large speedups.IOError instead of FileNotFoundError in #2922__contains__ operation to the Rect class, allowing you to check if Rect1 in Rect2 in #2897python -m pygame.docs will launch a local copy of the docs now. #2826AbstractGroup in #2896 and #2930sprite.LayeredDirty.set_timing_treshold in favor of set_timing_threshold. #2921Vector.rotate_ip_rad methods in favor of the more consistent Vector.rotate_rad_ip. #2863pygame.math. #2856get_num_audio_devices and get_audio_device_name with get_audio_device_names. #2841, #2920setup.py lint to keep the codebase squeaky clean. @illume integrated it into the pygame development workflow by adding setup.py format and a format test to CI, and formatted all the code in the repository. #2285, #2857, #2842Thanks to you! It's hard making these release notes (Thanks @Starbuck5 and @illume). If we've missed someone, or made a mistake... firstly sorry! Secondly, feel free to get in touch with us to make a correction.
<span id="ggames" ></span>
Here's a few things people have released recently using pygame (but made mostly with their own sweat and tears).
And then this summer, tank king Lord Commentarios of Freeduck and Spooky made "Tempest Run" for a jam hosted by this server:
A cross between Tempest (1981) and Temple Run (2011), "Tempest Run" puts a new spin on those iconic games and was made for the Pygame Community Summer Jam 2021, whose theme was "Recreate an old game with a twist."
<a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvMTExMzk4MC82NjQ2NTY5LnBuZw==/794x1000/3qHXpJ.png"></a>
<a href="#"><img width="100%" src="https://cdn.discordapp.com/attachments/772505616680878083/923293051735138424/unknown.png"></a>
A puzzle game where you can control the gravity in the room you're in.
<a href="#"><img width="50%" src="https://raw.githubusercontent.com/novialriptide/novialriptide.github.io/main/images/projects/gravity.gif"></a>
Flyre is a 2d pixel art shoot-em-up, where you improve through a skill tree !
<a href="#"><img width="100%" src="https://img.itch.zone/aW1nLzU2NDIwMDUucG5n/original/Yl3rUc.png"></a>
It's been a year since the Typhon Incident, when a biomonster from the Age of Superpowers awoke and rampaged across the Earth. Aegis Overlord, having consolidated power on Luna, begins preparation to extend their domination across the solar system. The L5 Alliance attempts to maintain a fragile peace while their member-states bicker and war among themselves. To make matters worse, the cyberpop band Love Magnet just announced that they're splitting up. I trust that all of you know what this means.
It's time to fire up your giant robot and go do some stomping.
<a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvODc0Mjc5LzQ5MjY0MDYuZ2lm/794x1000/e69j1m.gif"></a> <a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvODc0Mjc5LzQ5MjY0MTYucG5n/794x1000/s3dMjy.png"></a>
Imperios Estelares - Surgimiento is a turn-based 4X strategy game set on space, in the Orion Arm. You can choose between nine different species, expand by dozens of solar systems and hundreds of planets. Design your warships, recruit troops and crush your rivals or develop your technologies to get a diplomatic victory or a combination of everything to achieve first place at the end of the game.
https://a5-studios.itch.io/imperios-estelares-surgimiento
<a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvMTI1MTEzMS83Njk4ODIyLmpwZWc=/794x1000/LV0DAn.jpeg"></a> <a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvMTI1MTEzMS83MjkxNzY0LmpwZWc=/794x1000/hoTlyM.jpeg"></a>
Remake the Atari ST port of Super Sprint by Electric Dreams from 1985 in Python with Pygame
<a href="#"><img width="100%" src="https://repository-images.githubusercontent.com/342905347/8c764600-a6cd-11eb-8854-8a5d35ea4e94"></a>
<a href="#"><img width="100%" src="https://github.com/salem-ok/PySprint/raw/main/ImageSource/OptionsScreen.png?raw=true"></a>
My old game, DUGA has been updated and now supports hardware acceleration! Never has it been so smooth! Thanks to Pygame for updating to version 2 :-)
<a href="#"><img width="100%" src="https://camo.githubusercontent.com/2270e3b3e94503fbdff874ec14fb5263f5ab4ff42f97110808cd660bbf05cb82/687474703a2f2f69332e7974696d672e636f6d2f76692f42795f636273616376544d2f6d617872657364656661756c742e6a7067"></a>
a Mini game where you play as a deer exercising on an UNSTABLE treadmill that is changing its speed unpredictably.
<a href="#"><img width="100%" src="https://static.jam.vg/raw/ed9/81/z/445e1.gif"></a>
Create different trees and tree-like structures using fractal-like math.
Many natural things exhibit patterns of self-similarity. For example, a whole tree looks like a branch and a branch looks like a leaf.
<a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvMTE4ODEwMy83MDkyNjYxLmdpZg==/794x1000/AN9Vdb.gif"></a> <a href="#"><img width="100%" src="https://img.itch.zone/aW1hZ2UvMTE4ODEwMy83MDkyNjU4LmdpZg==/794x1000/LSGNhN.gif"></a>
Menu for pygame, simple, lightweight and easy to use
<a href="#"><img width="100%" src="https://pygame-menu.readthedocs.io/en/4.2.0/_images/first_steps.png"></a> <a href="#"><img width="100%" src="https://www.pygame.org/thumb/a109f7a548bb496334444b2b463faa6f.png"></a>
Thanks for stopping by. Ciao!
Another pre-release for testing. Test your app is still working as expected with this?
Another pre-release for testing. Test your app is still working as expected with this?
python3 -m pip install pygame==2.1.1.dev4
Full release notes will come in the full release.
Full Changelog: https://github.com/pygame/pygame/compare/2.1.0...2.1.1.dev4
Deprecate fastevent, compat shim based on event by @ankith26 in https://github.com/pygame/pygame/pull/2843
This is a pre-release for testing.
Test your app is still working as expected with this?
python3 -m pip install pygame==2.1.1.dev2
Full release notes will come in the full release.
Full Changelog: https://github.com/pygame/pygame/compare/2.1.0...2.1.1.dev2
This is a pretty minimal release in terms of user facing features. If you're happy with 2.0.3, you probably can stick with that one.
This is a pretty minimal release in terms of user facing features. If you're happy with 2.0.3, you probably can stick with that one.
There were lots of internal changes removing old code related to backwards compatibility with SDL1, and python2.
Full Changelog: https://github.com/pygame/pygame/compare/2.0.3...2.1.0
This is a quick pre-release, which mainly contains python 2 and SDL 1 removal.
This is a quick pre-release, which mainly contains python 2 and SDL 1 removal.
Please kick the wheels? Changes are very minimal over 2.0.3, except for python2 and SDL1 removal.
🍂🍊🌰🥮🥧🌆🌇🔥🎃🎑🏮🍂🍊🍂🥮🌰🎃🥮 🥮 python3 -m pip install pygame==2.0.3 🍊🍂🥮🌰🥧🌇🔥🌆🎃🏮🍂🍊🏮🍂🥮🌰🥧🥮
🍂🍊🌰🥮🥧🌆🌇🔥🎃🎑🏮🍂🍊🍂🥮🌰🎃🥮
🥮 python3 -m pip install pygame==2.0.3
🍊🍂🥮🌰🥧🌇🔥🌆🎃🏮🍂🍊🏮🍂🥮🌰🥧🥮
Firstly, everyone raise their glasses for python 2. This will (probably) be our last python 2 supporting release. From your weird unicode, to your print statement that didn't need (). We will miss you, but we will always remember you.
Secondly, raise a second glass (at the same time!) for SDL1. Oh, SDL 1.2.x how great it was to know you and use you on dead platforms like BeOS and DOS, with your now exotic features like cdrom support. So many pixels, so many sound waves. You stuck around with us several years after retirement, and for that we thank you. SDL 1, take your gold watch and enjoy your retro computing nostalgia after-life.
The python 2 wheels will still be there, and you can still use SDL1 through the pygame 1.9.6 wheels if you need. But it's time for us to move on.
You can stop raising your glasses now. Onto the goodies!
There's lots of build improvements in here, including support for M1 macs and much better linux support (fullscreen and multi touch is working!). There's some regression fixes including on pygame.time.set_timer and when compiling from source on older linux distros. New in here is a loops keyword argument has been added to mixer.music.queue. The Camera module got some further improvements removing some unused legacy code and some code cleanups.
One very cool highlight is that are UCS4 unicode (including emoji) rendering is working. Rendering emoji and some other human languages is now possible!
We now have much better error newbie friendly messages for image/resource loading issues. Which should help people when they make typos or path issues when loading images. This is a common problem for newbies, so it's a really nice improvement.
A bunch of difficult bugs were fixed, and python 3.10 wheels for manylinux (which were accidentally forgotten in the 2.0.2 release). There were also some docs improvements for the new Cursor class and get_desktop_sizes function as well as some type improvements for the experimental _sdl2 modules.
On mac and linux we are using libjpegturbo, so on those platforms jpeg loading should be smoking fast. Additionally lots of our dependencies on mac and linux have been improved (and they share the same build scripts now). Things like fluidsynth being actually compiled in and support for the opus sound files being compiled in properly.
Here's what we have in this release for you in a bit more detail. If you want ALL the details please scroll to the bottom to see the full commits and code diffs.
Thanks to all for reporting issues, doing reviews and helping out in other ways than code contributions. Especially issue reporters, wiki editors, discord mods/folk, redditors, patreons, and such like.
As all releases, this one too would not have been possible without support from the community, from people submitting issues, to people making PRs for all kinds of improvements, from typo fixes, to fixing complex segfaults in C code, every contribution matters a lot!
Special thanks are in order with with this release. For help with last minute testing by /dev/mario, @pkulev, @solozobov, @interstellartaurus, fxbeta and @kajott. Thanks!
python3 -m pip install pygame==2.0.3
Another quick dev pre-release. python3 -m pip install pygame==2.0.3.dev6
Another quick dev pre-release. python3 -m pip install pygame==2.0.3.dev6
Mainly this release fixes some issues with MacOS M1 based arm64 computers, but also some issues with manylinux binary wheels for linux users.
We would appreciate feedback from M1 users, and linux users particularly.
python3 -m pip install pygame==2.0.3.dev6
# run an example game
python3 -m pygame.examples.aliens
# run the full test suite
python3 -m pygame.tests
Please report your successes or failures with the release here: https://github.com/pygame/pygame/pull/2807
Or chat to us in the #contributing discord, or send an email.
Thanks to all for reporting issues, doing reviews and helping out in other ways. Especially issue reporters, wiki editors, discord mods/folk, redditors, patreons, and such like.
Another quick dev pre-release. pip install pygame==2.0.3.dev4
Another quick dev pre-release. pip install pygame==2.0.3.dev4
This release we've been trying to merge in many PRs which have been taking a long time. But some highlights are UCS4 unicode (including emoji) rendering is working, much better error newbie friendly messages for image/resource loading issues, a bunch of difficult bugs were fixed, and python 3.10 wheels for manylinux (which were accidentally forgotten in the 2.0.2 release). There were also some docs improvements for the new Cursor class and get_desktop_sizes function as well as some type improvements for the experimental _sdl2 modules.
We'll have proper detailed release notes for the real 2.0.3 release.
Thanks to all for reporting issues, doing reviews and helping out in other ways.
We have a pygame 2.0.3 milestone tracking the rest of the work that's most likely going to go into it. The Mac arm64 support had some good progress, and there are some manylinux improvements to help with some linux issues. Hopefully some of that will make it into the release.
Please test, and if you notice anything please raise an issue so we can have a look. Would be much appreciated :)
Hello everyone! 2.0.2 is finally here!
Hello everyone! 2.0.2 is finally here!
🔷🔬 💧📘💙🌌❄️💎 🔷🔬 💧📘💙🌌❄️💎
🟦 pip install pygame --upgrade
🌌❄️💎🔷 🔬 💧📘💙🌌❄️💎 🔷🔬 💧📘💙
How do you summarize over 10 months of development, with over 40 contributors contributing 1000s of lines of fixes and enhancements? If you're interested in seeing the changes in more detail, you can check out the release notes for the 2.0.2.dev2 and 2.0.2.dev4 pre-releases. Below is a summary of some highlights.
And many more bugfixes and enhancements to improve the pygame experience.
python3 -m pip install pygame==2.0.2.dev4 --pre
python3 -m pip install pygame==2.0.2.dev4 --pre
<img alt="pygame" src="https://github.com/pygame/pygame/raw/main/docs/pygame_logo.svg" style="max-width: 100%;">
The previous pre-release 2.0.2.dev2 was aimed to test whether our new build machinery for releasing pygame worked. And it worked great, except on Mac. Now mac wheels are hopefully fixed in this pre-release. In fact, we now have Mac wheels that support down to MacOS 10.9, unlike previous 2.x releases, that only supported 10.13 and above.
Apart from that there's a bunch of other nice stuff in here too. Including python 3.10 support, a new Windows camera module, support for rumble controllers/joysticks, support for building on windows with MSYS2 (gcc and friends for windows), and significant documentation improvements and even a new SVG/vector version of the logo (as you can see above).
Hopefully this will be the last pre release. Next up we can do the real 2.0.2 release... Unless people find some serious issues when testing this one?
@rethanon fixed up some type hint and documentation errors in #2697 and #2717.
@rethanon fixed up the playmus examples, and added a good note to the mixer.music docs in #2745. @rethanon continued tidying the music docs in #2751.
@vnmabus enhanced the type hints by moving to use Sequence in places. (#2682)
New contributor @Mega-JC made some beautiful upscaled logos for us in #2704. I mean, just check out the README now 😍.
@bydariogamer spruced up the docs in #2715.
@Grimmys made it much easier to generate the documentation locally in #2714. No need to install build tools now!
@Grimmys got us up to date with our docs build tooling. We can now generate the docs on Sphinx 4.0. (#2666)
@Starbuck5 wrote a docs README for new contributors in #2667.
@ankith26 fixed a regression where a few modules would return True instead of None on init() and quit(). (#2719)
@MightyJosip fixed a bug where rotating a Surface with no width or no height (or both) would cause a segmentation fault. (#2725)
@njbradley, @Starbuck5, and @illume collaborated to get mp3 support for mixer.music on Linux. (#2712)
@zaphodikus Fixed broken unicode len checking in examples/textinput.py https://github.com/pygame/pygame/pull/2567
@bydariogamer simplified the implementations of surfarray and sndarray in #2708.
@ankith26 improved our Github Actions system significantly, also allowing us to generate Python 3.10 wheels on Mac and Windows. (#2605)
@illume fixed an issue with downloading the jpeg library on windows. (#2743)
@illume added python 3.10 builds to appveyor in #2757.
Many thanks to @illume, assisted by @ankith26, for fixing the mac dependency situation that was the primary release blocker for this release. (#2742). Mac builds should support MP3 music now!
New contributor @Pycryptor10 made sure the metadata in setup.cfg reflects that we support Python 3.10. (#2753)
Many thanks to new contributor @dciabrin, who added support for MSYS2 windows builds. (#2592)
Thanks to @Starbuck5, @ankith26, and @illume for coordinating the 2.0.2.dev4 pre-release.
@Starbuck5 added a namehint argument to music.queue. (#2750)
@Starbuck5 added built in webcam support for Windows to the pygame.camera module. (#2630)
@zoldalma999 added rumble support to the joystick and controller modules. https://github.com/pygame/pygame/pull/2741
@Starbuck5 added a deprecation warning for mouse.set_system_cursor() #2397 after a long discussion and research with a number of us on if we should ha…
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻 🌼🌸 python3 -m pip install pygame==2.0.1 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
The Age Of Aquarius,
the northern Winter Solstice,
and the southern Summer Solstice bring us...
a new pygame to play with :)
This is a bug fix release, with a bunch of features and optimizations thrown in for good measure. Thank you to the people reporting issues related to pygame 1 compatibility. Some of them will take a bit longer to discuss, work through, and find solutions. We say goodbye to Travis the CI that served us well. We said goodbye to the pygame discord that had grown too big, only for a few more to have sprouted up in its place. We said hello to the patreon.com/pygame and we took a breather for a little bit.
Enough bla bla bla... what's new?
Firstly, a few backwards compatibility fixes have been made.
Dan Lawrence @MyreMylar worked some more on the alpha blitter so it's more compatible.
René Dudfield (@illume) worked on making some old audio driver and video driver names that had been renamed work in backwards compatible env vars, SDL_VIDEODRIVER=windib, SDL_AUDIODRIVER=pulse or dsound #2292
Ankith (@ankith26) did a major event refactor in #2357 #2404 #2416 and #2398 This not only cleaned up the event processing code, but fixed a bunch of issues an introduced some new features making event processing more comfy along the way.
Here's a graph to treat your eyes, on an event benchmark where getting lots of events has been sped up a lot. As you can see, its a 7 times speed up. There are also less peaks in there, due to less thread locking on the event queue and using batching API calls.
Thanks to @bwright8 for adding a unit test for image.load_basic() #2307 and also for adding some Surface.convert tests in #2368.
@kristofszentes made a unit test for image.load_extended() in #2324
Paul m. p. P. (@pmp-p) fixed typo in windib driver handler condition https://github.com/pygame/pygame/pull/2342
The Dog Lulu (@Iamsoto) updated the TYPE_HEAD macro to use a newer API #2363
@aminouhammou added a unit test for display.gl_get_attribute() #2375
Tom Fryers (@TomFryers) Capitalised "Python" in the import message. #2389
Pierre Sassoulas (@Pierre-Sassoulas) has been working on some code quality fixes using the pylint tool (and apart from these merged PRs working on setting up other code quality tools and a pre-commit checker).
@zoldalma999 (who recently joined the pygame team on github after contributing several high quality patches to pygame) worked on a proposal by David Lönnhager (@dlon) to add Color.update and Rect.update #2277
Vectors already have an update() method. Now Color, and Rect do too :)
>>> c = pygame.Color(0, 0, 0)
>>> c2 = pygame.Color(1, 2, 3, 4)
>>> c
(0, 0, 0, 255)
>>> c.update(c2)
>>> c
(1, 2, 3, 4)
>>> rect = pygame.Rect(0, 0, 1, 1)
>>> rect.update(1, 2, 3, 4)
>>> rect
<rect(1, 2, 3, 4)>
>>> rect = pygame.Rect(0, 0, 1, 1)
>>> rect2 = pygame.Rect(1, 2, 3, 4)
>>> rect.update(rect2)
>>> rect
<rect(1, 2, 3, 4)>
@zoldalma999 also worked on:
main branch. #2318René Dudfield (@illume) was hacking on some things like these:
libsdl is a library pygame is built on. It had a new release after almost 9 months of development. The 2.0.14 release notes detail things a little bit. More than 9 months worth of effort is a bit much to explain.
There's been a number of bugs fixed we reported in the pygame 2 series. One of which was pygame.display.update() updating the whole screen on windows. So, now 'dirty rect drawing' is faster again on windows. From the list you'll notice a lot of work went into joystick and game controller improvements. Including support for more than 4 xbox controllers at once on windows. But linux, android, mac, and even freebsd got joystick improvements. On linux the Kernel Mode Setting (KMSDRM) video driver was improved a lot. For retro computing fans, the OS2 port got a lot of love. Lots of portability things were improved, like fixing compilation for M1 CPUs, improving the build system. Raspberry Pi support has been improved, as have most video drivers for other platforms.
Victor Lopez started on an Xbox one port, and has had some success.
I can confirm Xbox One is able to run the aliens sample with joystick support, audio and sprites, it needs, however, heavy testing.
These are the relevant repositories:
pathlib is an object oriented way of doing path handling in python 3 (there's also a backport to python2). Before pygame didn't handle these objects in resource loading functions for image and sound loading. Now it does pathlib!
path = pathlib.Path('.') / "data" / "house_lo.wav"
sound1 = mixer.Sound(path)
Thanks to @ankith26 in #2366 and René Dudfield (@illume) in #2387 .
@Starbuck5 worked on a new Cursor object in https://github.com/pygame/pygame/pull/2331
Now you can add system cursors, and color cursors out of surfaces along with the other ones you could draw with ascii art.
box = pygame.cursors.Cursor((10,10), pygame.Surface((20,20)))
pg.mouse.set_cursor(box)
pg.mouse.set_cursor(pg.SYSTEM_CURSOR_NO)
pg.mouse.get_cursor()
>>> <Cursor(type: system, constant: SYSTEM_CURSOR_NO)>
@Starbuck5
@Starbuck5 added a deprecation warning for mouse.set_system_cursor() #2397 after a long discussion and research with a number of us on if we should have deprecation warnings anyway?.
Another project @Starbuck5 worked on was fixing some draw.rect issues in PR #2406 found by @gummbum and @dr0id
This script by @dr0id made it much easier to spot the problems.
@galexandreg worked on text_input documentation improvements on by default, needed for pygame.TEXTINPUT https://github.com/pygame/pygame/pull/2333
@robertpfeiffer made a few fixes to issues with android support. Added K_AC_BACK key constant, fixed data_file pruning and "STRIPPED" install #2311
Ankith @ankith26 merged these ones in (whilst also looking at some difficult event posting issues, and cleaning up some image loading code).
@mcpalmer1980 Added experimental relative mouse motion support to video.Window in #2392 They have also been using the experimental _sdl2 features quite a lot and coming up with some good improvements and discussions on that (including a new package!).
Dan Lawrence ( @MyreMylar ) was on a coding rampage and made a number of improvements:
See ya!
Nothing published for this version
The 28 th of October 2020 is the pygame 2.0 release date, because pygame turns 20 years of age.
<img src="https://user-images.githubusercontent.com/9541/97474395-5b9a9b80-194c-11eb-8ada-5fbe23fb37c9.png" width="150" />
The 28<sup>th</sup> of October 2020 is the pygame 2.0 release date, because pygame turns 20 years of age.
<hr/>
,--.
| oo|
| ~~| o o o o o o o o o o o o o
|/\/\|
python3 -m pip install pygame==2.0.0
What's the best feature of pygame 2? Maybe it's "backwards compatibility". For many, many apps pygame 2 is backwards compatible. Have an pygame app from the year 2000? It will probably work. We still have some known issues and open backwards compatibility issues(see below), but a lot of things work just as they did before. Yes, we still have python 2 support.
How does one summarize the 3306 changes since we started the pygame 2 series in July of 2018 based on patches going back to 2012 and even earlier?
Surface.fill('black') instead of Surface.fill(pygame.Color(0, 0, 0)). Also keywords are supported for many more function arguments. You can draw rounded corners on rects.python3 -m pygame.examples.font_viewer, and python3 -m pygame.examples.music_drop_fade. Additionally the example source code has been cleaned up a lot to follow a more current python style.That was a summary of some of the goodies in pygame 2. We will be releasing more articles and tutorials on new features as time goes on. You can also look at the previous release notes for more info (see end of this post).
Probably one of the better realizations thinking about pygame on its 20th birthday is that there is a much larger group of people who have contributed to crafting pygame in recent years. Some have moved onto other things like jobs, family or writing cookbooks in the Canadian wilderness. Much respect for volunteering time to a community project like pygame.
Firstly thanks to the pygame team members who contributed to the pygame 2 series, new and old...
David Lönnhager (@dlon) | René Dudfield (@illume) | Charles (@charlesej) | Dan Lawrence (@MyreMylar) | Ankith (@ankith26) | Niels Thykier (@nthykier) | Lenard Lindstrom (@llindstrom) | Sigurður Sveinn Halldórsson (@siggisv) | @robertpfeiffer | Josip Komljenović (@MightyJosip) | Travis Chang (@Reminisque) | xFly_Dragon (@husano896) | Adam Andrews (@adamandrews1) | (@galexandreg) | Thiago Jobson (@thiagojobson) | (@mcpalmer1980) | @charlesoblack | Daniel Pope (@lordmauve) | Thomas Kluyver (@takluyver) | @e1000 | Andy Nguyen (@anguye13) | @Starbuck5 | Ian Mallett (@imallett)
Equally important thank you go out to all the other contributors, some of which contributed to a community project for the first time.
Pedro de la Peña @pedrodelapena | @lkito | @khuang0312 | @tsadama | @Bottersnike | @alphaCTzo7G | Amos Bastian (@amosbastian) | Andrey Lopukhov (@andreyx86) | Augusto Noronha (@augusto2112) | Bernardo Sulzbach (@bernardosulzbach) | (@Bottersnike) | Cai Q.T. (@CAIQT) | (@Cerealdragon) | (@ChrisWeissNike) | (@cmtrapp02) | Daniel Molina (@daniel-molina) | David Caughell (@DavidCaughell) | (@dr0id) | burmer (@dtschirmer) | (@IchMageBaume) | (@LambdaGoblin) | François Magimel (@Linkid) | (@LiquidFenrir) | Mark Hurley (@markph0204) | Marius Gedminas (@mgedmin) | (@metulburr) | Michael Farrell (@micolous) | Dominik George (@Natureshadow) | Nik (@nikolas) | Nunu-Willump (@Nunu-Willump) | (@pleboulanger) | Rebecca Chen (@rchen152) | (@robertpfeiffer) | Sett (@sw00) | @seenemikk | Nguyễn Gia Phong (@McSinyx)| Sebastian Henz | @BastiHz | Alice Lia Stapleton (@slimelia)
raphacosta27 (@raphacosta27) | Bill (@AdditionalPylons) | Gabriel Moreira (@gabsmoreira) | zoldalma999 (@zoldalma999) | amipy (@amipy) | DGMcKenney (@DGMcKenney) | Grigoris Tsopouridis ((@gtsopus)) | Ilia Gogotchuri (@Gogotchuri) | Jim Quach (@jiquach) | Aaron Li (@AaronLi) | Clark Seanor (@cruxicheiros) | K Duggan (@kduggan15) | Michał Górny (@mgorny) | Clark Seanor (@cruxicheiros) | jtoloff (@jtoloff) | 41aaronb (@41aaronb) | Prasanna Venkatesh (@hanzohasashi33) | zoldalma999 (@zoldalma999) | Nihal Mittal (@codescientist703) | leopoldwe (@leopoldwe) | Scott Noyes (@snoyes)
Vicente González Ruiz (@vicente-gonzalez-ruiz)| Douglas (@douglas-cpp) | wuzh07 (@wuzh07) | Gerardo Antonio Hagad (@ginohagad) | Evan Kanter (@evank28) | Inada Naoki (@methane) | Jani Tiainen (@jtiaicomparison) | Christian Clauss (@cclauss) | Gosha Zacharov (@Gosha) | Steven Chua (@Graphcalibur) | K Duggan (@kduggan15) | PeanutbutterWarrior (@PeanutbutterWarrior) | Nachiket Naganure (@NachiketUN) | Pierre Haou (@pierrehaou) | Daniel Gillet (@dangillet) | Stefano Rivera (@stefanor) | Andre Miras (@AndreMiras) | glennmackintosh (@glennmackintosh) | Vilhelm Prytz (@vilhelmprytz) | DotMars (@DotMars) | Gabriel Duque (@zuh0) | Mark Hurley (@markph0204) | Henrik Petersson (@hnrkcode) | Grigoriy (@flaambe) | Matt Sheppard (@mampersat) | s0lst1ce (@s0lst1ce) | Norman Packard (@nhpackard) | peanutbutterandcrackers (@peanutbutterandcrackers)
A special thanks to all the people who help out others. From making videos, to answering questions, to writing guides (and even whole books). MyreMylar, MichaelCPalmer, jtiai, claudeb, DaFluffyPotato, Rabbid76, The Big Kahuna, sloth, Kingsley, ... and lots of other people. Thanks to the mods on forums, chat rooms and Q&A sites. Special thanks to Zireael07 for cheering on pull requests that people make 🎉 Thanks to people adding support and integration to libraries and tools like pgzero(lordmauve and co), Mu Editor (Nicholas and team), and pymunk (Victor Blomqvist). Very many people have contributed by reporting issues. This is fantastic help for people 👏 👏 👏 Without these issue reports and help in testing bugs and new features many parts simply wouldn't work. Thanks to the SDL folk, to the fluidsynth crew, to numpy devs (Matti and co), python for android, pypy project, and the python community at large. Thanks to the folks running game jams like ludumdare(Mike), pyweek(lordmauve), and alakajam. Thanks to renpytom for pygame subset for android and pygame_sdl2, thanks to Marcus von Appen for pysdl2. Thanks to people sharing your work with others on the pygame website, or on places like the pygame reddit, discord, or youtube. Thanks to the kind folk who work on packaging pygame from Debian, Ubuntu, Arch, FreeBSD, and piwheels (@bennuttall). Thanks for the people teaching and learning with pygame all over the world. Last but not least... a very special thanks to everyone we've missed that should be listed here.
Really. Thank you (you). Thanks.
We have an up to date list of issues marked with the Compatibility Python 2 label. These are compatibility issues where something worked in pygame 1, but doesn't work in pygame 2.
At the time of writing this included:
We've already investigated many of these issues, and even have some work in progress on some of them. If you're particularly interested in one of them please let us know. Also if you have any issues with your existing apps, we are very interested in finding out.
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻 🌼🌸 python3 -m pip install pygame==2.0.0 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
Happy pygame 20th birthday all! 🎉 🍰 🥳
<img src="https://user-images.githubusercontent.com/9541/97467489-8bde3c00-1944-11eb-8ebd-6e91db1a8295.png" width="320" />
` python3 -m pip install pygame=2.0.0.dev24 `
python3 -m pip install pygame=2.0.0.dev24
A bunch of fixes and speedups before the release. Now the default branch on the pygame repo is main.
@MyreMylar Dan Lawrence
@siggisv Sigurður Sveinn Halldórsson
test/draw_test.py some unit tests for draw.line() #2247Ankith @ankith26
` python3 -m pip install pygame==2.0.0.dev22 `
python3 -m pip install pygame==2.0.0.dev22
Several very difficult to find and fix issues with alpha blending were fixed in this release.
The new alpha blitter has an SSE2 and arm NEON implementation, and keeps compatibility with pygame 1.
Also some progress on other issues, including these...
Another crunchy little release. This time more compatible manylinux wheels (Ubuntu 18.04 Bionic and CPUs without SSE 4.2), some documentation improvem
Another crunchy little release. This time more compatible manylinux wheels (Ubuntu 18.04 Bionic and CPUs without SSE 4.2), some documentation improvements, and pygame.midi fixes.
python3 -m pip install pygame==2.0.0.dev20
`pip install pygame==2.0.0.dev18`
pip install pygame==2.0.0.dev18
This is a small bugfix release to fix a problem with installing pygame from source code.
If 2.0.0.dev16 worked for you, there's no need to upgrade.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a…
pip install pygame==2.0.0.dev16
The 28<sup>th</sup> of October 2020 will be the pygame 2.0 release date, because pygame turns 20 years of age. Save the date (maybe we'll do something)!
We reached two important milestones with this pre-release. Firstly the old game 'solarwolf' is working fine with no known issues on pygame 2. The second stone we passed by on the road to PyPy goodness is that we are releasing binary wheels for PyPy on mac, windows, and linux. PyPy is a different implementation of python that is highly compatible and can be extremely fast.
Here's a little youtube video of solarwolf on PyPy and SDL2...
If you watched the video to the end, you'll note there's a crash. We still have some way to go before everything in pygame is working with PyPy. "solarwolf" using cpython and pygame 2 is running deliciously and glitch free.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.
Dan Lawrence @MyreMylar
Ankith @ankith26
René Dudfield @illume
Dan Lawrence @MyreMylar
René Dudfield @illume
@robertpfeiffer
@Starbuck5
Josip Komljenović @MightyJosip
Sigurður Sveinn Halldórsson @siggisv
Ankith @ankith26
This time 4 'critical' backwards compatibility issues were fixed since the last release.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a…
pip install pygame==2.0.0.dev14
-- <small>Players, only love you when they're playing</small>
With a very tiny little bit of discussion it was sort of decided that the 28<sup>th</sup> of October 2020 will be the pygame 2.0 release date, because pygame turns 20.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.
Thanks to Dan Lawrence @MyreMylar for Adding a num_buttons parameter to mouse.get_pressed(). This was a backwards compatibility issue, because it used to return 3 elements. Now it returns 3 elements again by default and you can request 5 if you want. Another critical issue fixed by MyreMylar was a problem with key events being reordered on windows.
But wait... there's more. Another backwards compatibility fix by MyreMylar is the "Backwards compatibility for get_flags() in SDL2" PR, which has stopped some games handling full screen mode properly.
Sigurður Sveinn Halldórsson @siggisv fixed a problem with how pygame.draw.aaline didn't look as before.
Now the anti aliased lines look (and smell) awesome.
Ankith @ankith26
Josip Komljenović @MightyJosip
Dan Lawrence @MyreMylar
Adam Andrews @adamandrews1
@Starbuck5
René Dudfield @illume
Nguyễn Gia Phong @McSinyx
@seenemikk
Sebastian Henz @BastiHz
Alice Lia Stapleton @slimelia
This time 4 'critical' backwards compatibility issues were fixed since the last release.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a…
,--.
| oo|
| ~~| o o o o o o o o o o o
|/\/\|
pip install pygame==2.0.0.dev12
Locked in or Locked out? That's not going to stop a new pygame coming out.
The main theme of this release is testing. With many new contributors having worked on unit tests, we can be much more confident that many more features will continue to work with our SDL2 based pygame 2 as in pygame 1 which is based on SDL1. But we also have a few new features, and plenty of bug fixes.
Thanks to everyone for their help with this release.
First up, some 'critical' improvements that have been made to pygame. 'critical' labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.
We start with some joystick improvements from Daniel Pope @lordmauve. Add SDL2-specific methods to Joystick; rename event fields. Now joysticks(game pads, drum sets, dance mats) can be hot-plugged, and the game will still work properly.
@robertpfeiffer got posting of keydown events working on SDL2. This is part of the android work that has now been merged into the main branch - but it is also a backwards compatibility fix.
Thanks to Dan Lawrence @MyreMylar for fixing segfaults caused when interacting with display surface after quit, which is mainly useful for when writing unit tests or playing with pygame interactively.
Sometimes writing tests for existing functionality finds real issues and bugs. First @tsadama Added unit tests for display.toggle_fullscreen and display.get_active which uncovered an issue with SDL2. Then Dan Lawrence @MyreMylar Fixed get_active() function so it works as described in docs on windows under SDL2..
Here we see the amount of unit tests left to write to get full coverage of every pygame method. During this release period you can see a lot of things got new tests. During the testing it uncovered a number of real issues, and some of them were even fixed.
| pygame version | Methods left to test |
|---|---|
| 2.0.0.dev12 | 81 |
| 2.0.0.dev10 | 127 |
| 2.0.0.dev8 | 143 |
| 2.0.0.dev6 | 147 |
| 1.9.6 | 156 |
| 1.9.5 | 155 |
| 1.9.4 | 189 |
| 1.9.3 | 194 |
| 1.9.2 | 194 |
| 1.9.1 | 232 |
| 1.9.0 | 232 |
| 1.8.1 | 25 |
| 1.8.0 | 0 |
The count can be found with the following command run in the pygame code base:
grep todo test/*.py | wc -l
'goodfirstissue' is a label applied to issues which would be good for someone who wants to try contributing to a Free, Open Source, or community project (like pygame). A lot of these issues were written up containing unit tests that needed to be finished off.
Unfortunately we will probably run out of things to test in some months. We hope to prepare new types of 'good first issues', and educational material in other areas next. So that there is something else for people who are interested in contributing as a way to learn. Hopefully we can structure it as a learning pathway, with even some advanced topics.
Thanks to Andy Nguyen @anguye13, who worked on a number of tests in the display, image, and surface areas.
Adam Andrews @adamandrews1 worked on the transform, threads parts of the code base. They have also begun work on cleaning up the buffer code, which is in C and kind of complicated. But that work is still waiting, and will likely make it into the next release.
Travis Chang @Reminisque
Dan Lawrence @MyreMylar
@khuang0312
@lkito
Pedro de la Peña @pedrodelapena
@galexandreg continued to
@tsadama
@raphacosta27 Add unit test: joystick.quit() Bill @AdditionalPylons Added unit test: JoystickModuleTest.test_get_count
Gabriel Moreira @gabsmoreira Add unit test: display.get_driver @zoldalma999 Adding unit test to display.iconify @amipy Added a unit test for display.flip() @DGMcKenney Adds a unit test of the display.set_icon() function. Grigoris Tsopouridis @gtsopus Add display.set_gamma unit test
Ilia Gogotchuri @Gogotchuri Implemented time.Clock.get_fps unit test Jim Quach @jiquach Add unit test to Clock.get_rawtime Aaron Li @AaronLi Added test for time.Clock.tick() Clark Seanor @cruxicheiros Add basic tests for time.Clock.tick_busy_loop
K Duggan @kduggan15 Adds test for threadloop Michał Górny @mgorny Replace long-deprecated Thread.isAlive() with .is_alive() Clark Seanor @cruxicheiros threads.tmap() test and and fix. Unsurfaced bug #1768
@jtoloff unit test for Surface.get_locks function @41aaronb Added unit test for the surface.lock() function
Prasanna Venkatesh @hanzohasashi33 math.Vector.scale_to_length docs and add test for display.set_palette() @zoldalma999 Add unit test to image.get_extended Nihal Mittal @codescientist703 Added unit test for pygame.cursors.compile @leopoldwe Add key.get focused unit test
Josip Komljenović @MightyJosip Fixed drawing of ellipse. No more holes.
Old: New:
Scott Noyes @snoyes draw_py._draw_line: Use correct endpoints during swap
Charles @charlesej Fix aatrigon/aapolygon drawing horizontal edges
Daniel Pope @lordmauve Fix OOB access in math.Vector swizzle; add '0' and '1' swizzles
These will be useful to prepare homogenous coordinates for affine transforms by matrix multiplication. Here is a matrix representing a 2x scale + (3, -1) translation:
>>> import numpy as np
>>> from pygame.math import Vector2
>>> v = Vector2(0.5, 0.8)
>>> mat = np.array([
... [2, 0, 3],
... [0, 2, -1],
... ])
>>> mat @ v.xy1
array([4. , 0.6])
A special thanks to all the people who help out others. From making videos, to answering questions, to writing guides. MyreMylar, MichaelCPalmer, jtiai, claudeb, DaFluffyPotato, Rabbid76, The Big Kahuna, sloth, Kingsley, ... and lots of other people.
Special thanks to @Zireael07 for cheering on pull requests that people make 🎉
We are down to zero alerts on the LGTM linting tool on python and C/C++. We are now the largest python codebase with zero alerts on the LGTM platform (and also the largest C/C++ codebase with zero alerts). This doesn't mean we have perfect code yet however!
pylint is another python code quality tool we are using. With which we currently have thousands of reported issues left. Not only can this tool find correctness problems with the code, it can also offer ideas on how to make the code more readable and 'pythonic'. Once we have the files pylint-clean we can use pylint to take some of the load off the code reviewers.
Dan Lawrence @MyreMylar pylint
Charles @charlesej
Josip Komljenović @MightyJosip
Some more of the android branch got merged into the main pygame branch.
@robertpfeiffer
Thanks to Travis CI, we now have a builder which can test our big endian code. Even though big endian is not very common these days, it's still helpful to support it because it helps shake out some bugs we wouldn't normally see just testing on little endian CPU architectures.
René Dudfield @illume s390x build robot on travis CI for big endian testing Michał Górny @mgorny Account for big endian support for RGB/BGR images Dan Lawrence @MyreMylar Remove hard coded RGB bitshifts that don't work with SDL_MapRGB()/SDL_MapRGBA()
Sigurður Sveinn Halldórsson @siggisv image.save(namehint='') and image.get_sdl_image_version useful for when saving images to file objects and you want to tell it what format to save in (jpg, png, etc).
>>> file = BytesIO()
>>> pygame.image.save(surface, file, namehint='.png')
_________________________
=(__ ___ __ __)=
| |
| |
| python -m pygame.docs |
| |
| A number of small |
| documentation fixes |
| were made in this |
| release. |
| |
|__ ___ __ _____|
=(_________________________)=
@Starbuck5 Fix typo in draw.rst
Dan Lawrence @MyreMylar
@wuzh07 Fix typos in draw.rect docs Gerardo Antonio Hagad @ginohagad Chimp tutorial: Changed the variable "wav" to "fullname".
Evan Kanter @evank28 Updated documentation of blit method Vicente González Ruiz @vicente-gonzalez-ruiz Update SpriteIntro.rst
Douglas @douglas-cpp Fix grammar in sprite docs
Dan Lawrence @MyreMylar mouse.get_pressed() supports 5 buttons
@nthykier Add a SSE4.2 optimized version of image_tostring for some 32bit surfaces. The new pygame.image.tostring is up to 8x faster on x86 and x64 systems.
René Dudfield @illume
Inada Naoki @methane Avoid PEP393 deprecated APIs. Niels Thykier @nthykier Fix test failure without SDL_AUDIODRIVER set
Jani Tiainen @jtiai Pipenv: Fixed incorrect base class comparison
Christian Clauss @cclauss Travis CI: Test Py38 on Ubuntu Bionic
Dan Lawrence @MyreMylar
Sigurður Sveinn Halldórsson @siggisv Fix pygame.event.custom_type() off by one error.
Josip Komljenović MightyJosip
@Starbuck5 Internal pyinstaller hook to include dynamic libraries on Windows
Gosha Zacharov @Gosha Allow setting several paths in PYGAME_EXTRA_BASE
Sigurður Sveinn Halldórsson @siggisv Fix and test sprite.collide_circle_ratio Josip Komljenović @MightyJosip Fix sprite drawing on Renderer
Special thanks to @MyreMylar, @MightyJosip, @charlesej, @robertpfeiffer, @illume and @nthykier who have provided plenty of code reviews and testing of other peoples work.
It's vitally important that people volunteering (sometimes for the first time) are treated with respect and in a friendly way. It's also important that everyone in our community should feel free to review code, so we can all learn from one another.
********
****************
*******************
********************
******************** wWWWw wWWWw
\\ // ******** vVVVv (___) wWWWw (___) vVVVv
\\\// ******* (___) ~Y~ (___) vVVVv ~Y~ (___)
\\\//// ~Y~ \| ~Y~ (___) |/ ~Y~
|||// \| \ |/ \| / \~Y~/ \| \ |/
||||| \\|// \\|// \\|/// \\|// \\|// \\\|///
,,,,,,,,,,,//||||\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
This time 4 'critical' backwards compatibility issues were fixed since the last release.
Whilst we focus like a shark-lazer on pygame 2, here is a bonus pygame 1.9.6 with a couple of small regression bug fixes.
Whilst we focus like a shark-lazer on pygame 2, here is a bonus pygame 1.9.6 with a couple of small regression bug fixes.
Nothing published for this version
If anyone is able to test, that'd be wonderful... especially on linux.
If anyone is able to test, that'd be wonderful... especially on linux.
python3 -m pip install pygame==1.9.6.rc1 --user --pre
Every single source file has been heavily modified and moved in this release. Initial (source code only) support for SDL2 has been merged in. We also
<p align="center"><a href="https://www.pygame.org/wiki/about"><img src="https://www.pygame.org/images/logo.png" alt="pygame 1.9.5" width="300px"/></a></p>
Every single source file has been heavily modified and moved in this release. Initial (source code only) support for SDL2 has been merged in. We also support compiling with SDL1 in the same code base, so the migration to pygame 2 is easier. pygame 2 will be released with SDL2 being the default backend when some remaining issues are ironed out. The 1.9.x releases will continue with SDL1 until then. Also, the C API of pygame is undergoing a transformation with lots of cleanups. Then there have been plenty of other cleanups all throughout the python code as well. There's still lots to clean up, but things should be significantly easier for people to contribute (👋 hello and thanks new contributors!). The documentation has been improved with better examples links, search functionality, and improved navigation. Support for older Macs, and newer Macs has been improved. The mask, midi, draw, and math modules have gotten lots of polish with rough edges removed.
A very special thanks to the people who have volunteered commits to pygame since the last release. In alphabetical order...
(@alphaCTzo7G) | Amos Bastian (@amosbastian) | Andrey Lopukhov (@andreyx86) | Augusto Noronha (@augusto2112) | Bernardo Sulzbach (@bernardosulzbach) | (@Bottersnike) | Cai Q.T. (@CAIQT) | (@Cerealdragon) | Charles (@charlesej) | (@ChrisWeissNike) | (@cmtrapp02) | Daniel Molina (@daniel-molina) | David Caughell (@DavidCaughell) | David Lönnhager (@dlon) | (@dr0id) | burmer (@dtschirmer) | (@e1000) | xFly_Dragon (@husano896) | (@IchMageBaume) | René Dudfield (@illume) | (@LambdaGoblin) | Lenard Lindstrom (@llindstrom) | François Magimel (@Linkid) | (@LiquidFenrir) | Mark Hurley (@markph0204) | Marius Gedminas (@mgedmin) | (@metulburr) | Michael Farrell (@micolous) | Dominik George (@Natureshadow) | Nik (@nikolas) | Nunu-Willump (@Nunu-Willump) | (@pleboulanger) | Rebecca Chen (@rchen152) | (@robertpfeiffer) | Sett (@sw00) |
Quite a few new people have helped out with this release 🤗
An equally special thanks to everyone else who has contributed in other ways. Thanks to claudeb, imallet, and deshipu for moderating the discord chat to keep it friendly. Thanks to the twitter folk, and the stackoverflow Q&A people. Thanks to everyone who puts their game up on the pygame website for others to look at. Thanks to people making tutorials and sharing articles & books they've written. Thanks to the r/pygame mods and community. Thanks to pyladies groups for running fun sessions, and for making things better. Thanks to the teachers providing feedback, and for doing something fun with their students. Thanks to Debian, Raspberrypi, and all the other community groups. 🖤
https://github.com/pygame/pygame/pull/945 Vector: Explain slices and swizzling https://github.com/pygame/pygame/pull/944 Update surface documentation https://github.com/pygame/pygame/pull/937 Make mask offset boundary checking consistent https://github.com/pygame/pygame/pull/936 Update midi documentation https://github.com/pygame/pygame/pull/931 Fix drawing 1 pixel wide off-surface ellipses https://github.com/pygame/pygame/pull/929 Use SDL_RWops instead of pg_FopenUTF8. https://github.com/pygame/pygame/pull/928 Fix LayeredDirty's inconsistent use of its source rect https://github.com/pygame/pygame/pull/927 Workaround for locale errors with PyPy https://github.com/pygame/pygame/pull/926 Update dependencies for manylinux builds. https://github.com/pygame/pygame/pull/924 Upload .whl binaries to a github draft release when creating tag. https://github.com/pygame/pygame/pull/923 Update scrap documentation https://github.com/pygame/pygame/pull/922 https://github.com/pygame/pygame/pull/881 https://github.com/pygame/pygame/pull/879 Fix zero-sized mask segfaults https://github.com/pygame/pygame/pull/920 Fix the SystemError when no type specific clipboard content exists. https://github.com/pygame/pygame/pull/917 Update scrap tests https://github.com/pygame/pygame/pull/914 Update freetype tests https://github.com/pygame/pygame/pull/911 https://github.com/pygame/pygame/pull/893 https://github.com/pygame/pygame/pull/889 https://github.com/pygame/pygame/pull/876 https://github.com/pygame/pygame/pull/874 https://github.com/pygame/pygame/pull/844 https://github.com/pygame/pygame/pull/840 https://github.com/pygame/pygame/pull/831 https://github.com/pygame/pygame/pull/819 Improved mask tests https://github.com/pygame/pygame/pull/900 Add sprite tests https://github.com/pygame/pygame/pull/899 bugfix for dirty sprite when using a source rect https://github.com/pygame/pygame/pull/891 Add missing Vector2.magnitude() https://github.com/pygame/pygame/pull/873 Fix mask index out of bounds segmentation fault https://github.com/pygame/pygame/pull/806 Mask constructor 'fill' argument https://github.com/pygame/pygame/pull/807 Use version directives consistently in documentation and update style https://github.com/pygame/pygame/pull/805 Event functions: pump parameter and keyword arguments https://github.com/pygame/pygame/pull/803 Add customized repr()/str() output for Mask objects https://github.com/pygame/pygame/pull/802 Fix aaline()/aalines() not drawing on a surface's border https://github.com/pygame/pygame/pull/797 Keep surface alpha value for copied surfaces with SRCALPHA flag https://github.com/pygame/pygame/pull/760 https://github.com/pygame/pygame/pull/707 Load images on multiple threads properly https://github.com/pygame/pygame/pull/783 Fix overlap_mask() making incorrect mask https://github.com/pygame/pygame/pull/751 https://github.com/pygame/pygame/pull/749 https://github.com/pygame/pygame/pull/748 https://github.com/pygame/pygame/pull/746 https://github.com/pygame/pygame/pull/745 Added get_init() to all modules with an init() function https://github.com/pygame/pygame/pull/725 Allow camera module to be used on Windows https://github.com/pygame/pygame/pull/722 API version macros https://github.com/pygame/pygame/pull/698 Use pre styles in docs https://github.com/pygame/pygame/pull/670 Converting between ANSI notes and MIDI notes or frequencies https://github.com/pygame/pygame/pull/663 Compile for PyPy 3 and PyPy fixes https://github.com/pygame/pygame/pull/665 Chimp tutorial: reindent and clean some code https://github.com/pygame/pygame/pull/664 Chimp tutorial: fix reST syntax https://github.com/pygame/pygame/pull/656 https://github.com/pygame/pygame/pull/649 Handle Unicode objects and paths properly https://github.com/pygame/pygame/pull/631 Fix failing tests test_aapolygon and test_pie https://github.com/pygame/pygame/pull/630 Fix freetype rotation rendering https://github.com/pygame/pygame/pull/596 aaline cleanup https://github.com/pygame/pygame/pull/582 draw.aaline: blend correctly https://github.com/pygame/pygame/pull/577 https://github.com/pygame/pygame/pull/573 Fixed FreeType memory leaks https://github.com/pygame/pygame/pull/571 Fix surface.blits() bugs
https://github.com/pygame/pygame/pull/560 Added math.Vector2 subclass test for issue https://github.com/pygame/pygame/pull/558 Raise TypeError on invalid point arguments https://github.com/pygame/pygame/pull/557 Update typecheck to allow subtypes https://github.com/pygame/pygame/pull/545 update system font lists in sysfont.py https://github.com/pygame/pygame/pull/538 Mac fonts support using system_profiler https://github.com/pygame/pygame/pull/559 Allow clean silencing of support prompt https://github.com/pygame/pygame/pull/553 Fix homebrew travis mac builds https://github.com/pygame/pygame/pull/551 Fixed freezing while playing music from file objects https://github.com/pygame/pygame/pull/550 updated for python 3 https://github.com/pygame/pygame/pull/546 Improve message on failed imports & cleanup https://github.com/pygame/pygame/pull/544 Spelling fix in examples/glcube.py https://github.com/pygame/pygame/pull/540 DirtySprite subclass allow other _layer values https://github.com/pygame/pygame/pull/536 dependency version into README & Cleanup SDL1.2 https://github.com/pygame/pygame/pull/534 More test cleanups. https://github.com/pygame/pygame/pull/535 draw_py for Python algos & aaline testing https://github.com/pygame/pygame/pull/534 More Test cleanup https://github.com/pygame/pygame/pull/518 Organise the docs modules by usage, add search form. https://github.com/pygame/pygame/pull/517 Test cleanup n+1 : yet another test cleanup branch https://github.com/pygame/pygame/pull/516 PY_VERSION_HEX < 0x02070000 : cleanup https://github.com/pygame/pygame/pull/515 Fix draw polygon ; tests & code cleanup https://github.com/pygame/pygame/pull/514 Cleanup Python < 2.7 references https://github.com/pygame/pygame/pull/511 Fix odd-width ellipses not drawing correctly https://github.com/pygame/pygame/pull/510 Update unit tests draw.ellipse, add unit tests draw.(aa)line(s) https://github.com/pygame/pygame/pull/509 Midi tests : add, refactor, cleanup https://github.com/pygame/pygame/pull/508 More test method cleanup https://github.com/pygame/pygame/pull/507 Improve mac compile times on travis. https://github.com/pygame/pygame/pull/505 Remove "if 1:" pattern in tests https://github.com/pygame/pygame/pull/504 Cleanup mixer test https://github.com/pygame/pygame/pull/503 Clang format all the src_c/.c files https://github.com/pygame/pygame/pull/502 Cleanup some test methods & test/sndarray_test.py https://github.com/pygame/pygame/pull/501 Add draw_ellipse unit test https://github.com/pygame/pygame/pull/500 Test for overlap mask https://github.com/pygame/pygame/pull/499 Remove boilerplate imports from top of test files https://github.com/pygame/pygame/pull/498 Adding a test for Thick Line Bug https://github.com/pygame/pygame/pull/493 0 sized masks are now possible https://github.com/pygame/pygame/pull/489 transform.scale does not crash for zero sized surfaces https://github.com/pygame/pygame/pull/488 Added unit test 'test_zero_surface_transform' for issue 411 https://github.com/pygame/pygame/pull/486 Moved jquery.plugin.docscomments.js into pygameweb. https://github.com/pygame/pygame/pull/485 Repo cleanup. 8 things in top level. Rest in buildconfig/. Old stuff removed. https://github.com/pygame/pygame/pull/484 Added mac sdl2 support. Changed config.py -sdl2 https://github.com/pygame/pygame/pull/483 Support older mac core duo 2 cpus https://github.com/pygame/pygame/pull/482 The giant SDL2_patches merging PR. https://github.com/pygame/pygame/pull/476 Do not try to add portmidi on freebsd. It does not exist. https://github.com/pygame/pygame/pull/475 Resurrect Python 3.4 builds on Appveyor
You can try it out with the following: python -m pip install pygame==1.9.5.rc2 --pre
You can try it out with the following: python -m pip install pygame==1.9.5.rc2 --pre
You can try it out with the following: python -m pip install pygame==1.9.5.rc1 --pre
You can try it out with the following:
python -m pip install pygame==1.9.5.rc1 --pre
Nothing published for this version
pygame 1.9.4 has been released into the wilds!
<p align="center"><a href="https://www.pygame.org/wiki/about"><img src="https://www.pygame.org/images/logo.png" alt="pygame 1.9.4" width="300px"/></a></p>
pygame 1.9.4 has been released into the wilds!
A very special thanks to the people who have volunteered commits to pygame since the last release. In alphabetical order...
Adam Di Carlo (@adicarlo) | Christian Bender (@christianbender) | Don Kirkby (@donkirkby) | endolith (@endolith) | hjpotter92 (@hjpotter92) | Ian Mallett (@imallett) | Lenard Lindstrom (@llindstrom) | Mathias Weber (@mweb) | Matti Picus (@mattip) | Nicholas Tollervey (@ntoll) | (@orangudan) | Raymon Skjørten Hansen (@raymonshansen) | René Dudfield (@illume) | Stefan Bethge (@kjyv) | Stuart Axon (@stuaxo) | Thomas Kluyver (@takluyver) | Tobias Persson (@Anisa)
I'm probably missing some people, and also missing some people who contributed in other ways. For example, in discussions, issue reports, helping out on the wiki, the website, and for helping others in the community, and providing good vibes. So whilst the commits are easy to use to make a list of people to thank, it's not inclusive of everyone who deserves thanks.
#451 #460 #467 #468 #469 #470 #444 link to help pages when compile fails. #443 In set_error get_error tests ignore first error. Could be anything. #442 Freetype requires pkg-config instead of freetype-config now. #439 Surface.blits #435 Adding pypy builds for Mac on travis. #432 Appveyor pypy and pypy3 windows 32bit. #431 Implement object alloc caching for rect.c to improve on pypy. #427 PixelArray.close(), with PixelArray(surf) as px, context manager. #426 Skip tests that rely on arrinter and pythonapi on pypy. #420 pypy didn't like tp_dictoffset hack in events. Make our own setter, getter. #418 draw.aaline should work with ARGB surfaces (like on mac). #416 Vector cleanup #415 So virtualenv gets a focused window on Mac too. #414 Mac Travis homebrew fix #413 Jedi confused by pygame imports. Make it happy. #408 pygame.transform.threshold tests, keyword arguments, docs. #403 pygame.math.Vector2/3 not experimental #398 Clean up _camera_vidcapture.py unused code, and document a bit. #394 Add pitch bend to MIDI library #392 Add pypy builder to travis ci, and allow it to fail. #391 ppc64le and other Debian fixes #389 pygame.draw.circle with a thickness had a weird moiré pattern. #387 test python 3.7 on travis CI. #386 python 3.7 fixes. #384 pygame.display doc fixes. #381 import rect.inflate docs. #363 Fix several typos, and improve grammar in the introduction. #361 Add unit test for some key functions. #360 update math.c for pypy. #357 add UYVY support for better linux camera support. #356 Fix aaellipse artifacts 703350f68182641fe72ef1f41d81998fb6d4b385 Update Rect slicing for Python 3 6d0e97a38b5d2d549f1fee8b912a072731ea33bb bug fix for freetype.Font.render_to() #78 Add environment PYGAME_EXTRA_BASE to add an extra base directory to the start of the search path. #77 Build alsa libs ourselves for manylinux builds. #76 Docs fixup.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →