๐ The 28th of October 2020 is the pygame 2.0 release date, because pygame turns 20 years of age.
,--. | oo| | ~~| ooooooooooooo|/\/\| 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! ๐ ๐ฐ ๐ฅณ
python3 -m pip install pygame=2.0.0.dev24
๐ A bunch of fixes and speedups before the release.
0๏ธโฃ 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() #2247 Ankith @ankith26
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 improvements, and pygame.midi fixes.
python3 -m pip install pygame==2.0.0.dev20
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.
pip install pygame==2.0.0.dev16
๐ The 28th 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...
solarwolf on SDL2 and pypy
๐ > 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
Josip Komljenoviฤ @MightyJosip
Sigurรฐur Sveinn Halldรณrsson @siggisv
Ankith @ankith26
๐ This time 4 'critical' backwards compatibility issues were fixed since the last release.
pip install pygame==2.0.0.dev14
dreamlines
-- Players, only love you when they're playing
๐ With a very tiny little bit of discussion it was sort of decided that the 28th 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.
13
Ankith @ankith26
Josip Komljenoviฤ @MightyJosip
Dan Lawrence @MyreMylar
Adam Andrews @adamandrews1
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.