Skip to main content

News

Here are some updates from where we're up to on pygame 2 with SDL2.
  • pygame now compiles with SDL2 from source on at least Mac, Linux, and Windows.
  • SDL2 now does batching with the existing API. Should be in the next release. So no need to integrate SDL_gpu, or to change how we submit surfaces for rendering.
  • Many things are working with SDL2, there are dozens of known issues and test failures however. The main one is color keyed surfaces not working properly. The other big piece of work is getting it to compile on the build bots (travis, appveyor), and making pre releases available.
  • There have been a few more developers contributing (10 in the last month).
  • Work continues on cleanups, making it more developer friendly, and developer out reach. The repo has been cleaned up, removing the clutter, and beginning an internal CAPI refactor. Unit tests have also undergone some cleanups using newer features. python 2.4/2.5/2.6 support has been removed in the code. The contribution guide has been improved. https://www.pygame.org/wiki/Contribute
  • If anyone using pygame in Berlin wants to come along and help talk with people interested in contributing, I am presenting here: https://www.meetup.com/opensourcediversity/events/255369540/
  • We're working toward the 1.9.5 release (the refactor release).
  • There could be 'one more SDL 1.2' release, and we may use that SDL1.2 branch for a 1.9.6 release.
 
Here's the milestone for pygame 2: https://github.com/pygame/pygame/milestone/4
When is pygame 2 done? TLDR; When the pygame API is mostly running in a backwards compatible way on SDL2. When the few parts that are not working are documented as such. When there are binaries available for python 2.7, 3.4, 3.5, 3.6, 3.7 in 32bit/64bit varieties on at least Mac, Linux, Windows.
 
Here's the milestone for pygame 1.9.5 (the refactor release). https://github.com/pygame/pygame/milestone/7
The 1.9.5 release is the 'refactor' release, with the SDL2 branch merged and many cleanups. Being able to compile SDL2 support in is possible from source, but there are known issues with it. Binaries (on pypi and otherwise) should be distributed with SDL 1.2.
 
Thanks to the following people who have been helping out since the last release (sorry if I've missed anyone).

(@alphaCTzo7G) | Amos Bastian (@amosbastian) | Andrey Lopukhov (@andreyx86) | Augusto Noronha (@augusto2112) | (@Bottersnike) | (@Cerealdragon) | (@cmtrapp02) | Daniel Molina (@daniel-molina) | David Caughell (@DavidCaughell) | David L (@dlon) | burmer (@dtschirmer) | René Dudfield (@illume) | (@LambdaGoblin) | Lenard Lindstrom (@llindstrom) | Marius Gedminas (@mgedmin) | (@metulburr) | Dominik George (@Natureshadow) | Nunu-Willump (@Nunu-Willump) | Nik (@nikolas) | Sett (@sw00) |

 

Congrats to DaFluffyPotato for the release of "Super Potato Bruh" on steam: https://store.steampowered.com/app/951360/

Super Potato Bruh is a difficult platformer that uses some elements of the bullet hell genre to create an intense platforming experience. (And it uses python and pygame :) Also... the source is available on itch.io. (https://cmlsc.itch.io/super-potato-bruh)

The pygame Artist in Residence grant celebrates the Python arts community and lends a tiny bit of support to someones art practice. Josh Bartlett is the first recipient.

An artist residency usually works something like; a person spends some time in either a gallery making something to present or in a music club doing a weekly spot. The pygame artist in residence will do it in their own space, but be present on the top of the pygame website in the form of a thumbnail and a link to their patreon/blog/artist statement/website/whatever.

Josh Bartlett who has shared with us some things of what he's been up to. Please see the pygame artist in residence profile page for more info.

Also, Josh is blogging, so you can read about him and some updates on his work there.

ps. Thank you to everyone who applied, and those who helped with selection. Hopefully the next one will go more smoothly as the process is improved.

An artist residency usually works something like; a person spends some time in either a gallery making something to present or in a music club doing a weekly spot. The pygame artist in residence will do it in their own space, but be present on the top of the pygame website in the form of a thumbnail and a link to their patreon/blog/artist statement/website/whatever.

"pygame artist in residence" grant — For someone using python or pygame in their arts practice. Email: email-redacted-because-spam Applications or nominations close: September 15th. Announced: October 1st. Amount: €512 paid by paypal.

Full details at: http://renesd.blogspot.com/2018/08/pygame-artist-in-residence-grant.html

For a couple of years Maxwell Salmon has been working on a game and making a raycaster engine.
An old style game, done in contemporary times.
And it's been made with python and pygame!! An amazing accomplishment.
 
Support Maxwell, and python+pygame gaming...
Play the game here https://maxwellsalmon.itch.io/duga

SMA-DEV has made a badge for us to use (now all we need is a pygame poem).



https://www.pygame.org/ftp/pygame-badge-SMA.png (800x512)
https://www.pygame.org/ftp/pygame-badge-SMA-unscaled.png (200x128)
The badge uses the wtfpl license.

ps. An early Super Magic Adventure demo is out and available at https://supermagicadventure.itch.io/demo

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 "good first issue". 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.