Pygame

Pygame is a Python framework designed for creating games and other multimedia applications. It is built on SDL and runs on almost any platform that supports Python and SDL. Pygame was made as a replacement for PySDL after its development stalled. It is currently the most popular Python framework for writing video games, but it does have its limitations.

Pros and Cons

While Pygame is very beginner friendly, it is not really recommended for complex games mostly due to the limitations of Python, SDL 1.2, and Pygame itself. Things like scrolling backgrounds or large areas can really bring your program to a crawl. Despite this, Pygame has been used in professional quality games like Frets on Fire, Dangerous High Schools in Trouble, and Unity of Command. It is also a very popular framework to use in game jams.

Pros

  • Easy to use and beginner friendly
  • Python itself is easy to learn
  • Supports Python 2.x and 3
  • Built-in sprite module, making handling game objects easier
  • Cross-platform - supporting almost any operating system that can run Python and SDL
  • Open source (Licensed under the LGPL)
  • Active community though not as big compared to other frameworks and engines
  • Tons of third-party libraries
  • Doesn't require OpenGL

Cons

  • SDL2 is not officially supported, but there is an unofficial SDL2 fork of Pygame (see links below)
  • Python can be slow even compared to other scripting languages; converting scripts to executables can even make you program run slower due to overhead
  • Fairly low level compared to other frameworks
  • Pygame can be very dependency heavy. This makes it especially hard if you are trying to convert your scripts into an executable.
  • Compatibility can be a mess as some system related functions only work with certain operating systems and drivers
  • No built in networking support - You need to implement this yourself or use an additional library if you want networking

Resources

Tutorials

Scripts

Libraries

  • Phil's pyGame Utilities - a collection of modules to make Pygame easier (mostly GUI stuff)
  • Pyjsdl - convert Pygame applications to HTML5
  • Pyganim - Pygame animation library
  • Pygcurse - A "curses" emulator built on top of Pygame
  • Pygame_sdl2 - a fork of Pygame that supports SDL2
  • Ren'Py - a visual novel engine built on-top of Pygame
  • PyOpenGL - an OpenGL library for Python that allows you to use Pygame as a frontend. Useful for making 3D games.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License