Pygame 2.0.0.dev4 pre release

:video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader:

Gโ€™day! Itโ€™s 2.0.0.dev4 time!

:video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader::alien::video_game::space_invader:

python3 -m pip install pygame==2.0.0.dev4 --pre --user

What goodies do we have in store?

pygame 2.0.0.dev4 is a python package using SDL 2 aiming for full backwards compatibility.
pygame runs on CPython 2.7-3.8 and also on pypy (the JIT accelerated python).

Firstly, some SDL2 compatibility issues were fixed. Like the window initially defaults to black, and the unicode field of keydown events is filled. Thanks to @dlon.

Speaking of SDL2, we are now shipping SDL 2.0.10 which includes stuff like batching renderer and lots of bug fixes, including to the Metal renderer on Mac, lots of other stuff. Thanks to all the libSDL people.

Many, many fixes thanks to @charlesej and some static analysis tools.

Some new contributors deserve thanks :tada: :balloon: including
@thiagojobson @flaambe @mampersat @s0lst1ce

@robertpfeiffer and @dlon fixed some issues with the fancy SCALED feature, and @robertpfeiffer got the toggle_fullscreen function working more reliably too!

And speaking of helping out, @robertpfeiffer also helped out @nhpackard with an optimization to transform.scale. When scaling to twice the width and height, a special optimized routine by @nhpackard is used.

Lots of fixes and tests happened to the draw, and mask modules mostly thanks to @charlesej (but also to @thiagojobson)

Lots of infrastructure changes happened to our build system to make things easier for
developers. Firstly we started using LGTM which runs some lint tools on our code for us.
Secondly we started using lots of other testing tools. Thanks to Travis CI we have a
Power PC CPU robot building things. @takluyver made a PR for the new manylinux2010 which
we sadly havenโ€™t started using yet. As usual a tiny bit more of the release process has been automated.

An article for developers on contemporary C tools is still unfinished(but probably useful for developers of pygame). Hereโ€™s some issues of those tools applied to pygame: https://github.com/pygame/pygame/labels/tooling

Again @charlesej in particular has been amazing in going through mountains of issues uncovered.
The pygame code base is significantly cleaner, more portable, and less buggy because of it.

Indic Scripts including Hindi, Telugu, Tamil are closer to being rendered now thanks to the
work of new contributor @peanutbutterandcrackers tracking down things and writing
some automated tests for it. This work is ready to be developed further and is moving forward! Thanks!

Thanks for all the people trying out the pygame 2.0.0.dev3 builds and (submitting issues) or patches including: @larryhastings @humanbeast7 @Pololot64 @mcpalmer1980
@husano896 @galexandreg @mgedmin @cgohlke @cipri-tom @noisnemid @DudmasterUltra
@agdt3 @crowjdh @JOHNIDnDNIW @lordmauve @dheerajakula

Speaking of bugs, as people have been using the 2.0.0.dev3 release, theyโ€™ve been finding various bugs. All SDL2/pygame 2 related compatibility issues reported by people are marked as critical .

These โ€œcriticalโ€ issues will be a focus as we move forward to shipping pygame 2.0.0.
If you feel like helping out with any of these โ€œcriticalโ€ issues, that would be highly appreciated.

- confirm the bug (on your platform).
- cheer people on in the issues
- write a minimal working example script so people can reproduce the issue.
- write a test case, or try and clarify the issue

ps. DaFluffyPotato released a new commercial game using the pygame 2.0.0.dev3 release.
โ€œDrawn Down Abyssโ€ is getting good reviewsโ€ฆ check it out:


pps. Feels like progress? Happy hacking!