our projects - recent releases

pygame.org welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not. Once you finished getting started you could add a new project or collaborate with other people. Or perhaps you're interested in making pygame (the python multimedia library) itself better? First you may need to learn a thing or two about pygame by reading the docs.

London's Burning! Free and open source, by jellyberg

A game about defending WW2 London from the blitz! Download for Windows for free
November 17, 2015

Color Tower Defense 2.24, by Mad Cloud Games

Color Tower Defense is a game where you must use unique towers to defend off the waves of invading enemies. Upgrade your towers into one of the many choices for increased firepower. The more difficult levels require quick placement and selling of towers in order for them to keep the enemies in range and to be most effective.
November 12, 2015

Pygame SGE 0.21, by Julian Marchant

An easy to use, universal 2-D game engine.
November 11, 2015

koxinga v0.2.1b, by nakayama

Like board game Jamaica
November 08, 2015

koxinga v0.1.8e, by nakayama

Like board game Jamaica
November 06, 2015

Frijolin 0.9, by Mike B

The world's most thrilling platform game to star an anthropomorphic pea
October 16, 2015

Project Interstellar alpha, by Pixdigit

This is the pre-alpha version of a project of mine. Currently developed in my free time. Helpers are always welcome (and credited)
October 09, 2015

Turn Soccer Online, by juan antonio hernandez

TSO is a turn-based soccer game, inspired in the hattrick.org roleplay. TSO es un juego de turnos de futbol inspirado en hattrick.org. El juego esta en fase alpha, pero si queréis echarle un vistazo, encantado. Any feedback is welcome
October 09, 2015

Project Interstellar, by Pixdigit

This is the pre-alpha version of a project of mine. Currently developed in my free time. Helpers are always welcome (and credited)
October 01, 2015

PC-BASIC 15.08, by Rob Hagemans

A free, cross-platform emulator for GW-BASIC, BASICA, PCjr Cartridge Basic and Tandy 1000 GW-BASIC.
September 11, 2015

Far West 1789 0.0.1, by gino ingras

Shooter Game, easy, funny, and i hope addictive. From 3 to 99 years old.
September 06, 2015

Learn Music 1.1, by Diliup G

A Music Educational Tool written entirely in Python and Pygame
September 06, 2015

Pygame SGE 0.20, by Julian Marchant

An easy to use, universal 2-D game engine.
August 26, 2015

Planet GP 1.2, by Ted Hunt

Planet GP By Tormented Pixels The objective of the game is to race around each planet course as fast as possible.
August 26, 2015

PB-Ball 1.6, by tjohnson

Python Basketball Game
August 25, 2015

Bunny and Badgers v0.1, by Wout Bertrums

A Python game with a Bunny and some Badgers
August 25, 2015

pyHashi 1.0, by Howard Wallis

A clone of the logic puzzle Hashi, aka Bridges or Hashiwokakeru
August 21, 2015

Awesome Space Shooter 3.0.1., by Alex Ter-Sarkisov

Turn-based space shooter
August 16, 2015

PC-BASIC 15.03.5, by Rob Hagemans

A free, cross-platform emulator for GW-BASIC, BASICA, PCjr Cartridge Basic and Tandy 1000 GW-BASIC.
August 16, 2015

PB-Ball 1.5.1, by tjohnson

Python Basketball Game
August 15, 2015

anime - Declarative Animation 1.1.0, by Eric Z

This small library is designed to handle "simple" animations in a declarative and clean way. It also provides hooks to allow extension of the current API to allow custom animations.
July 30, 2015

anime - Declarative Animation 1.0.0b3, by Eric Z

This small library is designed to handle "simple" animations in a declarative and clean way. It also provides hooks to allow extension of the current API to allow custom animations.
July 11, 2015

A Lode Runner Story 0.9.5, by Mike Doty

A remake of the original classic combined with popular RPG elements (such as quests, skills, items) and based heavily on player choice.
June 24, 2015

Pygame SGE 0.19, by Julian Marchant

An easy to use, universal 2-D game engine.
June 23, 2015

PC-BASIC 15.03.4, by Rob Hagemans

A free, cross-platform emulator for GW-BASIC, BASICA, PCjr Cartridge Basic and Tandy 1000 GW-BASIC.
June 21, 2015

