People might not realize it, but Python is really good for making games!
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
Lots of things! 2D, 3D, and everything in between.
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.
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.
Website — PyPI — Source — Docs — Discord
Pyglet is a pure-Python, cross-platform hardware layer, supporting 2D, OpenGL, spatial audio, input,
PySDL2 is a direct ctypes-binding to SDL2—you're calling the C functions directly, with all of the rough edges and caveats.
Website — PyPI — Source — Docs
TODO (They're opengl bindings, that's it)
TODO (Proprietary multimedia framework big on VR support.)
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.
Website — Source — Docs — Twitter — Discord
Ursina is a 3D game engine boasting fast development, easy of use, and flexible support.
Website — Source — Docs — Discord — Forums
Panda3D is a 3D game engine advertising power and flexibility.
TODO
Like their 3D counterparts, these game engines are ready to go, just rather flatter.
Website — PyPI — Source — Docs — Discord — Twitter
PPB is an education-targetted sprite-based engine, focusing on ease of use, rapid start, and extensibility.
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.
Website — PyPI — Docs — Source
TODO
PyGame Zero handles the boilerplate of PyGame, making it easy for students to get started.
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)
Unlike everything else on this site, these engines are a lot more opinionated about the kinds of games you can make with them.
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.