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