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>
>
>

Reply via email to