Original author(s) | Lenard Lindstrom, René Dudfield, Pete Shinners, Nicholas Dudfield, Thomas Kluyver, and others [1] |
---|---|
Developer(s) | Pygame Community |
Initial release | 28 October 2000 [2] [3] |
Stable release | 2.5.2 / 18 September 2023 [4] |
Repository | |
Written in | Python, C, Cython, and Assembly [5] [6] |
Operating system | Cross-platform |
Type | API |
License | GNU Lesser General Public License |
Website | www |
Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.
Pygame was originally written by Pete Shinners to replace PySDL after its development stalled. [2] [7] It has been a community project since 2000 [8] and is released under the free software GNU Lesser General Public License [5] (which "provides for Pygame to be distributed with open source and commercial software" [9] ).
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 was active on the roadmap. [10]
Pygame 2.0 released on 28 October, 2020, on Pygame's 20th birthday. [11]
Pygame uses the Simple DirectMedia Layer (SDL) library, [lower-alpha 1] with the intention of allowing real-time computer game development without the low-level mechanics of the C programming language and its derivatives. This is based on the assumption that the most expensive functions inside games can be abstracted from the game logic, making it possible to use a high-level programming language, such as Python, to structure the game. [5]
Other features that SDL does have include vector math, collision detection, 2D sprite scene graph management, MIDI support, camera, pixel-array manipulation, transformations, filtering, advanced freetype font support, and drawing. [12]
Applications using Pygame can run on Android phones and tablets with the use of Pygame Subset for Android (pgs4a). [13] Sound, vibration, keyboard, and accelerometer are supported on Android. [14]
There is a regular competition, called PyWeek, to write games using Python (and usually but not necessarily, Pygame). [15] [16] [17] The community has created many tutorials for Pygame. [18] [19] [20] [21] [22]
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.
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 games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.
Irrlicht is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox, PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS via a Qt/QML wrapper, and Google Native Client.
Abuse is a run and gun video game developed by Crack dot Com and published by Electronic Arts in North America and Origin Systems in Europe. It was released on February 29, 1996 for MS-DOS. A Mac OS port of the game was published by Bungie and released on March 5, 1997. The game's source code, along with some of the shareware content, has been in the public domain since the late 1990s and has been ported to Linux and many other platforms.
Stratagus is a free and open-source cross-platform game engine used to build real-time strategy video games. Licensed under the GNU GPL-2.0-only, it is written mostly in C++ with the configuration language being Lua.
The Blender Game Engine was a free and open-source 3D production suite used for making real-time interactive content. It was previously embedded within Blender, but support for it was dropped in 2019, with the release of Blender 2.8. The game engine was written from scratch in C++ as a mostly independent component, and includes support for features such as Python scripting and OpenAL 3D sound.
PyPy is an implementation of the Python programming language. PyPy often runs faster than the standard implementation CPython because PyPy uses a just-in-time compiler. Most Python code runs well on PyPy except for code that depends on CPython extensions, which either does not work or incurs some overhead when run in PyPy.
C-Dogs, the sequel to Cyberdogs, is a shoot 'em up video game where players work cooperatively during missions, and against each other in "dogfight" deathmatch mode.
SymPy is an open-source Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live or SymPy Gamma. SymPy is simple to install and to inspect because it is written entirely in Python with few dependencies. This ease of access combined with a simple and extensible code base in a well known language make SymPy a computer algebra system with a relatively low barrier to entry.
PyChess is a free software chess client developed for GNU. It allows users to play offline or online via the Free Internet Chess Server (FICS). PyChess also incorporates a built-in chess engine, which in contrast to most other chess AIs is written in the Python language and focuses more on fun of play than raw strength. For more advanced users, PyChess allows for virtually any other external chess engine to be used with it.
Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the MIT license. It has been used in Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels, and many online Flash games, as well as iPhone, iPad and Android games using the Cocos2d or Moscrif game engine and Corona framework.
The Ren'Py Visual Novel Engine is a free software game engine which facilitates the creation of visual novels. Ren'Py is a portmanteau of ren'ai (恋愛), the Japanese word for 'romantic love', a common element of games made using Ren'Py; and Python, the programming language that Ren'Py runs on.
PsychoPy is an open source software package written in the Python programming language primarily for use in neuroscience and experimental psychology research. Developed initially as a Python library and then as an application with a graphical interface, it now also supports JavaScript outputs to run studies online and on mobile devices. Unlike most packages, it provides users with a choice of interface - they can generate experiments by writing Python scripts, use a graphical interface that will generate a script for them, or combine both methods. Its platform independence is achieved through use of the wxPython widget library for the application and OpenGL for graphics calls. It is also capable of generating and delivering auditory stimuli.
Shed Skin is an experimental restricted-Python (3.8+) to C++ programming language compiler. It can translate pure, but implicitly statically typed Python programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs.
Endgame: Singularity is a free and open source science fiction strategy/simulation game for Linux, Microsoft Windows, and Mac OS X. It was first released in 2005, with version 1.00 released in 2020.
Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple application programming interface (API) to various multimedia components in computers. It is written in C++ with bindings available for Ada, C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby, and Rust. Experimental mobile ports were made available for Android and iOS with the release of SFML 2.2.
Kivy is a free and open source Python framework for developing mobile apps and other multitouch application software with a natural user interface (NUI). It is distributed under the terms of the MIT License, and can run on Android, iOS, Linux, macOS, and Windows.
LÖVE is a free, open-source, cross-platform framework released under the zlib license for developing video games. The framework is written in C++ and uses Lua as its scripting language and is still maintained by its original developers. The framework is cross-platform supporting the platforms Microsoft Windows, macOS, Linux, Android, and iOS.
Raylib is a cross-platform open-source software development library. The library was made to create graphical applications and games.