Pygame is a
cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
set of
Python modules designed for writing
video game
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
s. It includes
computer graphics
Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great deal ...
and sound
libraries
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
designed to be used with the Python
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
.
History
Pygame was originally written by Pete Shinners to replace PySDL after its development stalled.
It has been a
community
A community is a social unit (a group of living things) with commonality such as place, norms, religion, values, customs, or identity. Communities may share a sense of place situated in a given geographical area (e.g. a country, villag ...
project since 2000 and is released under the
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(which "provides for Pygame to be distributed with
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
and commercial software").
Development of Version 2
Pygame version 2 was planned as "Pygame Reloaded" in 2009, but development and maintenance of Pygame completely stopped until the end of 2016 with version 1.9.1. After the release of version 1.9.5 in March 2019, development of a new version 2 is active on the roadmap.
Pygame 2.0 released on 28 October 2020, on Pygame's 20th birthday.
Features
Pygame uses the
Simple DirectMedia Layer
Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer game ...
(SDL) library, with the intention of allowing
real-time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
computer game
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This feedbac ...
development without the
low-level mechanics of the
C programming language
''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
and its derivatives. This is based on the assumption that the most
expensive
In production, research, retail, and accounting, a cost is the value of money that has been used up to produce something or deliver a service, and hence is not available for use anymore. In business, the cost may be one of acquisition, in which ...
functions inside games can be abstracted from the game logic, making it possible to use a
high-level programming language
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to ...
, such as Python, to structure the game.
Other features that SDL does have include vector math,
collision detection
Collision detection is the computational problem of detecting the intersection (Euclidean geometry), intersection of two or more objects. Collision detection is a classic issue of computational geometry and has applications in various computing ...
, 2D sprite
scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers
* The Scene who recor ...
management,
MIDI
MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, an ...
support, camera, pixel-array manipulation, transformations, filtering, advanced freetype font support, and drawing.
Applications using Pygame can run on Android phones and tablets with the use of Pygame Subset for Android (pgs4a). Sound, vibration, keyboard, and accelerometer are supported on Android.
Community
There is a regular competition, called PyWeek, to write games using Python (and usually but not necessarily, Pygame). The community has created many tutorials for Pygame.
Notable games using Pygame
* ''
Frets on Fire''
* ''
Dangerous High School Girls in Trouble''
* ''Save the Date'',
IndieCade
IndieCade is an international juried festival of independent games. IndieCade is known as "the video game industry's Sundance."Fritz, Ben"IndieCade, the video game industry's Sundance" Los Angeles Times, October 1, 2009, accessed July 21, 2011 ...
2013 Finalist
* ''
Drawn Down Abyss''
See also
*
Cocos2d
Cocos2d is a free software framework. It can be used to build games, apps and other cross platform GUI based interactive programs.
Cocos2d contains many branches with the best known being Cocos2d-objc, Cocos2d-x, Cocos2d-html5 and Cocos2d-X ...
*
Panda3D
Panda3D is a game engine that includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games. Panda3D is free, open-source software under the revised BSD license.
Panda3D's intended game-development ...
*
Pyglet
Notes
References
External links
*
* [news://gmane.comp.python.pygame Pygame newsgroup
(web access)- the "official" Pygame newsgroup, requires registration
Pygame Subset for Android(PGS4A)
pyOpenGL- Python OpenGL Bindings
Pygame-SDL2- a reimplementation of Pygame APIs on top of SDL2
PySDL2- a wrapper around the SDL2 library similar to the discontinued PySDL project
{{Video game engines
Application programming interfaces
Free computer libraries
Free software programmed in Python
Graphics libraries
Linux APIs
MacOS APIs
Python (programming language) libraries
Simple DirectMedia Layer
Video game development software
Video game development software for Linux
Windows APIs