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.

Lollipop Ninja v1.1, by CMLSC

You are a ninja who hates being looked at. Make sure nobody can stare at you while you try to get the lollipop!
March 19, 2018

space invaders https://www.pygame.org/members/projects/new, by Rory Hebel

March 19, 2018

Different ways of designing the vehicle using vehicle graphics! Truck Graphics, by Sophia Stephens

We have got a great range of model specific kits. Buy custom car vinyl decals, pinstriping for cars & much more vehicle graphics from our online store
March 19, 2018

Redes de Proteção http://www.onlineredes.com.br, by Online Rdes

Redes de proteção instalada por R$25,00 m² Instalação imediata - Pague após a instalação
March 16, 2018

Exoplanet 1061 v0.1.0-alpha, by Tristan Ross

In the year 2182, environmental degradation has taken its toll on Earth. Those who have managed to survive years of famine, drought and disease rally around an eccentric leader with plans to leave Earth and colonize a lush planet five light years away. Your team is among those who join the armada and flee Earth in search of a new home.
March 14, 2018

Otherworldly 1.11, by Geomag505

This is a 2D block based game kinda like terraria it has 4 different biomes and you can change what blocks you can place by pressing 0 and also to place and break it's right and left mouse keys to move it's WASD
March 14, 2018

Happy Wheels 2.0, by Happy Wheels

Happy Wheels is an arcade game game with a dark humorous twist.
March 13, 2018

Geometry dash 2.0, by Happy Wheels

Geometry Dash Lite - Apps on Google Play
March 13, 2018

FruitFly 1.0, by Greg

A python game inspired by Duck Hunt (1984)
March 11, 2018

pygameweb 0.0.4 - Northern Rockhopper Penguin, by Rene Dudfield

pygameweb is the source code for the https://www.pygame.org website
March 08, 2018

Space Explorer V1.0, by Antonin

Thanks to your space rocket you will be able to explore the space, which is filled of asteroids and animated planets !
March 07, 2018

16p Mahjong v0.2.9, by nakayama

16 titles mahjong using Taiwan rule.
March 07, 2018

questyquest 1, by law_man123

an unfinished game I am working on about, stuff, I don't really know yet, requires pygame to run, not much else though.
March 06, 2018

Fegaria v0.0.5, by Fergus Griggs

Basically Terraria but with less content...
March 06, 2018

Pong by Soma http://www.mediafire.com/file/4afepc0zjyatgye/pong.py, by Soma Bencsik

This is a classic Pong game in python, pygame.
March 05, 2018

PYGAME CHALLENGE ~~ $30 PRIZE~~ Design an upwards scrolling platformer game. 0.00.1, by mathew

