our projects - recent releases
A Lode Runner Story 0.9.5, by Mike Doty
PC-BASIC 15.03.4, by Rob Hagemans
Ren'Py Visual Novel Engine 184.108.40.2067, by RenPyTom
Basic Blind Chess v0.7.3c, by nakayama
PC-BASIC 15.03.3, by Rob Hagemans
Brick Breakaway 1.1, by Ricardo Bronson
spritesheetlib 220.127.116.11, by DR0ID
Brick Breakaway 1.0, by Ricardo Bronson
Card Duel 1.0, by Ricardo Bronson
Snot II: The Rubberland [Android] 1.5.9, by Andrey Zamaraev
spritesheetlib 0.9.0.0, by DR0ID
Snot II: The Rubberland [Android] 1.5.6, by Andrey Zamaraev
Project Interstellar 0.3.2.7 fix, by NCO
A* pathfinding 1.0, by Alex Ter-Sarkisov
gsdl2 - Gumm's SDL2 0.0.0, by Gummbum
Juggleball Free and open source, by jellyberg
London's Burning! Free and open source, by jellyberg
SLC Shmup' 1.1.1, by Nick Jarvis and Nick Wayne
Glittering Light 2015-04-25, by Felix
Nemoe v0.1.0, by Alkamorph
SLC Shmup' 1.1.0, by Nick Jarvis and Nick Wayne
Project Interstellar 0.3.2.7, by NCO
Tomb of the Snake 2014-09-11, by Felix
Tygamusic 0.9, by NCO
Tygamusic 0.8, by NCO
Dark Gates 1.1, by Bartosz Debski
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:
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.
Blender 2.74 released
PyPy 2.6 released
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).
PyOpenGL 3.1.1a1 released
Mike C. Fletcher has released PyOpenGL 3.1.1a1.
- 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.
pysdl2-cffi 0.8.0 released
pysdl2-cffi 0.8.0, a Python wrapper for SDL2 written using cffi, has been released.
- The wrapper is now built with cffi 1.1s 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.
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.
Rob van der Most has made pyglet 1.2.3a2 available on PyPI. pyglet is a cross-platform windowing and multimedia library for Python. Links:
PyPy 2.5 released
PyPy 2.5 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).
Blender 2.73a released
The Blender Foundation has released Blender 2.73a, an open-source 3D modeling tool with a Python-scriptable game engine.
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".
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.
These are some recent tutorials on various pygame topics:
On-line books using Python and Pygame
- Program Arcade Games by Paul V Craven. Introduction to programming using Python and Pygame. The book also contains quite a bit of example code for learning to program with Pygame and Python. Site includes animated code examples, video, and interactive quizzes.
- Making Games with Python & Pygame - A free Pygame book that includes several example games and explains how each one works. Assumes some knowledge of Python.
- Rapid Game Development with Python - by Richard Jones. The basics of pygame are introduced with the example of a simple racing game. Then the program is improved by introducing classes.
- sjbrown's Guide to Writing Games Advanced tutorial for object oriented and design pattern based programming. Shows how to design your game in a way that network playing can be added later on.
- Tutorials by DR0ID
- PyGame object oriented tutorials by przemo_li
- "Intro to PyGame" CourseHero course by maaack
- Thepythongamebook tutorial about Pygame
Pygame Tutorials on Specific Topics
- piman's sprite tutorial
- Screencasts and tutorials at Scriptedfun, making an arkanoid type game
- A tutorial for sound in Pygame
- A tutorial on making a top-down tile-based game
- PyGame Physics Youtube Tutorials by maaack
- Creating a Game in Python using PyGame
- TextWidget - A simple text class for PyGame - A tutorial about working with text in PyGame!
- Introdução a Programação de Jogos usando PyGame (Introduction to Game Development using PyGame). This covers the basics and the final target is a good side-scrolling game.
- All Pygame tutorials Questa Ã¯Â¿Â½ una traduzione non ufficiale del tutorial su pygame di Pete Shinners, curata dagli utenti di python-it.
- Sur Wikibooks, Traduction complï¿½te des tutoriels officiels de Pete Shinners.
- Python Game Programming (Greek) - A free Pygame book for Greek audiences. Introduces programming in a fun way. No previous experience required.
- Isometric Game Part 1 - Introduction to pygame
- Isometric game part 2 - Sprites
- Isometric game part 3 - Collisions
- Isometric game part 4 - Pygame, OpenGL and fairies
- Isometric game part 5 - to draw a 2D map
- Isometric game Part 6 - to draw a map of an isometric
- Cz.7 isometric game - mouse in the world of isometries
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.
CommandDispatch (A pattern for building GUIs)
MemoizingDecorator (Another lazy resource loader)
SignalSlot (A signal/slot implementation)
Interpolator (An improved interpolator)
HeadlessNoWindowsNeeded (Use pygame without using creating a window)
ShadowEffects (Using arrays)
- Digital Furniture 3D models
- Turbosquid 3D models
- 3D Vi
- CGTrader 3D models marketplace
- Making Games with Python & Pygame - A free Pygame book.
- spriteart.com Pixel art tutorials.
- Color Rules of thumb.
- So You Want To Be A Pixel Artist?
- "Intro to PyGame" CourseHero course
- Blender Texture Disk
- Free Music Archive: Creative Commons Licensed Music
- http://www.soundtaxi.net - Royalty Free Music / Production Music
- Jewelbeat.com Royalty Free Music
- free music loops
- Gemafreie Musik
- Gemafreie Musik / Lizenzfreie Musik
- TAM Music Factory
- FL Studio Sound Packs
Royalty Free Music
- The Freesound Project
- Free Sound Clips
- Music Mp3
- The Matchmakers
- Pocket Sound
Royalty-Free Sound Effects
- Hollywood Production Music - Low Price Royalty Free Sound Effects
- A repository of high-quality musical instruments samples
- sfxr - 8-bit sound effect generator
- Cool Free Fonts
- Celtic fonts
- Font Squirrel
- Ten by Twenty
Free Game Engines
- Heroic- mito fantasy tilesets (2D and isometric)
- space graphics
- RTS graphics
- Volumetric Sprites
- Sithjester's RMXP Resources - free RPG sprites
- Liberated Pixel Cup
- First Seed Material (Japanese)
- First Seed Material (Google-translated into English)
- ESPRI-Q (Japanese)
- ESPRI-Q (Google-translated into English)
- Pokefans tilesets (German)
- Last Guardian sprites
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
Pygame maintains an active mailing list. You can email the list at firstname.lastname@example.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 email@example.com. 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.