Ren'Py Visual Novel Engine, by RenPyTom

Ren'Py is an engine that supports the creation of visual novels and dating sims, forms of computer-mediated storytelling. It supports a movie script-like syntax that makes creating simple games easy, while still being customizable and extensible by advanced creators. With no additional work by the game-maker, it supports features expected of all visual novels, like loading, saving, preferences, and rollback.
June 17, 2015

Basic Blind Chess v0.7.3c, by nakayama

Blind Chess also known as "Dark Chess" or "Banqi" or Half Chess , is a two-player Chinese board game played on a 4x8 grid, or half of the xiangqi (Chinese Chess) board. This application is using Taiwan rule.
June 14, 2015

PC-BASIC 15.03.3, by Rob Hagemans

A free, cross-platform emulator for GW-BASIC, BASICA, PCjr Cartridge Basic and Tandy 1000 GW-BASIC.
June 12, 2015

Brick Breakaway 1.1, by Ricardo Bronson

Inspired by the old Breakout games of the 70's and 80's
June 08, 2015

spritesheetlib, by DR0ID

A python lib to load sprites from a spritesheet using a sprite sheet definition file in json format. It includes also a generator for sprite definition files.
June 07, 2015

Brick Breakaway 1.0, by Ricardo Bronson

Inspired by the old Breakout games of the 70's and 80's
June 03, 2015

Card Duel 1.0, by Ricardo Bronson

Simple playing-card based RPG using Python 3 and PySDL2
May 31, 2015

Snot II: The Rubberland [Android] 1.5.9, by Andrey Zamaraev

Android port of my old hardcore puzzle platformer, written in Python/PyGame/PGS4A. Now with 15 levels and a lot of new cool stuff. Really playable. Really hard. Really free.
May 28, 2015

spritesheetlib, by DR0ID

A python lib to load sprites from a spritesheet using a sprite sheet definition file in json format. It includes also a generator for sprite definition files.
May 23, 2015

Snot II: The Rubberland [Android] 1.5.6, by Andrey Zamaraev

Android port of my old hardcore puzzle platformer, written in Python/PyGame/PGS4A. Now with 15 levels and a lot of new cool stuff. Really playable. Really hard. Really free.
May 22, 2015

VillagerSim 1.2.0, by Nick Jarvis and Nick Wayne

A simulation of a small civilization
May 18, 2015


New pygame website now the default front page

The 'hifi' version of the pygame website has been running for over six months now, but now it is the default page and not hiding itself. The old website stuff is still running and can be found at: http://pygame.org/news.html. You can follow development of the website via bitbucket issues https://bitbucket.org/pygame/pygame/issues?component=website. Also please log any issues you have with the website under the "website" component. More and more parts of the old website will slowly be replaced with the new stuff. Until then try and enjoy the Frankenstein abomination that is pygame.org.
August 15, 2015

pygame sprint

There's another pygame sprint on this weekend. This time just in IRC/bitbucket/mailing list. (August 15th - 16th)
August 15, 2015

pygame sprint

There's a pygame sprint this weekend (July 18th - 19th). Checkout the facebook event for details.

July 17, 2015

pyglet 1.2.3 released

Rob van der Most has announced the release of pyglet 1.2.3. pyglet is a cross-platform windowing and multimedia library for Python. Links:

June 22, 2015

cocos2d 0.6.3 released

The cocos2d Team has released cocos2d 0.6.3, a 2D framework for games and multimedia that uses Python, pyglet and six.


June 14, 2015

Blender 2.74 released

The Blender Foundation has released Blender 2.74, an open-source 3D modeling tool with a Python-scriptable game engine. The Blender Game Engine has received some improvements.

June 14, 2015

PyPy 2.6 released

PyPy logo

PyPy 2.6 has been released. PyPy is an implementation of a large subset of the Python (2.7) language. PyPy features a just-in-time compiler that compiles Python code into machine code at run time to increase the execution speed of Python scripts compared to CPython (in most cases).

Change log: http://pypy.readthedocs.org/en/latest/whatsnew-2.6.0.html

Related projects:

June 15, 2015

PyOpenGL 3.1.1a1 released

