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.

spaceflight sim 1.0, by Romke

fly to the moon or other planets!
April 24, 2018

romke's game 1.9.3, by Romke

lol
April 24, 2018

Game1 lol, by Jens van Dijk

lol
April 24, 2018

Fegaria Remastered 0.0.4, by Fergus Griggs

Starting to look more terarria-ery...
April 23, 2018

Bullet dodger 2.1.0, by Jorge Maldonado Ventura

A fun and challenging mouse game where you must dodge bullets.
April 23, 2018

Bullet dodger 2.0.0, by Jorge Maldonado Ventura

A fun and challenging mouse game where you must dodge bullets.
April 23, 2018

Strong Jesse 1.1, by mailmann006

Strong Jesse is a space shooter I made for my son that is inspired by the classic arcade game asteroids.
April 23, 2018

16p Mahjong v0.3.1, by nakayama

16 titles mahjong using Taiwan rule.
April 22, 2018

Speed Dash 1, by Taymore McIntyre

well good luck try to escape ERROR well help you
April 21, 2018

Space Viker Game 1.0.1, by Dia Aj

Challenge, fight and gain scores. Exciting sounds effects, cool animations and a challenging narrative.
April 21, 2018

Carrot Goodness 1.23, by Sourish

You have to get a carrot on the map
April 20, 2018

Carrot Goodness 1.23, by Sourish

You have to get a carrot on the map
April 20, 2018

Roll and Back Again 1.0.8, by Megaflops

Solve environmental puzzles with a diverse cast of rollerbots. No blood, no alien abduction, no can-can music.
April 20, 2018

Bullet man https://github.com/Mariii123/Platformer, by marish

currently with one level
April 20, 2018

Ride the Road 1.0, by Sundeep Chand

A Simple Car Game.
April 20, 2018

Guardian of The Tree 1.0.0, by CMLSC

You are a spirit who takes care of a tree that feeds humans.
April 19, 2018

Bubbles! 2.0, by Pranav Bodawala

A simple bubble shooter game
April 17, 2018

Bubbles! 2.0, by Pranav Bodawala

A simple bubble shooter game
April 17, 2018

Bubbles! 1.0, by Pranav Bodawala

A simple bubble shooter game
April 17, 2018

bearly dancing demo, by oliver

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

Game 1 1, by spaceman

Don't die!
April 17, 2018

Redes de Proteção Atlantica redes de protecao, by atlantica redes

A Atlantica Redes de Proteção traz pra você informações importantes sobre instalação de redes de proteção para que você possa escolher a melhor rede de proteção para o seu lar (casa , apartamento,etc.) (11) 94785-7721
April 16, 2018

Fegaria Remastered 0.0.3, by Fergus Griggs

Starting to look more terarria-ery...
April 14, 2018

BoxHead 1, by Madeeha

Box Head
April 14, 2018

Deeper 0.4, by OrionDark7

Deeper is a 2D Sandbox video game based underground.
April 12, 2018

Birdy 1.0, by marish

A flappy bird like game
April 12, 2018

eduActiv8 3.80.411, by Ireneusz Imiolek

A suite of educational activities for 3 - 10 years old kids build with Python & Pygame.
April 11, 2018

Fegaria Remastered 0.0.2, by Fergus Griggs

Starting to look more terarria-ery...
April 11, 2018

Pygame menu 1.9, by Pablo Pizarro

Menu for pygame, simple, lightweight and easy to use
April 08, 2018

Flappybird https://github.com/Mariii123/Flappy-bird, by marish

will be updated more
April 07, 2018

hoyogger 1.0, by rikiya minami

Basic example for programming beginners
April 03, 2018

The Game of Game of Life - https://github.com/joegibby/Game-of-Game-of-Life 1.0, by Joe Gibson

A 2-player version of Conway's Game of Life built using PyGame in Python, with a very versatile config file which allows for a lot of customisation.
April 02, 2018

robojump https://github.com/Mariii123/sidescroller, by marish

game
March 31, 2018

16p Mahjong v0.3.0, by nakayama

16 titles mahjong using Taiwan rule.
March 31, 2018

Learning to code python by creating video games 1.2.0, by Coder

We've been teaching kids to code python for the last few years and have wrote an instructional platform that helps teach coding concepts in the context of arcade games. The platform has been open sourced and works on Windows, Mac, and Raspberry Pi. Give it a shot! http://predigame.io
March 30, 2018

Briks 1.0, by Les Concepteurs Associes

Let's play with Python, with Briks, a tribute to the cult brick-breaker, Arkanoid. A level editor is included
March 27, 2018

news

pyweek 25

pyweek 25 is on soon too.
April 05, 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

4000

4000
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:
https://pyweek.org/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!)
Timetable
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

tweets

reddit

videos

About

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.

tutorials

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

Spanish

Brazilian Portuguese

Italian

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

Greek

Polish

CookBook

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

Profiling
RunningInCorrectDirectory
LinearInterpolator
SmoothInterpolator
BoundingBox
2DVectorClass
3DVectorClass
CommandDispatch (A pattern for building GUIs)
2DGeometryEngine
QuadTree
MemoizingDecorator (Another lazy resource loader)
SignalSlot (A signal/slot implementation)
Interpolator (An improved interpolator)
BezierCurve
RGBColorConversion
CalculateDist
SpatialHashMap
ConstantGameSpeed

PyGame recipes

LazyImageLoading
SimpleFontManager
TTFToBitmapConverter
toggle_fullscreen
Joystick_analyzer
ImagePacker
SmallerRectForSpriteCollision
GradientCode
ConchMusicSoundToolkit
FastPixelPerfect
SettingWindowPosition
DummyVideoDriver
WindowResizing
TextWrapping
CairoPygame
Load_32-bit_BMP_with_Alpha
HeadlessNoWindowsNeeded (Use pygame without using creating a window)
SubtractRects
ShadowEffects (Using arrays)
MatplotlibPygame
IntersectingLineDetection
MmapSurfaces
WxPython
Pygame2exe
InputWrapper
RotateCenter
MidiScheduler
SpatialHash_for_Pygame
Spritesheet
Tint
SoundGeneration
DrawWaveform

PyOpenGL recipes

SimpleOpenGL2dClasses
OBJFileLoader
GLLight
GLSLExample
GLSL_ARB_Example
TextureCoordinateArithmetic
MakeOpenglDrawIn2D
CrossPlatformTextOpengl

Resources

Cookbook Code

3D Models

Tutorials

Textures

Music

Royalty Free Music

Sound Effects

Royalty-Free Sound Effects

Fonts

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.

irc

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

Hacking

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.

issues

A heading



the content

downloads

download.shtml

developers

A heading



the content

project comments

meetups

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