Congratulations René and everyone involved in this! I know a huge amount of time and effort has gone in to this point, so it's great to see it in a release.
Thomas On Wed, 28 Oct 2020 at 18:10, René Dudfield <ren...@gmail.com> wrote: > > ,--. > | oo| > | ~~| o o o o o o o o o o o o o > |/\/\| > python3 -m pip install pygame==2.0.0 > > The 28th of October 2020 is the pygame <https://pygame.org/wiki/about> > 2.0 release date, because pygame turns 20 years of age. > [image: pygame-head-party.png] > 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? > > - Support for Metal, Direct 3d, Vulkan, OpenGL 3.0+ in various > profiles (core, compatibility, debug, robust, etc), OpenGL ES, and other > modern hardware accelerated video APIs across many platforms. > - SSE2/Neon assembly image drawing. Much faster drawing routines, > image loading, and alpha blending. > - Type Hints, for code completion (and to help you make the squiggly > lines disappear) in editors and IDEs. > - Code cleanup, using lots of code robustness tools like static > analyzers, and automated CI/CD. We've been able to help dozens of people > new to community projects contribute. We have lots of work to go on code > quality, but we're currently the highest rated Python and highest rate C > large project on LGTM. > - Many, many bug fixes including in our pygame.draw routines, > pygame.math(for vectors), and pygame.mask for pixel perfect collision > detection. > - better support for pypy (the fast JIT based implementation of > python). > - libsdl version 2 support. Technically pygame 2.0 still works with > SDL 1, but we recommend SDL2 which is vastly improved over SDL1 for most > use cases. Probably we will remove SDL 1 support starting pygame 2.1. > - Touch support (multitouch, gestures, etc) > - Audio input support (make games with your microphone!). > - Message alert boxes (Press OK, or Cancel). > - Better keyboard support. Proper unicode input and IME support. > - Much improved game controller support. > - Better image and audio format support. Including: webp, 32bit wav > files, and much more reliable mp3 support. > - Multiple display support, and multiple window support (multi window > support is still experimental, more will come in pygame 2.1). > - Android support through python for android (fork of pygame subset > for android). Better documentation, and better support will come in future > releases. > - to make distributing your apps easier, a built in "pyinstaller > hook"and compatibility with cxfreeze. > - binary "wheels" on many platforms and versions of python from the > old python 2.7 - to the latest python 3.9 (and with pypy!). > - lots of quality of life improvements like 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. > - plenty of new examples, like 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. > - Hundreds of documentation improvements, include a new Korean > tutorial. > - a special SCALED mode which takes low pixel games and automatically > translates them to a larger window. Imagine your 320x200 resolution game of > glorious pixel art... on modern screens that would be a very tiny windows. > Now with SCALED it shows up big on a Full HD screen, or even a 4K/8K screen > and the translation of mouse coordinates and up-scaling of pixels is done > for you (hardware accelerated of course). > > 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). > thank you 🎉 > > 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 <https://github.com/dlon>) | René Dudfield (@illume > <https://github.com/illume>) | Charles (@charlesej > <https://github.com/charlesej>) | Dan Lawrence (@MyreMylar > <https://github.com/MyreMylar>) | Ankith (@ankith26 > <https://github.com/ankith26>, Niels Thykier (@nthykier > <https://github.com/nthykier>) | Lenard Lindstrom (@llindstrom > <https://github.com/llindstrom>) | Sigurður Sveinn Halldórsson (@siggisv > <https://github.com/siggisv>) | @robertpfeiffer > <https://github.com/robertpfeiffer> | Josip Komljenović (@MightyJosip > <https://github.com/MightyJosip>) | Travis Chang (@Reminisque > <https://github.com/Reminisque>) | xFly_Dragon @husano896 > <https://github.com/husano896>, Adam Andrews (@adamandrews1 > <https://github.com/adamandrews1>) | (@galexandreg > <https://github.com/galexandreg>) | Thiago Jobson (@thiagojobson > <https://github.com/thiagojobson>) | (@mcpalmer1980 > <https://github.com/mcpalmer1980>) | @charlesoblack > <https://github.com/charlesoblack>, Daniel Pope @lordmauve > <https://github.com/lordmauve>, Thomas Kluyver (@takluyver > <https://github.com/takluyver>) | (@e1000 <https://github.com/e1000>) | > Andy Nguyen (@anguye13 <https://github.com/anguye13>) | (@Starbuck5 > <https://github.com/Starbuck5>) | Ian Mallett @imallett > <https://github.com/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 <https://github.com/pedrodelapena> | > @lkito <https://github.com/lkito> | @khuang0312 > <https://github.com/khuang0312> | @tsadama <https://github.com/tsadama> | > (@Bottersnike <https://github.com/Bottersnike>) | (@alphaCTzo7G > <https://github.com/alphaCTzo7G>) | Amos Bastian (@amosbastian > <https://github.com/amosbastian>) | Andrey Lopukhov (@andreyx86 > <https://github.com/andreyx86>) | Augusto Noronha (@augusto2112 > <https://github.com/augusto2112>) | Bernardo Sulzbach (@bernardosulzbach > <https://github.com/bernardosulzbach>) | (@Bottersnike > <https://github.com/Bottersnike>) | Cai Q.T. (@CAIQT > <https://github.com/CAIQT>) | (@Cerealdragon) | (@ChrisWeissNike > <https://github.com/ChrisWeissNike>) | (@cmtrapp02 > <https://github.com/cmtrapp02>) | Daniel Molina (@daniel-molina > <https://github.com/daniel-molina>) | David Caughell (@DavidCaughell) | ( > @dr0id <https://github.com/dr0id>) | burmer (@dtschirmer > <https://github.com/dtschirmer>) | (@IchMageBaume > <https://github.com/IchMageBaume>) | (@LambdaGoblin > <https://github.com/LambdaGoblin>) | François Magimel (@Linkid > <https://github.com/Linkid>) | (@LiquidFenrir > <https://github.com/LiquidFenrir>) | Mark Hurley (@markph0204 > <https://github.com/markph0204>) | Marius Gedminas (@mgedmin > <https://github.com/mgedmin>) | (@metulburr <https://github.com/metulburr>) > | Michael Farrell (@micolous <https://github.com/micolous>) | Dominik > George (@Natureshadow <https://github.com/Natureshadow>) | Nik (@nikolas) > | Nunu-Willump (@Nunu-Willump) | (@pleboulanger) | Rebecca Chen (@rchen152) > | (@robertpfeiffer <https://github.com/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 <https://github.com/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 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. > Known issues > > We have an up to date list of issues marked with the Compatibility Python > 2 > <https://github.com/pygame/pygame/issues?q=is%3Aissue+is%3Aopen+label%3A%22Compatability+%28Pygame+2%29%22+> > 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: > > - the pygame.cdrom package not being there (mainly because it isn't in > SDL2 anymore). > - pygame.scrap is only working with text, not images (needs some > porting and testing done). > - pygame.event.post is having issues with some event types. > - pygame.display.set_palette is not implemented (not in SDL2). > - display.set_mode() ignores depth value. It just returns one it > thinks is appropriate. > > 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! 🎉 🍰 🥳 > > > <https://user-images.githubusercontent.com/9541/97467489-8bde3c00-1944-11eb-8ebd-6e91db1a8295.png> > ------------------------------ > > - merged PRs > > <https://github.com/pygame/pygame/pulls?q=is%3Apr+is%3Aclosed+merged%3A2018-06-19..2020-10-20+sort%3Aupdated-desc+> > since we started the pygame 2 series in Jul 19, 2018. > - 3306 Commits since 1.9.4 stable release > <https://github.com/pygame/pygame/compare/1.9.4...2.0.0> > - previous pygame release notes > <https://github.com/pygame/pygame/releases> > >