Skip to main content


pygame 1.9.4 released — 19 Jul, 2018
pygame 1.9.4
pygame 1.9.4 has been released into the wild!

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.


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 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 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.
pyglet 1.3.2 released — 13 Apr, 2018

pyglet 1.3.2 has been released. Compatibility with Python 3.7 has been added.
pyweek 25 — 5 Apr, 2018
pyweek 25 is on soon too.
Ludumdare 41, 48h - from scratch - game dev comp. — 21 Mar, 2018

Join us for the 41st Ludum Dare! Our first event of 2018! Let's all get together for two days, and do something fun. "Real artists ship.", so let's do that.

Ludum Dare is a regular community driven game development jam. The goal is, given a theme and 48 hours, to develop a game from scratch. Ludum Dare aims to encourage game design experimentation, and provide a platform to develop and practice rapid game prototyping. We all gather at once to do something exciting, and push each other forward.

You can start suggesting themes now, and get involved. Saturday April 21st to Tuesday April 24th, 2018 -- see the website for the exact time in your timezone.

I'm in.

4000 — 15 Mar, 2018
print(' <3, '.join(["thank you"] * 13)) — 5 Mar, 2018
Some website updates — 16 Feb, 2018
There are a few website updates. The project release descriptions are shown correctly on the project pages again, and wiki editing is improved.

You can find more details in "A fun week working on pygame stuff.", along with information about recent pygame development.
PyWeek #24 challenge judging has begun! — 23 Oct, 2017

Check out these PyWeek #24 entries:
PySDL2 0.9.6 released — 11 Oct, 2017

PySDL2 is a slim wrapper around the SDL2 libraries and can be used without further ado using Python and a binary distribution of the SDL2 libraries.
The following changes have been made in version 0.9.6:
  • updated sdl2 to include the latest changes of SDL2 (release 2.0.6)
  • fixed issue #98: wrap sdl2.SDL_GetHintBoolean() correctly
  • fixed issue #99: wrap sdl2.sdlmixer.Mix_PausedMusic() correctly
  • fixed issue #104: sdl2.ext.Resources.scan() shows the correct path on errors now
  • fixed issue #106: fix TextureSprite.__repr__() for an unset center property
  • fixed some minor GC issues in sdl2.ext.sprite and sdl2.ext.font
  • fixed the __getattr__ implementation for sdl2.ext.ebs.Entity
  • fixed background colour handling for multiline text surfaces
You can download PySDL2 0.9.6 from or The documentation, listing all of its features, can be browsed online at
pyglet 1.3.0rc1 and cocos2d 0.6.5 released — 31 Aug, 2017

  1. pyglet 1.3.0rc1 has been released. The entire pyglet codebase is now compatible with both Python 2 and Python 3 without the need for 2to3.
  2. cocos2d 0.6.5, an update that adds compatibility with pyglet 1.3, has been released.