All Projects → pyglet → Pyglet

pyglet / Pyglet

Licence: bsd-3-clause
pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pyglet

Tinygizmo
📐 An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC
Stars: ✭ 321 (-57.54%)
Mutual labels:  gamedev, opengl
Raylib
A simple and easy-to-use library to enjoy videogames programming
Stars: ✭ 8,169 (+980.56%)
Mutual labels:  opengl, gamedev
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+393.12%)
Mutual labels:  gamedev, opengl
Mxengine
C++ open source 3D game engine
Stars: ✭ 284 (-62.43%)
Mutual labels:  gamedev, opengl
Rizz
Small C game development framework
Stars: ✭ 428 (-43.39%)
Mutual labels:  gamedev, opengl
Rabbittoolbox
🤸🏾‍♀️👗开源的动画渲染软件,提倡以简单、易用,高质量的物理演算以及渲染质量和性能,为喜爱二次元动画的用户降低视频制作门槛
Stars: ✭ 309 (-59.13%)
Mutual labels:  gamedev, opengl
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (-50.79%)
Mutual labels:  gamedev, opengl
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+301.46%)
Mutual labels:  gamedev, opengl
Ruby2d
🎮 The Ruby 2D gem
Stars: ✭ 427 (-43.52%)
Mutual labels:  gamedev, opengl
Imgui
Bloat-free Immediate Mode Graphical User interface for JVM with minimal dependencies (rewrite of dear imgui)
Stars: ✭ 394 (-47.88%)
Mutual labels:  gamedev, opengl
Ava
A tiny unlicensed 3D game engine in C; with C++ and Lua interfaces. Written in 32 random ̷d̷a̷y̷s̷ m̷o̷n̷t̷h̷s̷ years.
Stars: ✭ 287 (-62.04%)
Mutual labels:  gamedev, opengl
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (-29.37%)
Mutual labels:  opengl, scientific-visualization
Bansheeengine
Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting
Stars: ✭ 2,906 (+284.39%)
Mutual labels:  gamedev, opengl
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (+374.21%)
Mutual labels:  gamedev, opengl
Qfusion
Source code for cross-platform OpenGL gaming engine
Stars: ✭ 255 (-66.27%)
Mutual labels:  gamedev, opengl
Overload
3D Game engine with editor
Stars: ✭ 335 (-55.69%)
Mutual labels:  gamedev, opengl
Trial
Yet another Common Lisp game engine
Stars: ✭ 181 (-76.06%)
Mutual labels:  gamedev, opengl
Babyloncpp
A port of Babylon.js to C++
Stars: ✭ 183 (-75.79%)
Mutual labels:  gamedev, opengl
Exengine
A C99 3D game engine
Stars: ✭ 391 (-48.28%)
Mutual labels:  gamedev, opengl
Pyimgui
Cython-based Python bindings for dear imgui
Stars: ✭ 504 (-33.33%)
Mutual labels:  gamedev, opengl

pypi rtd

logo_large.png

pyglet

pyglet is a cross-platform windowing and multimedia library for Python, intended for developing games and other visually rich applications. It supports windowing, user interface event handling, Joysticks, OpenGL graphics, loading images and videos, and playing sounds and music. pyglet works on Windows, OS X and Linux.

NOTE! The pyglet-1.5-maintenance branch is the current stable release. The master branch contains the the development code for the upcoming 2.0 release, and may be unstable. If you want to do a pull request, please target the pyglet-1.5-maintenance branch where appropriate.

Pyglet has an active developer and user community. If you find a bug or a problem with the documentation, please open an issue. Anyone is welcome to join our discord server where a lot of the development discussion is going on. It's also a great place to ask for help.

Some of the features of pyglet are:

  • No external dependencies or installation requirements. For most application and game requirements, pyglet needs nothing else besides Python, simplifying distribution and installation. It's easy to package your project with freezers such as PyInstaller.
  • Take advantage of multiple windows and multi-monitor desktops. pyglet allows you to use multiple platform-native windows, and is fully aware of multi-monitor setups for use with fullscreen games.
  • Load images, sound, music and video in almost any format. pyglet can optionally use FFmpeg to play back audio formats such as MP3, OGG/Vorbis and WMA, and video formats such as MPEG2, H.264, H.265, WMV and Xvid. Without FFmpeg, pyglet contains built-in support for standard formats such as wav, png, bmp, and others.
  • pyglet is written entirely in pure Python, and makes use of the ctypes module to interface with system libraries. You can modify the codebase or make a contribution without any second language compilation steps or compiler setup. Despite being pure Python, pyglet has excellent performance thanks to advanced batching for drawing thousands of objects.
  • pyglet is provided under the BSD open-source license, allowing you to use it for both commercial and other open-source projects with very little restriction.

Requirements

Pyglet runs under Python 3.5+. Being written in pure Python, it also works on other Python interpreters such as PyPy. Supported platforms are:

  • Windows 7 or later
  • Mac OS X 10.3 or later
  • Linux, with the following libraries (most recent distributions will have these in a default installation):
    • OpenGL and GLX
    • GDK 2.0+ or Pillow (required for loading images other than PNG and BMP)
    • OpenAL or Pulseaudio (required for playing audio)

Please note that pyglet v1.5 will likely be the last version to support legacy OpenGL. Future releases of pyglet will be targeting OpenGL 3.3+. Previous releases will remain available for download.

Starting with version 1.4, to play compressed audio and video files, you will also need FFmpeg.

Installation

pyglet is installable from PyPI:

pip install --upgrade --user pyglet

Installation from source

If you're reading this README from a source distribution, you can install pyglet with:

python setup.py install --user

You can also install the latest development version direct from Github using:

pip install --upgrade --user https://github.com/pyglet/pyglet/archive/master.zip

For local development install pyglet in editable mode:

# with pip
pip install -e .
# with setup.py
python setup.py develop

There are no compilation steps during the installation; if you prefer, you can simply add this directory to your PYTHONPATH and use pyglet without installing it. You can also copy pyglet directly into your project folder.

Contributing

A good way to start contributing to a component of pyglet is by its documentation. When studying the code you are going to work with, also read the associated docs. If you don't understand the code with the help of the docs, it is a sign that the docs should be improved.

If you want to contribute to pyglet, we suggest the following:

  • Fork the official repository.
  • Checkout the branch you wish to contribute to (such as pyglet-1.4-maintenance).
  • Apply your changes to your fork.
  • Submit a pull request describing the changes you have made.
  • Alternatively you can create a patch and submit it to the issue tracker.

When making a pull request, check that you have addressed its respective documentation, both within the code docstrings and the programming guide (if applicable). It is very important to all of us that the documentation matches the latest code and vice-versa.

Consequently, an error in the documentation, either because it is hard to understand or because it doesn't match the code, is a bug that deserves to be reported on a ticket.

Building Docs

pip install -r doc/requirements.txt
python setup.py build_sphinx

Please check the README.md file in the doc directory for more details.

Testing

pyglet makes use of pytest for its test suite.

pip install -r tests/requirements.txt --user
# Only run unittests
pytest tests/unit

Please check the testing section in the development guide for more information about running and writing tests.

Contact

pyglet is developed by many individual volunteers, and there is no central point of contact. If you have a question about developing with pyglet, or you wish to contribute, please join the mailing list or the discord server.

For legal issues, please contact Alex Holkner.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].