Pygame

Last updated

Original author(s) Lenard Lindstrom, René Dudfield, Pete Shinners, Nicholas Dudfield, Thomas Kluyver, and others [1]
Developer(s) Pygame Community
Initial release28 October 2000;24 years ago (2000-10-28) [2] [3]
Stable release
2.5.2 / 18 September 2023;13 months ago (2023-09-18) [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.org   OOjs UI icon edit-ltr-progressive.svg

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.

Contents

History

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] ).

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 was active on the roadmap. [10]

Pygame 2.0 released on 28 October, 2020, Pygame's 20th anniversary. [11]

Features

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]

Community

Following disagreements between former core developers and the repository owner, a fork known as pygame-ce (Community Edition) was created. [15]

There is a regular competition, called PyWeek, to write games using Python (and usually but not necessarily, Pygame). [16] [17] [18] The community has created many tutorials for Pygame. [19] [20] [21] [22] [23]

Notable games using Pygame

See also

Notes

  1. Pygame 2 and later versions are based on SDL2, while earlier releases were based on SDL1. [lower-alpha 2]
  2. "pygame 1.9.5 released into the wilds". Pygame.org.

Related Research Articles

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

<span class="mw-page-title-main">Simple DirectMedia Layer</span> Free software multimedia library

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.

cairo (graphics) Vector graphics-based software library

Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.

<i>Stratagus</i> Game engine

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 Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

<span class="mw-page-title-main">PyPy</span> Alternative implementation of the Python programming language

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.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

<i>C-Dogs</i> 1997 video game

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.

<span class="mw-page-title-main">SymPy</span> Python library for symbolic computation

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.

<span class="mw-page-title-main">Box2D</span>

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.

<span class="mw-page-title-main">Ren'Py</span> Game engine for the creation of visual novels

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.

<span class="mw-page-title-main">PsychoPy</span>

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.

<span class="mw-page-title-main">ZBar</span>

ZBar is an open-source C barcode reading library with C++, Python, Perl, and Ruby bindings. It is also implemented on Linux and Microsoft Windows as a command-line application, and as an iPhone application.

<i>Endgame: Singularity</i> 2005 strategy video game

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.

<span class="mw-page-title-main">Simple and Fast Multimedia Library</span> Graphics and Multimedia Library written in C++

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.

<span class="mw-page-title-main">Kivy (framework)</span> Free and multi-platform graphical library for Python

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 Game programming library

Raylib is a cross-platform open-source software development library. The library was made to create graphical applications and games.

References

  1. "Contributors to Pygame". GitHub.
  2. 1 2 Shinners, Pete. "Python Pygame Introduction - History". Pygame.org. Archived from the original on 17 September 2019. Retrieved 28 April 2017.
  3. "Downloads - Pygame - Python game development". Pypi.python.org.
  4. "Yet another bug fix release". www.pygame.org. Retrieved 2 December 2023.
  5. 1 2 3 "About Pygame". GitHub. Archived from the original on 18 September 2019. Retrieved 31 August 2019.
  6. "GettingStarted". Pygame.org.
  7. "pySDL sourceforge page". Sourceforge.net.
  8. "commit by other authors". GitHub.
  9. "Pygame Front Page — pygame v2.0.1.dev1 documentation". www.pygame.org. Retrieved 26 February 2021.
  10. "pygame 1.9.5 released into the wilds". www.pygame.org.
  11. "pygame 2.0 - the happy dance birthday release". GitHub.
  12. "Pygame docs". Pygame.org.
  13. "Example of using RAPT to package pygame(_sdl2) games.: renpytom/rapt-pygame-example". GitHub. 1 April 2019. Retrieved 1 April 2019.
  14. "API — Pygame Subset for Android". Archived from the original on 19 October 2014. Retrieved 14 October 2014.
  15. "pygame - Community Edition". pypi.com.
  16. "PyWeek - Python Game Programming Challenge". Pyweek.org.
  17. Gee, Sue (29 March 2013). "Why PyWeek: An Interview with Richard Jones". i-programmer.info. Retrieved 31 March 2020.
  18. "PyWeek - Python Wiki". Wiki.python.org. Retrieved 1 April 2019.
  19. "pygame documentation: Tutorials". Pygame.org.
  20. Siddiqi (27 June 2020). "Python Game projects with source code". CodersLegacy. Retrieved 25 December 2020.
  21. Shinners, Pete. "Line by line tutorial - Tutorial for beginners". Archived from the original on 5 February 2005.
  22. "Creating Games with Python - A tutorial explaining how to use pygame for game development and improved execution". Linuxjournal.com.
  23. "Arinoid tutorials video tutorials at ShowMeDo". Archived from the original on 29 April 2007.
  24. "fretsonfire/src at master · skyostil/fretsonfire". GitHub. Retrieved 2 June 2023.
  25. "Dangerous High School Girls in Trouble!". Pygame.org. Retrieved 8 July 2011.