make a plat former using python that scrolls upwards as you move and uses my assets the winner will be announced on the 5th of April first prize gets $30 for there hard work ENTRY REQUIRMENTS 1.must be in python 2.must use my 2 assets located at: https://1drv.ms/f/s!Au4gPEs0gPxGgrBzFgemU3vGkDIFBA it contain the background for the game and the plat former itself. 3. it must be able to follow the player as it goes upwards. 4. the player must be able to reach the top using platforms some base code of a pygame plat former is given : import pygame # Global constants # Colors BLACK = (0, 0, 0) WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) BLUE = (0, 0, 255) # Screen dimensions SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 class Player(pygame.sprite.Sprite): """ This class represents the bar at the bottom that the player controls. """ # -- Methods def __init__(self): """ Constructor function """ # Call the parent's constructor super().__init__() # Create an image of the block, and fill it with a color. # This could also be an image loaded from the disk. width = 40 height = 60 self.image = pygame.Surface([width, height]) self.image.fill(RED) # Set a referance to the image rect. self.rect = self.image.get_rect() # Set speed vector of player self.change_x = 0 self.change_y = 0 # List of sprites we can bump against self.level = None def update(self): """ Move the player. """ # Gravity self.calc_grav() # Move left/right self.rect.x += self.change_x # See if we hit anything block_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False) for block in block_hit_list: # If we are moving right, # set our right side to the left side of the item we hit if self.change_x > 0: self.rect.right = block.rect.left elif self.change_x 0: self.rect.bottom = block.rect.top elif self.change_y = SCREEN_HEIGHT - self.rect.height and self.change_y >= 0: self.change_y = 0 self.rect.y = SCREEN_HEIGHT - self.rect.height def jump(self): """ Called when user hits 'jump' button. """ # move down a bit and see if there is a platform below us. # Move down 2 pixels because it doesn't work well if we only move down # 1 when working with a platform moving down. self.rect.y += 2 platform_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False) self.rect.y -= 2 # If it is ok to jump, set our speed upwards if len(platform_hit_list) > 0 or self.rect.bottom >= SCREEN_HEIGHT: self.change_y = -10 # Player-controlled movement: def go_left(self): """ Called when the user hits the left arrow. """ self.change_x = -6 def go_right(self): """ Called when the user hits the right arrow. """ self.change_x = 6 def stop(self): """ Called when the user lets off the keyboard. """ self.change_x = 0 class Platform(pygame.sprite.Sprite): """ Platform the user can jump on """ def __init__(self, width, height): """ Platform constructor. Assumes constructed with user passing in an array of 5 numbers like what's defined at the top of this code. """ super().__init__() self.image = pygame.Surface([width, height]) self.image.fill(GREEN) self.rect = self.image.get_rect() class Level(object): """ This is a generic super-class used to define a level. Create a child class for each level with level-specific info. """ def __init__(self, player): """ Constructor. Pass in a handle to player. Needed for when moving platforms collide with the player. """ self.platform_list = pygame.sprite.Group() self.enemy_list = pygame.sprite.Group() self.player = player # Background image self.background = None # Update everythign on this level def update(self): """ Update everything in this level.""" self.platform_list.update() self.enemy_list.update() def draw(self, screen): """ Draw everything on this level. """ # Draw the background screen.fill(BLUE) # Draw all the sprite lists that we have self.platform_list.draw(screen) self.enemy_list.draw(screen) # Create platforms for the level class Level_01(Level): """ Definition for level 1. """ def __init__(self, player): """ Create level 1. """ # Call the parent constructor Level.__init__(self, player) # Array with width, height, x, and y of platform level = [[210, 70, 500, 500], [210, 70, 200, 400], [210, 70, 600, 300], ] # Go through the array above and add platforms for platform in level: block = Platform(platform[0], platform[1]) block.rect.x = platform[2] block.rect.y = platform[3] block.player = self.player self.platform_list.add(block) def main(): """ Main Program """ pygame.init() # Set the height and width of the screen size = [SCREEN_WIDTH, SCREEN_HEIGHT] screen = pygame.display.set_mode(size) pygame.display.set_caption("Platformer Jumper") # Create the player player = Player() # Create all the levels level_list = [] level_list.append( Level_01(player) ) # Set the current level current_level_no = 0 current_level = level_list[current_level_no] active_sprite_list = pygame.sprite.Group() player.level = current_level player.rect.x = 340 player.rect.y = SCREEN_HEIGHT - player.rect.height active_sprite_list.add(player) # Loop until the user clicks the close button. done = False # Used to manage how fast the screen updates clock = pygame.time.Clock() # -------- Main Program Loop ----------- while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.go_left() if event.key == pygame.K_RIGHT: player.go_right() if event.key == pygame.K_UP: player.jump() if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT and player.change_x 0: player.stop() # Update the player. active_sprite_list.update() # Update items in the level current_level.update() # If the player gets near the right side, shift the world left (-x) if player.rect.right > SCREEN_WIDTH: player.rect.right = SCREEN_WIDTH # If the player gets near the left side, shift the world right (+x) if player.rect.left < 0: player.rect.left = 0 # ALL CODE TO DRAW SHOULD GO BELOW THIS COMMENT current_level.draw(screen) active_sprite_list.draw(screen) # ALL CODE TO DRAW SHOULD GO ABOVE THIS COMMENT # Limit to 60 frames per second clock.tick(60) # Go ahead and update the screen with what we've drawn. pygame.display.flip() # Be IDLE friendly. If you forget this line, the program will 'hang' # on exit. pygame.quit() if __name__ == "__main__": main()
March 05, 2018

