Skip to content

Releases: pygame/pygame

2.0.0.dev4

07 Oct 20:10
Compare
Choose a tag to compare
2.0.0.dev4 Pre-release
Pre-release

馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢

G'day! It's 2.0.0.dev4 time!

馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢馃懡馃幃馃懢

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

What goodies do we have in store?

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 馃帀 馃巿 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: 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.
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

critical


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:
https://www.pygame.org/project/4294
pps. Feels like progress? Happy hacking!

2.0.0.dev3 - pre release

14 Jul 15:41
Compare
Choose a tag to compare
Pre-release

There are binaries for Mac, Windows, and Linux with SDL2.

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

So... what's new? Here's a few things.

The documentation has been made more readable on big screens and small ones. It is also updating from github again. @charlesej in particular has made a lot of documentation fixes. See https://www.pygame.org/docs/

It's easier to make custom types that will work with multiple GUI libraries.

FIRST = pygame.event.custom_type()

(No more USEREVENT+1 nonsense) Also with pygame 2.0.0.dev3 you can have 8192 custom events instead of 32.

Thanks to @charlesoblack (first time contributor ya!) there is a pygame.Color.lerp() function now. It returns a linear interpolation.

>>> color.lerp(color2, 0.0) -> color
>>> color.lerp(color2, 0.5) -> halfway_color
>>> color.lerp(color2, 1.0) -> color2

@dlon added support for some Modern OpenGL features. For more detail see: #1127

Now you can do one-shot timers like this: pygame.time.set_timer(EVENT, 1000, 1)

Thanks to @bennuttall and the piwheels project, pygame has binary wheels for the raspberian linux. See https://www.piwheels.org/project/pygame/

The sound mixer has moved into the modern age and now defaults to a small low latency buffer size of 512 bytes, and uses CD quality audio by default.

Check these lists out for more detailed info on what's changed:

2.0.0.dev2 - pre release

19 Jun 22:49
Compare
Choose a tag to compare
Pre-release

There are binaries for Mac, Windows, and Linux with SDL2.

You can try it out with a command something like this:
python3 -m pip install pygame==2.0.0.dev2 --pre --user

Also, SDL2 is the default now when you compile from source. You can use python setup.py install -sdl1 to compile against SDL 1.2.

Apart from lots and LOTS of work on the Color, Mask, and pygame.draw stuff, there are a few more experimental things. Like the sprite module compiled with Cython into C code. Additionally there is the new SCALED mode, for automagically scaling your low resolution game into a viewable sized window (a 320x200 window is tiny on a 4k screen... so this makes it bigger and scales everything for you).

Check these lists out for more detailed info on what's changed:

2.0.0.dev1

05 May 17:28
Compare
Choose a tag to compare
2.0.0.dev1 Pre-release
Pre-release

This pre-release development build has some windows and mac binaries uploaded which use SDL2.

(plus a whole lot of other improvements over 1.9.5)

pygame 1.9.6 released with a few regression bug fixes

25 Apr 13:30
Compare
Choose a tag to compare

Whilst we focus like a shark-lazer on pygame 2, here is a bonus pygame 1.9.6 with a couple of small regression bug fixes.

  • mp3 via smpeg was missing in manylinux builds.
  • mixer thread deadlock issue when controlling it from different threads.
  • pygame.version.vernum now has major, minor, and patch attributes.

1.9.6.rc1

16 Apr 11:57
Compare
Choose a tag to compare
1.9.6.rc1 Pre-release
Pre-release

If anyone is able to test, that'd be wonderful... especially on linux.

python3 -m pip install pygame==1.9.6.rc1 --user --pre

  • mp3 via smpeg was missing in manylinux builds.
  • mixer thread deadlock issue when controlling it from different threads.

1.9.5 released into the wilds

31 Mar 10:45
Compare
Choose a tag to compare

pygame 1.9.5

TLDR; Some highlights.

Every single source file has been heavily modified and moved in this release. Initial (source code only) support for SDL2 has been merged in. We also support compiling with SDL1 in the same code base, so the migration to pygame 2 is easier. pygame 2 will be released with SDL2 being the default backend when some remaining issues are ironed out. The 1.9.x releases will continue with SDL1 until then. Also, the C API of pygame is undergoing a transformation with lots of cleanups. Then there have been plenty of other cleanups all throughout the python code as well. There's still lots to clean up, but things should be significantly easier for people to contribute (馃憢 hello and thanks new contributors!). The documentation has been improved with better examples links, search functionality, and improved navigation. Support for older Macs, and newer Macs has been improved. The mask, midi, draw, and math modules have gotten lots of polish with rough edges removed.

Thanks

