Skip to main content

News

We have a new page on how to contribute to pygame. It's still being improved, but already there is a step by step guide on how to write your first contribution to an Open Source project. And you don't even need to know assembly language to be able to do it! We have made a list of "low hanging fruit". Which are issues which should be pretty easy to help out with just a bit of python knowledge.

Additionally we now have C API docs which should be helpful for those wanting to hack on C code.

So, if you want to help out, please pop into our web based chatroom(discord) in the "contributing" channel. Or take a look at our contribute page for notes on how to get started.

Learn python by contributing to pygame

The idea is that people can learn by contributing to a Free Libre Open Source project.

Why? (teaching by helping people contribute to FLOSS projects.)

  • Because you don't learn karate from a book.
  • Builds social connections and skills.
  • Portfolio, and evidence of talent.

Why pygame? (rather than some other project)

  • It's sort of fun compared to some topics (better than watching paint dry at least).
  • Because it's sort of well known project (millions of users). ... with almost zero full time or even part time developers (that's why it's called pygame zero).
  • Because we have learning resources and easy issues prepared.
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.

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.

pyglet 1.3.2 has been released. Compatibility with Python 3.7 has been added.

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.

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.

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 https://github.com/marcusva/py-sdl2 or https://pypi.python.org. The documentation, listing all of its features, can be browsed online at http://pysdl2.readthedocs.org.