Mike C. Fletcher has released PyOpenGL 3.1.1a1.

Change log:

  • Python 3.4 compatibility fixes
  • new data-type declarations to match current Khronos
  • ability to use opaque pointers as keys in dictionaries (osmesa fix)
  • removing a few now-redundant hand-written wrappers
  • fix for a missing import on gles2 wrapper
  • tweaked error-message for debugging clarity
  • allow for the shader convenience function to skip validate-on-compile

If you're using PyOpenGL and one of the above fixes sounds like something you care about, then you may want to test with this release. There's not much changed for 3.1.1, so Mike expects that there will be this single alpha, followed by beta and final releases for PyOpenGL 3.1.1.

June 15, 2015

pysdl2-cffi 0.8.0 released

pysdl2-cffi 0.8.0, a Python wrapper for SDL2 written using cffi, has been released.

Change log:

  • The wrapper is now built with cffi 1.1’s verify() mode and requires a C compiler to build. It is much faster than the previous version on CPython.
  • Appveyor-built binary packages now available on Windows. On Windows, the necessary SDL2 DLLs are now a pip-installed dependency.
June 15, 2015

Pygame_sdl2 project announcement

Tom Rothamel has announced that Pygame_sdl2 development is underway. Pygame_sdl2 uses SDL2 and implements a large portion of the pygame API. For now, Pygame_sdl2 is available at https://github.com/renpy/pygame_sdl2.

Here is a link to the announcement: http://archives.seul.org/pygame/users/Apr-2015/msg00010.html.

June 12, 2015





Pygame is a set of Python modules designed for writing games. Pygame adds functionality on top of the excellent SDL library. This allows you to create fully featured games and multimedia programs in the python language. Pygame is highly portable and runs on nearly every platform and operating system. Pygame itself has been downloaded millions of times, and has had millions of visits to its website.

Pygame is free. Released under the GPL License, you can create open source, free, freeware, shareware, and commercial games with it. See the licence for full details.

For a nice introduction to pygame, examine the line-by-line chimp tutorial, and the introduction for python programmers or Chapters 17 to 20 of "Invent Your Own Computer Games with Python".

More information:

Facts About Pygame

  • Silliness built in. Pygame is meant to make software things fun. New silliness is added every 3.1415 seconds.

  • Does not require OpenGL. With many people having broken OpenGL setups, requiring OpenGL exclusively will cut into your user base significantly. Pygame uses either opengl, directx, windib, X11, linux frame buffer, and many other different backends... including an ASCII art backend! OpenGL is often broken on linux systems, and also on windows systems - which is why professional games use multiple backends.

  • Multi core CPUs can be used easily. With dual core CPUs common, and 8 core CPUs cheaply available on desktop systems, making use of multi core CPUs allows you to do more in your game. Selected pygame functions release the dreaded python GIL, which is something you can do from C code.

  • Uses optimized C, and Assembly code for core functions. C code is often 10-20 times faster than python code, and assembly code can easily be 100x or more times faster than python code.

  • Comes with many Operating systems. Just an apt-get, emerge, pkg_add, or yast install away.  No need to mess with installing it outside of your operating systems package manager. Comes with binary installers (and uninstallers) for Windows or MacOS X. Pygame does not require setuptools, or ctypes to install.

  • Truly portable. Supports Linux (pygame comes with most mainstream linux distributions), Windows (95,98,me,2000,XP,vista, 64bit windows etc), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported. You can use it on hand held devices from nokia, game consoles like gp2x, and the One Laptop Per Child (OLPC).

  • It's Simple and easy to use. Kids and adults make games with pygame. Pygame is used in the OLPC project and has been taught in courses to young kids, and college students. It's also used by people who first programmed in z80 assembler, or c64 basic.

  • Does not require a GUI to use all functions. You can use pygame without a monitor - like if you want to use it just to process images, get joystick input, or play sounds.

  • Fast response to reported bugs. Some bugs are patched within an hour of being reported. Do a search on our mailing list for BUG... you'll see for yourself. Sometimes we suck at bug fixes, but mostly we're pretty good bug fixers. Bug reports are quite rare these days, since a lot of them have been fixed already.

  • Small amount of code. It does not have hundreds of thousands of lines of code for things you won't use anyway. The core is kept simple, and extra things like GUI libraries, and effects are developed separately outside of pygame.