A very special thanks to the people who have volunteered commits to pygame since the last release. In alphabetical order...

(@alphaCTzo7G) | Amos Bastian (@amosbastian) | Andrey Lopukhov (@AndreyX86) | Augusto Noronha (@augusto2112) | Bernardo Sulzbach (@bernardosulzbach) | (@Bottersnike) | Cai Q.T. (@CAIQT) | (@Cerealdragon) | Charles (@charlesej) | (@ChrisWeissNike) | (@cmtrapp02) | Daniel Molina (@daniel-molina) | David Caughell (@DavidCaughell) | David L枚nnhager (@dlon) | (@dr0id) | burmer (@dtschirmer) | (@e1000) | xFly_Dragon (@husano896) | (@IchMageBaume) | Ren茅 Dudfield (@illume) | (@LambdaGoblin) | Lenard Lindstrom (@llindstrom) | 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) |

Quite a few new people have helped out with this release 馃

An equally special thanks to everyone else who has contributed in other ways. Thanks to claudeb, imallet, and deshipu for moderating the discord chat to keep it friendly. Thanks to the twitter folk, and the stackoverflow Q&A people. Thanks to everyone who puts their game up on the pygame website for others to look at. Thanks to people making tutorials and sharing articles & books they've written. Thanks to the r/pygame mods and community. Thanks to pyladies groups for running fun sessions, and for making things better. Thanks to the teachers providing feedback, and for doing something fun with their students. Thanks to Debian, Raspberrypi, and all the other community groups. 馃枻

More details.

#945 Vector: Explain slices and swizzling
#944 Update surface documentation
#937 Make mask offset boundary checking consistent
#936 Update midi documentation
#931 Fix drawing 1 pixel wide off-surface ellipses
#929 Use SDL_RWops instead of pg_FopenUTF8.
#928 Fix LayeredDirty's inconsistent use of its source rect
#927 Workaround for locale errors with PyPy
#926 Update dependencies for manylinux builds.
#924 Upload .whl binaries to a github draft release when creating tag.
#923 Update scrap documentation
#922 #881 #879 Fix zero-sized mask segfaults
#920 Fix the SystemError when no type specific clipboard content exists.
#917 Update scrap tests
#914 Update freetype tests
#911 #893 #889 #876 #874 #844 #840 #831 #819 Improved mask tests
#900 Add sprite tests
#899 bugfix for dirty sprite when using a source rect
#891 Add missing Vector2.magnitude()
#873 Fix mask index out of bounds segmentation fault
#806 Mask constructor 'fill' argument
#807 Use version directives consistently in documentation and update style
#805 Event functions: pump parameter and keyword arguments
#803 Add customized repr()/str() output for Mask objects
#802 Fix aaline()/aalines() not drawing on a surface's border
#797 Keep surface alpha value for copied surfaces with SRCALPHA flag
#760 #707 Load images on multiple threads properly
#783 Fix overlap_mask() making incorrect mask
#751 #749 #748 #746 #745 Added get_init() to all modules with an init() function
#725 Allow camera module to be used on Windows
#722 API version macros
#698 Use pre styles in docs
#670 Converting between ANSI notes and MIDI notes or frequencies
#663 Compile for PyPy 3 and PyPy fixes
#665 Chimp tutorial: reindent and clean some code
#664 Chimp tutorial: fix reST syntax
#656 #649 Handle Unicode objects and paths properly
#631 Fix failing tests test_aapolygon and test_pie
#630 Fix freetype rotation rendering
#596 aaline cleanup
#582 draw.aaline: blend correctly
#577 #573 Fixed FreeType memory leaks
#571 Fix surface.blits() bugs

#560 Added math.Vector2 subclass test for issue
#558 Raise TypeError on invalid point arguments
#557 Update typecheck to allow subtypes
#545 update system font lists in sysfont.py
#538 Mac fonts support using system_profiler
#559 Allow clean silencing of support prompt
#553 Fix homebrew travis mac builds
#551 Fixed freezing while playing music from file objects
#550 updated for python 3
#546 Improve message on failed imports & cleanup
#544 Spelling fix in examples/glcube.py
#540 DirtySprite subclass allow other _layer values
#536 dependency version into README & Cleanup SDL1.2
#534 More test cleanups.
#535 draw_py for Python algos & aaline testing
#534 More Test cleanup
#518 Organise the docs modules by usage, add search form.
#517 Test cleanup n+1 : yet another test cleanup branch
#516 PY_VERSION_HEX < 0x02070000 : cleanup
#515 Fix draw polygon ; tests & code cleanup
#514 Cleanup Python < 2.7 references
#511 Fix odd-width ellipses not drawing correctly
#510 Update unit tests draw.ellipse, add unit tests draw.(aa)line(s)
#509 Midi tests : add, refactor, cleanup
#508 More test method cleanup
#507 Improve mac compile times on travis.
#505 Remove "if 1:" pattern in tests
#504 Cleanup mixer test
#503 Clang format all the src_c/.c files
#502 Cleanup some test methods & test/sndarray_test.py
#501 Add draw_ellipse unit test
#500 Test for overlap mask
#499 Remove boilerplate imports from top of test files
#498 Adding a test for Thick Line Bug
https://github.com/pygame/pygam...

