Python Gaming Rocks!
People might not realize it, but Python is really good for making games!
Why Use Python?
Python allows extremely fast game creation compared to many traditional engines. It is particularly good at:
- Prototyping: If you just need to experiment or get an idea out, Python will let you do it faster
- Education: Python is an excellent language for teaching, and many people started programming by making games
- Indie: If you’re not a big AAA studio trying to get the best effects and the most FPS out of your game, going Python will make your development easier
Ok, So What’s Available?
Lots of things! 2D, 3D, and everything in between.
Hardware Layers
These libraries are less “make a game now” and more “the abstraction you need to make a game engine”. These can still be useful, but be prepared to put in a bit more work inventing your universe.
PyGame CE
The venerable, the classic: PyGame. For many people, when they think about making games in Python, they think PyGame. It literally wrote the book on game development in Python (several books, actually).
PyGame is a wrapper around SDL that takes off a few of the rough edges while still keeping fairly thin. It supports 2D and OpenGL, sound, handles input, and most other platform tasks.
Pyglet
Website — PyPI — Source — Docs — Discord
Pyglet is a pure-Python, cross-platform hardware layer, supporting 2D, OpenGL, spatial audio, input,
PySDL2
PySDL2 is a direct ctypes-binding to SDL2—you’re calling the C functions directly, with all of the rough edges and caveats.
PyOpenGL
Website — PyPI — Source — Docs
TODO (They’re opengl bindings, that’s it)
Harfang
TODO (Proprietary multimedia framework big on VR support.)
3D Frameworks
Now the actual game engines! Unlike above, frameworks are more ready to go; you can more quickly get started and spend less time on things like drawing routines or event dispatch.
These are the 3D engines.
Ursina Engine
Website — Source — Docs — Twitter — Discord
Ursina is a 3D game engine boasting fast development, easy of use, and flexible support.
Panda3D
Website — Source — Docs — Discord — Forums
Panda3D is a 3D game engine advertising power and flexibility.
Gloopy
TODO
2D Frameworks
Like their 3D counterparts, these game engines are ready to go, just rather flatter.
PursuedPyBear
Website — PyPI — Source — Docs — Discord — Twitter
PPB is an education-targetted sprite-based engine, focusing on ease of use, rapid start, and extensibility.
Arcade
Website — PyPI — Source — Discord — Twitter
Arcade is an easy-to-learn Python library for creating 2D video games. It is ideal for beginning programmers, or programmers who want to create 2D games without learning a complex framework.
Cocos2d
Website — PyPI — Docs — Source
TODO
PyGame Zero
PyGame Zero handles the boilerplate of PyGame, making it easy for students to get started.
Kivy
Website — PyPI — GitHub — Twitter
TODO (Kivy is as much a GUI library as it is a game one, but they feature several games, heavy mobile focus)
Specialized Engines
Unlike everything else on this site, these engines are a lot more opinionated about the kinds of games you can make with them.
Ren’Py
Website — Source — Docs — Discord
Ren’Py is a Visual Novel engine, made specifically for that genre. It leans very heavily on its DSL to define stories.