Python game's engines compilation

Including the source code repository (aka. Github)

Python game's engines compilation

A want to write a AAA videogame (definition) but I don’t have an idea where to start. In the first place, you must know that producing a game of that kind is a massive undertaking. Second, you need to select the platform to develop it. Third, you need to select the programming language, the framework, interface, library, modules, IDE, and more tools. At that point, you already have 1000 steps more 😵 #sorryNotSorry

Ok, it sounds like a lot of work (actually, it is..maybe more than you think). But suppose you have more experience programming in Python, then this post is for you. There a compilation list of the engines/libraries that can help you with the selection in how to start to code a videogame, including its Github repository to keep update about those 🤖

Then, let's start with the list 🤓 (there is no a particular order, just an unordered list)

Pygame

Github

Maybe, PyGame is the most famous library to write gaming code for Python. Pygame is a Python wrapper for the SDL library (Simple DirectMedia Layer). This library is free and open source also cross-platform for the development of multimedia applications.

It is possible to install Pygame on Raspberry Pi, Windows, Mac OS X, Unix, and basically any system where you can compile it.

Pygame logo where letters appears with a python at right side
Pygame's logo

Once you installed Pygame, you can tested with the command:

python -m pygame.examples.aliens

Check this code in https://github.com/pygame/pygame/blob/master/examples/aliens.py

If you want see more about the impact of Pygame, please check some projects built over it-> https://www.pygame.org/tags/all

Ren'Py is a visual novel engine

Github

Ren'Py is a free and cross platform engine for digital storytelling. It makes it easy to combine words, images, and sounds to create visual novels and life simulation games.

logo where a anime' girl is carrying a python with a game pad on its mouth
Ren'Py logo

Ren'Py's script language makes it easy to write visual novels, and other writing-heavy games. It's easy to learn, and scales well to the largest projects. Even without customization, Ren'Py provides the features players have come to expect from their visual novels.

There is a list of created games in Ren'Py -> https://games.renpy.org/

Panda3D

Github

Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs.  Panda3D is open-source and free for any purpose, including commercial ventures (something called liberal license).

Panda3D logo which is a two-colors panda in 2D
Panda3D's logo

Panda3D requires no boilerplate and no complicated initialization code. What you see here is a complete Panda3D app written in Python! However, Panda3D core is written in portable C++.

Also, it includes command-line tools for processing and optimizing source assets, allowing you to automate and script your content production pipeline to fit your exact needs.

Pyglet

Github

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, game controllers and joysticks, OpenGL graphics, loading images and videos, and playing sounds and music.

pyglet's logo which is a red circle with a curve arrow
Pyglet's logo

Pyglet emerge from the Cocos2D for Python and it works on Windows, OS X and Linux.

Kivy

Github

Kivy is an open source Python library for rapid development of applications
that make use of innovative user interfaces, such as multi-touch apps. Kivy is cross-platform (Linux, Windows, OS X, Android, iOS and Raspberry Pi) and it supports several inputs such as WM_Touch, WM_Pen, Mac OS X Trackpad and Magic Mouse, Mtdev, Linux Kernel HID, TUIO.

Logo of Kivy, some triangles in blak-white
Kivy's logo

Kivy is written in Python and Cython, based on OpenGL ES 2, supports various input devices and has an extensive widget library. With the same codebase, you can target Windows, macOS, Linux, Android and iOS. All Kivy widgets are built with multitouch support.

Here you can check a set of projects to explore -> https://kivy.org/#gallery

Wasabi2D

Github

Wasabi2d is a game engine for Python, making it easy to use fast, modern graphical effects without low-level OpenGL programming. It is capable to draw sprites, polygons, lines, text labels, particles, full-screen post-processing effects and more.

Wasabi2D works on Windows, Linux and Mac and it is based on moderngl, with pygame 2.0 for some supporting functions, and supporting APIs ported from Pygame Zero.

Wasabi2D's logo
Wasabi2D logo which is some pieces of Sushi under the word Wasabi

The minimal boilerplate for a wasabi2d game is basic:

from wasabi2d import Scene, run

scene = Scene()

# The rest of your code goes here.

run()  # keep this at the end of the file

PyOpenGL

Github (unofficial?)

Last but not least: PyOpenGL. PyOpenGL is normally distributed via PyPI and the code is hosted at Launchpad in https://launchpad.net/pyopengl

For the OpenGL lovers, PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs. The binding is created using the ctypes, supporting OpenGL from version 1.1, GLU, GLUT/FreeGLUT and more extensions (e.g. GL, EGL, WGL).

Moreover, it is possible to use with other external libraries such as wxPython, PyGame, PyQT, PyGTK, TKinter and more.

A side note: there is a competitor of PyOpenGL called ModernGL which is a python wrapper over OpenGL 3.3+ core. I prefer ModerGL instead PyOpenGL (less boilerplate code!).


I know there are more frameworks, libraries, packages in Python, however, this is a short compilation expecting that be useful for you. For further information, you can visit the official Python's wiki for Python games.

From a geek to geeks


Share Tweet Send
0 Comments
Loading...