test 1, by Ace Denz

March 05, 2018

Fegaria v0.0.4, by Fergus Griggs

Basically Terraria but with less content...
March 04, 2018

Hugehard Solitaire Collection v0.1 0.1, by Danny Jackson

A collection of different card games.
March 04, 2018

Fegaria v0.0.2, by Fergus Griggs

Basically Terraria but with less content...
March 02, 2018

thorpy exercice 3 1, by buffalo974

I introduce here MVC and observer pattern, with descriptor. Also image caching for logos and faces. This short script illustrates only little part of goodies that offers thorpy library, which helps to manage with buttons, very usefull for your pygame games. (I am not the author of thorpy library) **** VERY IMPORTANT : use latest thorpy version : http://www.thorpy.org/thorpy.zip (already present in
March 02, 2018

Fegaria v0.0.1, by Fergus Griggs

Basically Terraria but with less content...
March 01, 2018

Letter Management System by Cyberops Infosec 1.0, by Mr

Cyberops Infosec develop a software for letter management in offices etc.
February 28, 2018

JOKENPO 2.0, by Gabriel Henrique

Jogue jokenpo com o computador e veja quem tem mais sorte.
February 28, 2018

JOKENPO 1.1, by Gabriel Henrique

Jogue jokepô com o computador e veja quem tem mais sorte!!
February 28, 2018

Lollipop Ninja 1.0, by CMLSC

You are a ninja who hates being looked at. Make sure nobody can stare at you while you try to get the lollipop!
February 26, 2018

Black Face - the shadow of Big Head alpha 0.0.1, by GQ

