Find out all you need to know about the Pyglet multimedia library for Python, dedicated to the development of video games and other visual applications: presentation, benefits, tutorials, training...
Video games are visually rich applications. As a result, they require specific and appropriate development tools.
In 2006, Australian developer Alex Holkner decided to create a development library for games and interactive multimedia applications in Python, focusing on graphics rendering and window management, and using the latest graphics rendering technologies such as OpenGL for maximum performance. This is how Pyglet came into being.
What is Pyglet?
Pyglet is a multimedia library for Python. It is dedicated to the development of video games and other visually rich applications.
It features windowing, user interface event management, joystick support, OpenGL graphics, image and video loading, and sound and music playback.
Over the years, several versions of Pyglet have been created to enhance functionality and performance. In 2011, Alex Holkner released version 1.2.4 before retiring from the project.
Since then, Pyglet has been maintained by a community of passionate developers who have continued to improve the library. They have added new features, fixed bugs and improved compatibility with the latest versions of Python and other supported platforms.
Version 2.0 of Pyglet brought several new features. However, some applications developed using the tool stopped working, and developers had to fall back on the previous version via the pyglet-1.5-maintenance branch.
One of Pyglet’s strengths is its large community of developers and users. In the event of a bug, it is possible to report the problem via GitHub or Discord for rapid resolution.
Pyglet has many advantages. Firstly, it has no external dependencies and requires no installation. For most games and applications, all you need is Python. Distribution and installation are greatly simplified, and packaging is easy using a freezer like PyInstaller.
Applications created with Pyglet can support multiple windows and computer screens, which is very useful for video games.
It’s also possible to load images, sounds, music and video in almost any format. Standard formats such as wav, png and bmp are supported natively, and the optional FFmpeg adds compatibility with audio formats such as MP3, OGG/Vorbis and WMA, or video formats such as MPEG2, H.264, H.265, WMV and Xvid.
Another strong point of Pyglet is that it is written entirely in pure Python. A ctypes module is used to interface with system libraries. It is possible to modify the code base or make a contribution without having to compile a second language.
Finally, this is an open-source tool under BSD license. Anyone is free to use it for commercial or open-source projects, with very few restrictions.
How do I install Pyglet?
Pyglet is based on Python 3.8+, and also works with other Python interpreters such as PyPy. It is compatible with Windows 7 or higher, macOS 10.3 or higher, and Linux with the OpenGL and GLX libraries, GDK 2.0+ or Pillow (for images other than PNG and BMP), or OpenAL and Pulseaudio (required for audio playback).
For Pyglet 2.0 and above, OpenGL 3.3+ is required. To play a wide variety of compressed audio and video files, you can use FFmpeg.
To install Pyglet from PyPi, simply enter the command “pip install –upgrade –user pyglet”. To install from a source distribution, enter the command “python setup.py install –user”.
From Github, you can download the latest development version with the command “pip install –upgrade –user https://github.com/pyglet/pyglet/archive/master.zip”.
Finally, for local development, you can install pyglet in editable mode with :
“# with pip pip install -e .
# with setup.py python setup.py develop”.
Alternatively, the directory can be added directly to the PYTHONPATH to use pyglet without installing it. Pyglet can also be copied directly into the project folder.
How can I contribute to Pyglet?
There are several ways in which you can contribute to the Pyglet project. In particular, you can improve the documentation associated with the code you’re working on if you feel it isn’t clear enough.
To make a contribution, Pyglet’s creators recommend creating a fork of the official code repository and checking out the branch you wish to modify. Then apply the changes to the fork, and submit a pull request describing the modifications made.
When making a pull request, check that you have addressed the corresponding documentation in the code’s docstrings and programming guide. It is essential that the documentation always corresponds to the most recent code. Alternatively, you can create a patch and submit it to the problem tracker.
The differences between Pyglet and PyGame
PyGame is another Python library dedicated to video game development. It enables developers to create games and other interactive multimedia applications using the Python language.
It includes tools for managing graphics, sound, keyboard and mouse inputs. It’s an open source, free, cross-platform library that can be used by developers on a wide variety of operating systems, including Windows, macOS and Linux.
It was created to simplify and accelerate game development in Python, with features such as window creation, image manipulation, sound playback and event management.
Although Pyglet and PyGame are two Python libraries dedicated to the development of games and other multimedia applications, there are several differences.
Firstly, in addition to Python, Pyglet also uses C for certain rendering functions. This is not the case with PyGame, which uses only the Python language.
What’s more, PyGame provides a wider range of functions for managing sound, animation, graphics and user input. Pyglet, on the other hand, focuses primarily on graphics rendering and window management.
As far as graphics rendering is concerned, Pyglet uses modern rendering technologies such as OpenGL, which offer superior performance. PyGame makes do with surfaces and blits, and is therefore less efficient for 3D graphics.
On the other hand, PyGame supports a wider variety of platforms, such as iOS and Android. Although Pyglet is mainly dedicated to Windows, macOS and Linux, it can also be used on other platforms.
In conclusion, PyGame is more complete and versatile, while Pyglet focuses more on graphics rendering and performance. The choice between these two options depends on the specific needs of each project, but also on the developer’s preferences.
Conclusion: Pyglet, an essential tool for developing multimedia applications in Python
Pyglet’s many features make it a valuable asset for developing video games and other multimedia applications in Python.
To learn how to use Python and Pyglet, DataScientest is the place to be. Our various training courses include an introductory module on the Python language and its ecosystem of libraries.
All our courses are distance learning via the web, and enable you to acquire the skills needed in data science professions such as Data Analyst, Data Engineer, Data Scientist, Machine Learning Engineer or Data Product Manager.
Our organization is recognized by the French government, and eligible for funding options. Don’t wait any longer and discover DataScientest!