The PYGAME Documentation page has a number of tutorials. A Newbie Guide to pygame is very good.

These are some recent tutorials on various pygame topics:

On-line books using Python and Pygame


def show_cook_book_love(screen):
    txt = "I love the CookBook!"
    f = SysFont("Arial", 12)
    s = f.render(txt, 1, (0,0,0))
    screen.blit(s, (0,0))

Posting A Recipe:

  • Please start a new page for each recipe.
  • Use the <pre><code>YOUR CODE</code></pre> tags to put in code.(View source of some other pages to see how it is done.)
  • Except where otherwise noted, recipes posted in the pygame cookbook are in public domain.
  • Tabs are lost when posting, so convert tabs to spaces first if you use them.

Generic recipes

CommandDispatch (A pattern for building GUIs)
MemoizingDecorator (Another lazy resource loader)
SignalSlot (A signal/slot implementation)
Interpolator (An improved interpolator)

PyGame recipes

HeadlessNoWindowsNeeded (Use pygame without using creating a window)
ShadowEffects (Using arrays)

PyOpenGL recipes



Cookbook Code

3D Models




Royalty Free Music

Sound Effects

Royalty-Free Sound Effects


Stock Photos

Clip Art

Free Game Engines

Pixel Art

Other Resource lists

Help (irc, lists)

If you need any sort of help,or just want to shoot the breeze, you can most anytime find people in the pygame IRC channel. irc.freenode.net 6667 #pygame

Mailing List

Pygame maintains an active mailing list. You can email the list at pygame-users@seul.org

If you do not have a mail client configured on your computer you can subscribe to the mailing list by sending a plain-text e-mail to majordomo@seul.org. Leave the subject field blank and in the body put only "subscribe pygame-users" (without the quotes).

You will receive an authentication response. Follow the directions in that e-mail to complete the subscription process.

Forums and Newsgroups

GMane, and google groups offer web based, and newsgroup access to the pygame mailing list. So you can talk with a forum-like interface to the pygame mailing list.

If you prefer newsgroups, GMane is running a newsgroup gateway at gmane.comp.python.pygame.

If you have a google account, and like google groups, there is a mailing list mirror at google groups mirror. To post, you must subscribe to the real mailing list first. It started mirroring the mailing list in 2008/04/28.

For a forum-like interface, you can use Nabble which started mirroring on 2012/05/21.

Mailing list archives are hosted by Gmane and Seul.org.


Notes for hacking, developing, and modifying pygame.

Building pygame.

See the wiki page: Compilation to figure out how to compile pygame on different platforms.

Keeping up with developments.

Try and discuss changes on the mailing list.  Especially if you plan to do a big change, let other people know about it on the mailing list.

Most developers are not on irc all of the time - and some never.  So if you need a more realtime chat try and organise a time on the mailing list.  Email lets people communicate in their own time zones.

The svn wiki page has links to various tools... like an rss feed for changes, a web based svn browser, and also links to the build bot.  So you can read the commit logs.

Commit logs are important to keep them short, and also to summarise the changes you have made.

Buildbots, pygame compiled on every change

There is a pygame github mirror of the bitbucket, which is updated every time there is a commit to master.

The set up more buildbots issue tracks developments in the buildbots.

Links to individual buildbot pages

Generating docs

python makeref.py

The makeref.py program runs Sphinx to generate HTML docs and src/docs/{module}_doc.h C headers from reStructuredText source.

The reStructuredText .rst files are stored in the reST/source and reST/source/ref directories.

An online reStructuredText primer can be found at the Python site.

Sphinx specific markup is described in theSphinx Documentation.

The Python Sphinx package itself depends on Docutils, Jinja2, and Pygments.

For Python 2.x, installing Sphinx will also grab and install its dependencies.

Sphinx can be downloaded from PyPi or using easy-install.

For Python 3.x only the latest repository versions work.

Be sure to install Sphinx last so it does not grab the wrong dependency versions:

