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.
PyDPainterRelease 1.2.1, byMark Riale
A usable pixel art program written in Python
September 04, 2023
MetalArbiter 3, bychristopher eldridge
Metal Arbiter is an retro inspired action platformer .
July 22, 2023
Historical Wargame Simulator0.7.2, byRemance
Historical battle simulator in the form of a tactical map with the purpose to provide both enjoyment and educational value to the player.
July 16, 2023
SREM1.2, byŁukasz Michalczyk
A minigame where player becomes a Single Real Estate Manager
June 27, 2023
Elite Flatland 2.02.0, byDarron Vanaria
2-dimensional (top-down) remake of the classic BBC Micro game, Elite.
June 11, 2023
SREM1.1, byŁukasz Michalczyk
A minigame where player becomes a Single Real Estate Manager
May 29, 2023
Snake 22 BETA (Wormy evolved)v0.4, byDaniel Young
Snake game made by Neonzz
May 22, 2023
Snake 22 BETA (Wormy evolved)v0.2, byDaniel Young
Snake game made by Neonzz
May 22, 2023
Snake 22 BETA (Wormy evolved)v0.1, byDaniel Young
Snake game made by Neonzz
May 22, 2023
Snake 22 BETA (Wormy evolved)0.3, byDaniel Young
Snake game made by Neonzz
May 21, 2023
PyBlocks1.0, byŁukasz Michalczyk
PyBlocks is a simple PyGame application that allows you to construct anything
from set of building blocks
May 08, 2023
Travel!!!0.1, byJoris
Travel to another city to unlock more cities!
May 03, 2023
Moonrabbit Collection1.0, byCMLSC
Help the moonrabbits get their lost items back using magical maps!
May 01, 2023
Désert de Feu1.1, byBruno Vignoli
Vous êtes dans un désert et avez perdu la mémoire.
April 24, 2023
SREM1, byŁukasz Michalczyk
A minigame where player becomes a Single Real Estate Manager
April 17, 2023
Meltdown1.0.0, byDavid Pendergast
Block-pushing bullet hell.
April 16, 2023
Historical Wargame Simulator0.6.9, byRemance
Historical battle simulator in the form of a tactical map with the purpose to provide both enjoyment and educational value to the player.
April 12, 2023
Interplanetary Invaders0.7, byNacho Monkey
Battle alien invaders across the solar system!
March 25, 2023
ChessGame1.5, byMarkop
Multiplayer chess game
March 24, 2023
Bomberman1.2, byMichał
Bomberman clone with simple AI
March 23, 2023
Historical Wargame Simulator0.6.5.2, byRemance
Historical battle simulator in the form of a tactical map with the purpose to provide both enjoyment and educational value to the player.
March 17, 2023
Tic Tac Toe1.0, byZina
A Simple Player versus Player Tic Tac Toe
March 14, 2023
MetalArbiter .3, bychristopher eldridge
Metal Arbiter is an retro inspired action platformer .
March 10, 2023
sudoku !1, byjess
sudoku game
March 08, 2023
Don't Touch My Presents1.0, byFirith Studio
Big problem! The holidays are almost here but people keep trying to steal your presents. It's up to you to see how long you can defend your precious gift.
March 02, 2023
RocketPy1.0, byFirith Studio
Dodge all the obstacles with your rocket!
March 02, 2023
CraftMine 2D1, byjensen
This is a 2d version of Minecraft. It has basic functions but i will add more soon.
March 02, 2023
MetalArbiter .2, bychristopher eldridge
Metal Arbiter is an retro inspired action platformer .
February 27, 2023
$STONKS simulator1.2, byMarkop
Invest in the stock market and earn money!
February 03, 2023
Mining Simulator0.1, byIllusive Force
Mining simulator
January 23, 2023
pyBlasteroids0.2, byRye Salvador
A 2D Space Shooter Game in Python and Pygame
January 19, 2023
Trosnoth1.18.1, byJ. D. Bartlett
Free side-scrolling team action game.
January 07, 2023
Skii1.0, byLuke Pyle
Ski down some slopes
January 05, 2023
Historical Wargame Simulator0.6.3.16, byRemance
Historical battle simulator in the form of a tactical map with the purpose to provide both enjoyment and educational value to the player.
December 31, 2022
Best Paysafecard Gambling Sites 20232, byKatie Webber
If you are looking to register as a new member of a few online casinos, there are a few things you have to check on first. One of the main things you should consider is the transaction method provided. Find out if the game service provider has secure options.
December 29, 2022
Best Paysafecard Gambling Sites 20231, byKatie Webber
If you are looking to register as a new member of a few online casinos, there are a few things you have to check on first. One of the main things you should consider is the transaction method provided. Find out if the game service provider has secure options.
pygames hackathon, PyWeek, and Ludum Dare game jams.
Over the next weeks we have plenty of game jams that people from the pygame communities take part in.
The pygames hackathon runs from March 20th, 2023 to April 17th 2023, and is open to people in USA and Canada. For this one there's 12,700ドル in prizes. "If you love programming and gaming, this is the perfect opportunity to showcase your skills and have some fun!"
Then the must-use-python PyWeek challenge "Invites entrants to write a game in one week from scratch either as an individual or in a team. Is intended to be challenging and fun. Will hopefully increase the public body of python game tools, code and expertise. Will let a lot of people actually finish a game, and may inspire new projects (with ready made teams!)." PyWeek runs from March 26nd, 2023 to April 2nd 2023, and theme voting is already on.
Finally, Ludum Dare is an event where you create a game from scratch in a weekend based on a theme. April 28th, 2023. Starts at 3:00 AM CEST *. Ludumdare is the oldest online game jam, and has the largest number of participants. There is a Jam (72h, less restrictive rules), and a compo (48h more rules). The Jam now lets people submit paper board games, and even things like crafts that aren't games at all!
We are making progress on the Spanish translation of pygame materials. Estefania (who is also a teacher) has in addition been providing feedback on the English versions of documents. The workflow is still improving, and we hope to make progress on fine tuning this process as we go through more of the Spanish translations.
February 03, 2023
pygame in all the languages
Learning a programming language can be hard. Learning with materials in a different human language is even harder. This is why we have started the process of converting pygame learning materials into another language. With the help of a professional qualified educator we have begun the process with Spanish. Tutorials, technical API documentation, and teaching materials will need to be translated. Already whilst going through the first tutorials we noticed gaps and problems with our existing materials. It's improving our English materials too! But the first language will be slower because of this, so we don't want to do too many at once. As pygame is a hobby project made by volunteers we don't have a big budget for things, and we don't do corporate sponsors. Costs come out of our pockets, and people work on what they enjoy doing in their spare time. So far one of our contributors has donated 800ドル USD, but we are seeking to raise 1200ドル(1200ドル) more for the first phase of this en-devour with a fundraiser. If you think it's a worthy cause and you have a few monies to spare we'd appreciate any support.
Many thanks to: Owen Wiggins, Dan Lawrence, John Norris, Anonym, William Chambers, Franco Bonfiglio Vazquez, Fiona Beardsworth. 674ドル were raised on top of the 800ドル. Updates will come here on the progress with Spanish.
May 16, 2022
tweets
reddit
videos
About
Pygame is a set of Python modules designed for writing video 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.
Pygame is free. Released under the LGPL licence, you can create open source, 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. 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 system's package manager. Comes with binary pos system installers (and uninstallers) for Windows or MacOSX. Pygame does not require setup tools with even ctypes to install.
Truly portable. Supports Linux (pygame comes with most main stream linux distributions), Windows (95, 98, ME, 2000, XP, Vista, 64-bit 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, game consoles and the One Laptop Per Child (OLPC) computer.
It's Simple and easy to use. Kids and adults make shooter games with pygame. Pygame is used in the OLPC project and has been taught in essay courses to young kids and college students. It's also used by people who first programmed in z80 assembler or c64 basic.
Many games have been published. Including Indie Game Festival finalists, Australian Game festival finalists, popular shareware, multimedia projects and open source games. Over 660 projects have been published on the pygame websites such as: list needed. Many more games have been released with SDL (which pygame is based on), so you can be sure much of it has been tested well by millions of users.
You control your main loop. You call pygame functions, they don't call your functions. This gives you greater control when using other libraries, and for different types of programs.
Does not require a GUI to use all functions. You can use pygame from a command line 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.
Modular. You can use pieces of pygame separately. Want to use a different sound library? That's fine. Many of the core modules can be initialized and used separately.
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.
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 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日.
See the wiki page: Compilation to figure out how to compile pygame on different platforms.
How to do debug builds?
python setup.py build --debug install
How to speed up compilation? The build only compiles things that have changed by default.
Parallel builds can be done with python 3.5+, where you can set the -j option with the number of workers you want to use. Probably setting it to the same as your number of CPU cores is a good idea.
There is a pygame github page. Development now happens on github.
Right now, pygame uses Github Actions and AppVeyor (windows) for CI. These are useful to make sure that changes proposed by contributors do not break pygame in any way, pygame must still build and work fine across different platforms and python versions.
The C API docs can be found at https://www.pygame.org/docs/c_api.html. The source code for these docs in RestructuredText format is in docs/reST/c_api.rst and docs/reST/c_api/.
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.
For C code, we use clang-format. There is a config in src_c/.clang-format which tries to use a pep-7 style.
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
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.
There's a lot of issues, and people often only care about the issue for a short time. It can be helpful to categorize issues to save time for other developers, and to try and move an issue along.
Here are some general guidelines:
Thank the person for submitting the issue. They didn't have to, and it took them some time.
If issue reporters haven't provided sufficient information to act on, ask them to do the same
Ask users reporting bugs with older pygame versions to test whether the bug still happens on the latest version
Tell people we need a test. Tell them in which file.
Tell people we don't have time, if we are not likely to fix it soon.
Tell people if a PR would be accepted. Tell them which files they may need to edit.
Tell people to use stackoverflow/etc for issues with their own code. Then close these issues. Maybe link to some documentation on it if there is some.
Labeling the module/OS/version they are on. If it's an issue with image loading label it 'image'. If it's on windows, label it 'windows', if it's an SDL2 issue label it SDL2.
Adding tasks to the top of the issue including, 'add a unit test', 'add reproducable code' are helpful to see how far along the issue is to being fixed.
Dealing with code reviews and the automated testing of the Continuous Integration tools¶
So, you've come up with some excellent bug fixes, tests or improvements to pygame and you are wondering how to go from there to getting your code merged into the pygame mainline. Here are some top tips:
Submit your code as a clean, focused pull request. Ideally this means that only the essential changes you made for the improvement you are making make it into your pull request. If you don't know what a pull request is then this guide from GitHub may be of some help.
Create documentation. If you are making a new feature don't forget the documentation, pygames online docs are published from the github repo source files each time pygame is released, and if your feature doesn't have any documentation nobody will know it exists.
Write unit & interactive tests. Whichever seem appropriate for making clear the intended uses of your module and testing out the full ranges of inputs and potential error states.
Please be patient for code review. It can take some time, but also don't worry about it. It just means that somebody else from the pygame community will have a look over and run your code and check for things like tests, documentation and functionality. If you contribute to pygame enough you too may become a code reviewer and help us sift through the stacks of pull requests.
Automated testing platforms (CI). CI runners are basically online testing robots that try and run any submitted pull requests on as wide a range of computing platforms and software versions as possible to check for compatibility. It can often take several attempts to get your perfectly-working local code to pass the inspection of these CI task masters. Don't stress about this its very common even for those of us that have been doing pull requests for a while. Common pitfalls include:
The 'dummy' video driver. CI runners are just server machines on a rack somewhere in an amazon warehouse they don't have screens connected to them so pygame has to use a fake video driver called the 'dummy' to run pygame applications on them. This driver doesn't have the same range of functionality as the regular video drivers so it is not uncommon to have to skip a unit test when this driver is being used. You can activate it locally too by setting the SDL_VIDEODRIVER environment variable.
Platform specific code. Sometimes code can be platform specific, what works on one can break on another. These would need conditional handling for the different platforms pygame supports
Multiple versions of SDL/Python/other deps. Pygame should work on any SDL version higher than 2 and Python version higher than 3.6 (at the time of writing). At times there are features in SDL/Python that are only added in a minor or patch version. The code should make use of conditionals to error gracefully, or workaround this.
If in doubt just ask in your pull request's comment page as it's likely someone will have seen a similar issue before and may be able to help.
OpenGL Library + Shader OpenGL Library + TONS MORE STUFF!
January 26, 2014
Program Arcade Games With Python and Pygame1, byPaul Vincent Craven
Learn to program using Python and Pygame!
July 19, 2013
QANAT0.7, byPaul 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
SGC0.2.1, bySam 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
SubTerrex0.3.1, byPaul Paterson
Explore deep subterranean caves using only your trusty ropes and flares.
September 02, 2012
Making Games with Python & Pygame1, byAl 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 BitDLX-v1.01, bySean 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
Toonloop1.1.3, byAlexandre Quessy
Toonloop is a live stop motion animation software.
December 31, 2009
Arcade Tonk Tanks0.0.6, byKoen Lefever
Just use the cursor keys and the space bar to shoot the other tanks.
December 28, 2009
Foodforce21.0, byDeepank 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
PixelPaintF-b, byPie
A simple paint program.
October 06, 2009
PaintBrush1.1, byJohn Eriksson
A public domain class that can be used in drawing applications or games. Two demos included.
September 16, 2009
Ardentryst1.71-testing, byJordan 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
Plague3.38, bybenedict 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, byGregory Ewing
Puzzle game and electromechanical sandbox. Based on my PyWeek 5 competition entry.
Deliver packages in space with the power of interplanetary slingshots.
July 10, 2007
Trip on the Funny Boat1.5, byPekka Kujansuu
A side scrolling shooter game starring a steamboat on the sea.
April 23, 2007
Barbie Seahorse Adventures1.0, byPhil 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 Rabbitpost-r4, byRichard 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 PocusPyweek3, byTeam PyAr
A typing game, with a twist.
October 02, 2006
Colonel Wiljafjord and the Tarbukas Tyrannycontest, byPhil 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 Garden1.0, byAlex Holkner
A physics-based puzzle game written for PyWeek 2.
April 22, 2006
20,000 Light Years Into Space1.2, byJack Whitham
"20,000 Light Years Into Space" is a single-player real-time strategy game with a "Steampunk" sci-fi theme.
April 17, 2006
GalaxyMage0.3.0, byColin McMillen
GalaxyMage is a free, open-source tactical/strategic RPG for Windows, Linux, and Macintosh.
March 26, 2006
Angry, Drunken Dwarves1.0.1, byJoe 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 Yarn1.3, byKeith Nemitz
Graphical Interactive Fiction
Stage director metaphor UI. Sit-com inspired interactive comic book as theater.
September 16, 2005
Dynamite1.1, byPhil Hassey
The evil potentate is ruining everyone's lives! Use the
power of dynamite to destroy his strongholds.
September 15, 2005
Quido: Failed Experiment1.1, bySimon Wittber
This was TeamXerian's entry in pyweek 2005.
September 09, 2005
Pylonoid1.2, bySami Hangaslammi
Puzzle game where you direct a stream of electricity with different kinds of power pylons.
September 06, 2005
OUTERSPACE.5.13, byAdministrator
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.