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;23 years ago (2000-10-28) [2] [3]
Stable release
2.5.2 / 18 September 2023;5 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, on Pygame's 20th birthday. [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

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]

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.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

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.

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

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

<span class="mw-page-title-main">Buildbot</span> Continuous integration testing framework

Buildbot is a software development continuous integration tool which automates the compile or test cycle required to validate changes to the project code base. It began as a light-weight alternative to the Mozilla project's Tinderbox, and is now used by Python, WebKit, LLVM, Blender, ReactOS, and many other projects.

<i>C-Dogs</i> 2023 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.

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.

<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>

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.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

pvlib python Software for simulating solar power

pvlib python is open source software for simulating solar power of photovoltaic energy systems.

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. "PyWeek - Python Game Programming Challenge". Pyweek.org.
  16. Gee, Sue (29 March 2013). "Why PyWeek: An Interview with Richard Jones". i-programmer.info. Retrieved 31 March 2020.
  17. "PyWeek - Python Wiki". Wiki.python.org. Retrieved 1 April 2019.
  18. "pygame documentation: Tutorials". Pygame.org.
  19. Siddiqi (27 June 2020). "Python Game projects with source code". CodersLegacy. Retrieved 25 December 2020.
  20. Shinners, Pete. "Line by line tutorial - Tutorial for beginners". Archived from the original on 5 February 2005.
  21. "Creating Games with Python - A tutorial explaining how to use pygame for game development and improved execution". Linuxjournal.com.
  22. "Arinoid tutorials video tutorials at ShowMeDo". Archived from the original on 29 April 2007.
  23. "fretsonfire/src at master · skyostil/fretsonfire". GitHub. Retrieved 2 June 2023.
  24. "Dangerous High School Girls in Trouble!". Pygame.org. Retrieved 8 July 2011.