svn checkout http://svn.berlios.de/svnroot/repos/docutils/trunk/docutils
hg clone http://dev.pocoo.org/hg/pygments-main pygments
easy_install Jinja2==dev
hg clone http://bitbucket.org/birkenfeld/sphinx/ sphinx

Running tests

To run the tests from the test subdirectory in the Pygame distibution:

    python run_tests.py

To run the tests from the pygame.tests module:

    python -m pygame.tests

In either case the --help command line option will give usage instructions.

Code style

Try and follow the code style of the particular file you are editing.

Use 4 spaces instead of tabs, and Pep-8 generally.  Make sure your editor doesn't insert tabs.

Try to keep things under 80 characters wide.

Try not to mix in white space commits with other code commits.  This makes reading diffs easier if you separate the whitespace updates from the actual changes.

Writing tests.

Tests are in the test/ directory.

Please see test/README.txt for more of a description on the tests, and the testing framework.

A naming convention is used for all tests. So from the name of a module, class, method, or function, you can find the tests for it.

Each module has a test file.  eg. for pygame.surface there is test/surface_test.py

In that file there are methods for each of the classes, functions and methods. So Surface.blit has a 'test_blit' method.  There can be multiple test methods for each method. eg. 'test_blit_keyword_args' in surface_test.py one of a few tests Surface.blit.  Add extra words at the end of the method name to make multiple tests for the same method.

Methods named with todo at the front "todo_blit" are methods that need to be written. Or finished. By default all of the todo tests are skipped by the test runner.  You can however, make the todo_ tests fail - to see how many more tests need to be finished.

Tests can use tags in order to organise them. There are optionally [modulename]_tags.py files for each module. A test/surface_tags.py file is used to specify tags for the pygame.surface module. You can use tags to skip tests on different platforms, or to choose different tests to exclude or run.

There are some test related tools + code in test/util/ .

To see if anything in a module is not documented... you can use: python compare_docs.py pygame.sprite sprite.doc

To generate some test stubs for your unittests from an existing file... you can do: python gen_stubs.py midi


A heading

the content




A heading

the content

project comments


awesome sauce

spotlighted projects

Albow 2.2, by Gregory Ewing

A Little Bit of Widgetry for PyGame
January 29, 2014

glLib Reloaded 0.5.9, by Ian Mallett

OpenGL Library + Shader OpenGL Library + TONS MORE STUFF!
January 26, 2014

Program Arcade Games With Python and Pygame 1, by Paul Vincent Craven

Learn to program using Python and Pygame!
July 19, 2013

Mastermind Networking Lib 4.1.3, by Ian Mallett

A networking lib designed to be simple to use.
June 29, 2013

QANAT 0.7, by Paul Paterson

A shoot-em-up inspired by the classic Galaxians game. Repel waves of invaders using your gun turret. Manage the temperature of the turret to avoid overheating.
April 19, 2013

SGC 0.2.1, by Sam Bull

A GUI toolkit for Pygame, to ease game development for Pygame developers. Works with no code change with a normal Pygame display or with an OpenGL display. This is a lightweight toolkit, with focus on the attention to detail. It is also customisable, allowing developers to theme the widgets to match their game.
March 25, 2013

SubTerrex 0.3.1, by Paul Paterson

Explore deep subterranean caves using only your trusty ropes and flares.
September 02, 2012

PyTuner: A Guitar Tuner In Pygame 1.2, by Joshua Smith

A Guitar Tuner that I wrote in python and pygame. Tested with 2.7 and 3.2, works for both.
July 12, 2012

Making Games with Python & Pygame 1, by Al Sweigart

A free book covering the Pygame library for beginner and intermediate Python programmers. Includes the source for 11 game clones including Tetris, Bejewled, Othello, Connect Four, and others.
July 03, 2012

Life as a Bit DLX-v1.01, by Sean J McKiernan

A full-featured cellular automata simulator. The focus is on "Conway's Game of Life." With the 'Rule Panel' you can also explore other rule combinations.
December 26, 2011

Toonloop 1.1.3, by Alexandre Quessy

Toonloop is a live stop motion animation software.
December 31, 2009

Arcade Tonk Tanks 0.0.6, by Koen Lefever

Just use the cursor keys and the space bar to shoot the other tanks.
December 28, 2009