just game W S A D key to move\n SPACE key to jump\n K key to shoot\n TAB key to show status\n [shoot enemy to collect ammo to kill the Big Head!!! edit,add or sub map().txt, add in maplink.txt to create game map.
February 26, 2018

Bearly Dancing 0, by oliver

A music adventure game in which a bear is in search of their lunch.
February 25, 2018

16p Mahjong v0.2.5, by nakayama

16 titles mahjong using Taiwan rule.
February 25, 2018

Road Fighters 1.0, by Vivek

A fast side-scrolling racing game.
February 25, 2018

Slither Snake! 1.0, by SIlly Dog

February 23, 2018

snake 1, by Hui Ting

February 23, 2018

snake 1, by Hui Ting

February 23, 2018

snake 1, by Hui Ting

February 23, 2018

snake 1, by Hui Ting

February 23, 2018

memory 1.0, by Victor Linard

C'est un jeu où il faut retourner des cartes et trouver les cartes identiques.
February 22, 2018


Ludumdare 41, 48h - from scratch - game dev comp.

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.

March 21, 2018


March 15, 2018

print(' <3, '.join(["thank you"] * 13))

March 05, 2018

Some website updates

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.
February 16, 2018

PyWeek #24 challenge judging has begun!

Check out these PyWeek #24 entries:
October 23, 2017

PySDL2 0.9.6 released

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.
October 11, 2017

pyglet 1.3.0rc1 and cocos2d 0.6.5 released

  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.
August 31, 2017

October 2017 PyWeek challenge

PyWeek #24 has been announced. The PyWeek challenge:
  1. Invites entrants to write a game in one week from scratch, either as an individual or in a team,
  2. Is intended to be challenging and fun,
  3. Will hopefully increase the public body of game tools, code and expertise,
  4. Will let a lot of people actually finish a game, and
  5. May inspire new projects (with ready-made teams!)
Friday, 15 September 2017Pre-registration open
Sunday, 8 October 2017Theme voting commences
Sunday, 15 October 2017 at 00:00 UTCChallenge start
Sunday, 22 October 2017 at 00:00 UTCChallenge end, judging begins
Sunday, 5 November 2017Judging closes, winners announced

More info: Rules | Resources | Help
July 19, 2017

pyglet 1.3.0b1 released

pyglet 1.3.0b1 has been released. pyglet is a cross-platform windowing and multimedia library for Python. Links:
May 07, 2017

February 2017 PyWeek challenge

PyWeek #23 has been announced. The PyWeek challenge:
  1. Invites entrants to write a game in one week from scratch, either as an individual or in a team,
  2. Is intended to be challenging and fun,
  3. Will hopefully increase the public body of game tools, code and expertise,
  4. Will let a lot of people actually finish a game, and
  5. May inspire new projects (with ready-made teams!)
Friday, 20 January 2017Pre-registration open
Sunday, 12 February 2017Theme voting commences
Sunday, 19 February 2017 at 00:00 UTCChallenge start
Sunday, 26 February 2017 at 00:00 UTCChallenge end, judging begins
Sunday, 12 March 2017Judging closes, winners announced

More info: Rules | Resources | Help
January 30, 2017





Hello internet traveller,

More silly nonsense 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.

  • 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, the One Laptop Per Child (OLPC), and the Orange Pi.

  • It's Simple and easy to use. Kids and adults make games with pygame. Before the Raspberry Pi, the microbit, or the OLPC, Pygame 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, and for Indie game productions.

  • 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.

  • 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.

  • It's not the best game library. It's not even the second best. But we think it's sort of ok.


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

There are lots of examples that come with pygame. See https://github.com/pygame/pygame/tree/master/examples. They should be installed, and are runnable like:

python -m pygame.examples.aliens

Below are unofficial tutorials and guides. Anything with wrong install instructions is not allowed.

General Tutorials

Pygame Tutorials on Specific Topics

Non-English Resources


Brazilian Portuguese


  • All Pygame tutorials Questa � una traduzione non ufficiale del tutorial su pygame di Pete Shinners, curata dagli utenti di python-it.

Français (french)

  • Sur Wikibooks, Traduction compl�te des tutoriels officiels de Pete Shinners.




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)

Discord chat, pygame server

If you want to discus projects you're working on, there is a new chat server on 'Discord': https://discord.gg/r8yreB6, a chat service very popular in other game dev communities.

Mailing List

Pygame maintains an active mailing list. You can email the list at [email protected]

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 [email protected] 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.


pygame IRC channel. irc.freenode.net 6667 #pygame

questions and answers


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, it might be a good idea to coordinate with people. See info, for details on joining 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.

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

Buildbots, pygame compiled on every change

There is a pygame github page. Development now happens on github.

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

Linux manylinux builds

Manylinux builds are binary files for pip which should work on many versions of linux. See in the pygame repo manylinux-build/README.rst

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 pygame/docs/reST/ref/ (reference manual) and docs/reST/tut/(tutorials) directories.

An online reStructuredText primer can be found on the Python website site.

Sphinx specific markup is described in theSphinx Documentation.

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

You need a recent sphinx to build the pygame docs (1.7 at time of writing).
pip install sphinx --user

Running tests

To run the tests from the test sub-directory in the pygame distribution:

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 (in the pygame repo) 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

Submitting changes to github

See http://www.contribution-guide.org/. If you are a member of the pygame repo on github you can start a new branch like this:
git clone git@github.com:pygame/pygame.git
cd pygame
git checkout -b my-fixes-branch
# Edit your changes here.
git commit .
git push --set-upstream origin my-fixes-branch
Then go to the web https://github.com/pygame/pygame to create a pull request. Add a couple of reviewers who you think might want to review the code. If you are not part of the github pygame organization, then fork pygame with github, and then when you're ready, send us a pull request.


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

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

OUTERSPACE .5.13, by Administrator

A massive multiplayer online strategy game. The game itself supports internal message boards, self updating clients, and it doesn't stop there. An amazing accomplishment.
December 05, 2002