Read more

1.9.5.rc2

29 Mar 09:16
Compare
Choose a tag to compare
1.9.5.rc2 Pre-release
Pre-release

You can try it out with the following:
python -m pip install pygame==1.9.5.rc2 --pre

1.9.5.rc1

24 Mar 16:40
Compare
Choose a tag to compare
1.9.5.rc1 Pre-release
Pre-release

You can try it out with the following:
python -m pip install pygame==1.9.5.rc1 --pre

pygame 1.9.4 released into the wilds

19 Jul 09:25
Compare
Choose a tag to compare

pygame 1.9.4

pygame 1.9.4 has been released into the wilds!

TLDR; Some highlights.

  • python 3.7 support.
  • beta pypy support. See Are we pypy yet?.
  • pygame.draw fixes
  • pygame.math is not experimental anymore. Speedups and bugfixes.
  • Debian, Mac homebrew, mac virtualenv, manylinux and other platform fixes.
  • documentation fixes, jedi support for type ahead in editors like VSCode and VIM.
  • Surface.blits for blitting many surfaces at once more quickly.

Thanks

A very special thanks to the people who have volunteered commits to pygame since the last release. In alphabetical order...

Adam Di Carlo (@adicarlo) | Christian Bender (@christianbender) | Don Kirkby (@donkirkby) | endolith (@endolith) | hjpotter92 (@hjpotter92) | Ian Mallett (@imallett) | Lenard Lindstrom (@llindstrom) | Mathias Weber (@mweb) | Matti Picus (@mattip) | Nicholas Tollervey (@ntoll) | (@orangudan) | Raymon Skj酶rten Hansen (@raymonshansen) | Ren茅 Dudfield (@illume) | Stefan Bethge (@kjyv) | Stuart Axon (@stuaxo) | Thomas Kluyver (@takluyver) | Tobias Persson (@Anisa)

I'm probably missing some people, and also missing some people who contributed in other ways.
For example, in discussions, issue reports, helping out on the wiki, the website, and for helping others
in the community, and providing good vibes. So whilst the commits are easy to use to make a list of people to thank, it's not inclusive of everyone who deserves thanks.

More details.

#451 #460 #467 #468 #469 #470
#444 link to help pages when compile fails.
#443 In set_error get_error tests ignore first error. Could be anything.
#442 Freetype requires pkg-config instead of freetype-config now.
#439 Surface.blits
#435 Adding pypy builds for Mac on travis.
#432 Appveyor pypy and pypy3 windows 32bit.
#431 Implement object alloc caching for rect.c to improve on pypy.
#427 PixelArray.close(), with PixelArray(surf) as px, context manager.
#426 Skip tests that rely on arrinter and pythonapi on pypy.
#420 pypy didn't like tp_dictoffset hack in events. Make our own setter, getter.
#418 draw.aaline should work with ARGB surfaces (like on mac).
#416 Vector cleanup
#415 So virtualenv gets a focused window on Mac too.
#414 Mac Travis homebrew fix
#413 Jedi confused by pygame imports. Make it happy.
#408 pygame.transform.threshold tests, keyword arguments, docs.
#403 pygame.math.Vector2/3 not experimental
#398 Clean up _camera_vidcapture.py unused code, and document a bit.
#394 Add pitch bend to MIDI library
#392 Add pypy builder to travis ci, and allow it to fail.
#391 ppc64le and other Debian fixes
#389 pygame.draw.circle with a thickness had a weird moir茅 pattern.
#387 test python 3.7 on travis CI.
#386 python 3.7 fixes.
#384 pygame.display doc fixes.
#381 import rect.inflate docs.
#363 Fix several typos, and improve grammar in the introduction.
#361 Add unit test for some key functions.
#360 update math.c for pypy.
#357 add UYVY support for better linux camera support.
#356 Fix aaellipse artifacts
703350f Update Rect slicing for Python 3
6d0e97a bug fix for freetype.Font.render_to()
#78 Add environment PYGAME_EXTRA_BASE to add an extra base directory to the start of the search path.
#77 Build alsa libs ourselves for manylinux builds.
#76 Docs fixup.