It’s a pretty big day for us, as I’m pushing my labor of love, PyGLy, to GitHub.
PyGLy is a 3D framework developed in pure python.
I’ve been dismayed at the state of game frameworks on Python.
There are a large number of quality 3D engines and frameworks out there. However, there are serious problems with the ‘engines’ out there that have Python bindings.
- Not truly cross-platform (this is Python FFS!).
- Not free.
- Not maintained.
- No documentation (the worst culprit).
- Bindings are 2nd class citizens and you still need to code C/C++/Whatever.
- Don’t work with latest versions of code.
Most engines have bindings created by the community. The problem is these are quickly dumped when the person moves on.
Python only 3D engines seem… well… stagnant.
- PySoya and PySoy seem to be seething at each other but not really producing much.
- PyGame is just SDL in disguise.
- The rest… well they all 404 now.
For the most part, 3D game development on Python is dead.
So, behind the scenes, I’ve been writing my own 3D framework for Python, PyGLy.
“Framework” is an important word there. PyGLy does not force any one methodology on you. PyGLy simply provides functionality to wrap common functionality. Windows, Viewports, Scene Graph Nodes, Cameras. It’s up to you to put them together how you want.
Obviously some things are going to be coupled together. But for the most part, PyGLy just gets out of the way.
At the moment PyGLy is quite small, but it is in active development and already has features that may interest some.
I think the best case for it at the moment is for people wanting to rapidly prototype in 3D but not be abstracted from the rendering process. PyGLy lets you forget about the scene graph and just concentrate on rendering your objects. Rendering is performed via callbacks. You can make any OpenGL call you want in these callbacks.
PyGLy is the foundation of our Python 3D work, so expect it to be actively developed going forward.
The following are some of the things that we’re wanting to add in the future:
- Scene management (Octree, etc).
- Cocos2D integration (CCLayer).
- Separate OpenGL 3+ path.
As we’ve said before, Twisted Pair are true believers of Open Source, so you can find PyGLy on our GitHub repository under a very liberal license.