Foodforce2 1.0, by Deepank Gupta

Food Force 2, based on Food Force, is being developed as free software. It is cross-platform as it is written in the Python programming language, and runs on platforms including the One Laptop Per Child XO and the Sugar desktop environment. Food Force 2 is currently in beta, and available for download on Linux and Windows platforms.
December 06, 2009

PixelPaint F-b, by Pie

A simple paint program.
October 06, 2009

PaintBrush 1.1, by John Eriksson

A public domain class that can be used in drawing applications or games. Two demos included.
September 16, 2009

Ardentryst 1.71-testing, by Jordan Trudgett

Ardentryst is a free, open-source, cross-platform action/RPG sidescrolling game that is fun for all ages. Follow hero Pyralis, a warrior with fire magic, and heroine Nyx, an ice mage, on a quest through a castle, forests and snowy mountains to reclaim peace in the realm of Ardentryst.
August 12, 2009

Plague 3.38, by benedict carter

Plague is a real-time top down â??rogue-likeâ? arena shooter pitting humans against the zombie horde, inspired by the games Syndicate, XCOM and Gauntlet. Currently under development, Plague already features procedural level generation, cellular automata modeling for physical effects, a 2D physics engine, AI and line of sight vision for every â??sentientâ? game entity, multiple weapons and a whole heap more, all running in real-time.
August 12, 2009

555-BOOM! 0.6.1, by Gregory Ewing

Puzzle game and electromechanical sandbox. Based on my PyWeek 5 competition entry.
February 02, 2009

Disk Field 1.01, by Jeremy

Navigate the disk to the end point.
September 25, 2007

Woody Tigerbaum's Interplanetary Package Delivery 0.92, by Dave LeCompte

Deliver packages in space with the power of interplanetary slingshots.
July 10, 2007

Trip on the Funny Boat 1.5, by Pekka Kujansuu

A side scrolling shooter game starring a steamboat on the sea.
April 23, 2007

Barbie Seahorse Adventures 1.0, by Phil Hassey

Barbie the Seahorse wants to go to the moon! Let the good times roll with this swell side-scroller. Won teams category in pyweek #4!
April 22, 2007

Bouncy the Hungry Rabbit post-r4, by Richard Jones

You play Bouncy the Hungry Rabbit. You're in a garden with yummy veggies and a farmer who's not keen on you eating them. You can hide (and move around) under the ground.
October 05, 2006

Typus Pocus Pyweek3, by Team PyAr

A typing game, with a twist.
October 02, 2006

Colonel Wiljafjord and the Tarbukas Tyranny contest, by Phil Hassey

An adventure game tribute to some of the old LucasArts and Sierra classics -- Monkey Island and Space Quest. Made for pyweek #3.
September 25, 2006

Nelly's Rooftop Garden 1.0, by Alex Holkner

A physics-based puzzle game written for PyWeek 2.
April 22, 2006

20,000 Light Years Into Space 1.2, by Jack Whitham

"20,000 Light Years Into Space" is a single-player real-time strategy game with a "Steampunk" sci-fi theme.
April 17, 2006

GalaxyMage 0.3.0, by Colin McMillen

GalaxyMage is a free, open-source tactical/strategic RPG for Windows, Linux, and Macintosh.
March 26, 2006

Angry, Drunken Dwarves 1.0.1, by Joe Wreschnig

In Angry, Drunken Dwarves, you are an angry, drunken dwarf. Why are you so angry? Who knows. But you've decided to take your aggression out on other dwarves, by dropping gems on their heads. Lots of gems.
January 12, 2006

The Witch's Yarn 1.3, by Keith Nemitz

Graphical Interactive Fiction Stage director metaphor UI. Sit-com inspired interactive comic book as theater.
September 16, 2005

Dynamite 1.1, by Phil Hassey

The evil potentate is ruining everyone's lives! Use the power of dynamite to destroy his strongholds.
September 15, 2005

Quido: Failed Experiment 1.1, by Simon Wittber

This was TeamXerian's entry in pyweek 2005.
September 09, 2005

Pylonoid 1.2, by Sami Hangaslammi

Puzzle game where you direct a stream of electricity with different kinds of power pylons.
September 06, 2005