pygame is
Simple DirectMedia Layer is
Site Swing

PYGGEL - 0.07-alpha3

RB[0] (roebros)



PYGGEL (PYthon Graphical Game Engine and Libraries) is a 3d game development engine, written using Pygame/PyOpenGL.

PYGGEL has a large amount of features, geared towards making 3d game development as simple and quick as possible.

Features include:
FPS and third-person cameras,
2d and 3d (billboarded) image loading and rendering,
OBJ mesh loading,
Collision detection objects (Vector, Sphere, AABox),
Simple Geometry rendering objects,
Particle effects,
VertexArray and other speed optimizers,
and many more.

The engine is very young and alpha, but it is already possible to make simple games in it.
Included in this release is the game "Robocalypto", developed primarily by pymike, with help from me.
It is a FPS that is being developed lock-step with PYGGEL itself, as our main stress, feature and API tester.
To run, simply go into the Robocalypto directory in the pyggel install directory, and run "" - it will automatically find pyggel one directory up...

Currently there is no documentation, as we are focusing on getting the engine to version 0.1 as soon as possible.

You can grab the source from the homepage, to keep up to date between releases as well.

Currently, I am currently the only core developer of PYGGEL itself, so, if anyone is interested in helping out with the project, please just leave a comment, or send an email to (roebros AT gmail DOT com).
You can take a look at the TODO page for the project here:
And a GoogleGroups discussion group here:
So if you are interested, just come on over :)


After long months an various rewrites of important things, we have a new release!
New features include:
gui (with themes)
new input API
animated images (including GIF's)
and too many optimizations/bugfixes to list...

For more info check out the google group announcement:


Home Page:


click to view original size


PYGGEL - 0.08-alpha4c - Nov 12, 2009
PYGGEL - 0.08-alpha4 - Aug 22, 2009
PYGGEL - 0.075-alpha3b - Apr 7, 2009
PYGGEL - 0.07-alpha3 - Mar 24, 2009
PYGGEL - 0.06-alpha2 - Dec 16, 2008
PYGGEL - 0.05-alpha1 - Nov 27, 2008 account Comments

If you wish to leave a comment with your account, please sign in first.

August 5, 2012 3:44am - Kevin Thorne - nickname: (echospot) - 5/5
Keep working on it!!!!
August 5, 2012 3:43am - Kevin Thorne - nickname: (echospot) - 5/5
I've built a couple of my own FPS's. REALLYYY simple to use! Only drawback, it take a considerable amount of time to load, even with psyco. But it's still beautiful
October 3, 2010 9:35pm - Resheet - nickname: (mint) - 5/5
This is awesome! I 've never done any 3D work before and I've almost completed an entire FPS game in slightly over a month! Definitely a the best 3D library.
July 2, 2010 12:50pm - Resheet - nickname: (mint)
I can't seem to load new .obj files. Is that a bug or am I doing something wrong? Here is the traceback:

Traceback (most recent call last):
File "/home/resheet/Documents/pygame_files/Games/My Games/3d test/", line 15, in <module>
File "/home/resheet/Documents/pygame_files/Games/My Games/3d test/gamelib/", line 14, in main
g = game.Game()
File "/home/resheet/Documents/pygame_files/Games/My Games/3d test/gamelib/", line 169, in __init__
static, self.walls._objects = level_parse(self, self.scene)
File "/home/resheet/Documents/pygame_files/Games/My Games/3d test/gamelib/", line 101, in level_parse
RoboBaddie(game, [x*5, y*5])
File "/home/resheet/Documents/pygame_files/Games/My Games/3d test/gamelib/", line 204, in __init__
self.main_obj = pyggel.mesh.OBJ("data/robo.obj", pos=pos, colorize=[0.3, 0.4, 0.5, 1])
File "/home/resheet/Documents/pygame_files/Games/PYGGEL-V0.08-alpha4c/pyggel/", line 78, in OBJ
for i in objs:
File "/home/resheet/Documents/pygame_files/Games/PYGGEL-V0.08-alpha4c/pyggel/", line 101, in compile
for i in xrange(len(v)):
IndexError: list index out of range

Other than that it's a really cool program.
June 14, 2010 12:15pm - Donpachi - nickname: (donpachi)
Amazing. I can see some stuff that doesn't quite work, but there's a lot of really good stuff in there. I'm hoping to convert one of my projects to using opengl, and it seems I've just found all the graphics stuff in one nice library. I like the library code, it reads like a tutorial on its own.
December 8, 2009 4:32pm - Peter Smith - nickname: (pygamer1233)
how do I use pyopengl?
November 19, 2009 3:54pm - RB[0] - nickname: (roebros)
Hmm, I'll have to look into that - could you post your traceback (if any) to the google group?
It shouldn't require PIL, that is only for animated gifs, but I dunno :S
November 18, 2009 9:54am - Ben - nickname: (soggywaffles)
The mesh animation in tut 6 doesn't work for me. Does that require PIL, or is that one of the bugs? ;)
Either way, this is incredible work.
November 14, 2009 7:17pm - RB[0] - nickname: (roebros)
Everything is *working* we're just doing a large refactor/rewrite to add new features squash some bugs :D
November 14, 2009 1:51pm - Ian Mallett - nickname: (geometrian)
Really? Hmmm I guess I don't. What's not working?
November 13, 2009 9:31pm - RB[0] - nickname: (roebros)
Yes Ian, we've been using that for a few months in the experimental branch - you helped with it - remember? :D
November 12, 2009 11:31pm - Ian Mallett - nickname: (geometrian)
Use the VBO class PyOpenGL provides: from OpenGL.arrays import vbo
November 9, 2009 9:36am - BirdaoGwra - nickname: (birdaogwra)
I m looking forward for ur next release :-)
September 2, 2009 4:52pm - RB[0] - nickname: (roebros)
Yeah, I could never quite get vertex buffer objects working correctly :S
There are quite a few bugs to be fixed in the next release (hopefully soon) and then I'm not sure, will either completely rebuild to be much stabler/faster or let it sit :(
August 30, 2009 1:48pm - Ian Mallett - nickname: (geometrian)
Careful with vertex arrays. They're actually slower than display lists in most cases (you're sending the data across the bus each time you draw). Try vertex buffer objects.
April 9, 2009 7:26pm - Jess Hill - nickname: (jestermon)
Some nice fixes, New pick method is great
March 25, 2009 3:55pm - RB[0] - nickname: (roebros)
There are still some bugs in.
Like at the moment tut4 is broken because scene.pick returns None if there is no pick - which has no hit attribute.

A new release will be up in a couple days once we have squashed a few other bugs.
For now though you can grab the svn for the working tut and bugfixes, or just use what is working (most things) in this release...
March 3, 2009 4:05pm - RB[0] - nickname: (roebros)
Woah, cool looking :)
There is a new version fast approaching, btw - to be released here in a week or two (assuming I continue having the time to commit to it ;) )
January 23, 2009 8:46pm - christopher eldridge - nickname: (cheese), my own little project im try to start. im use robocalypto as a start and slowly going to try makeing a full game
January 22, 2009 6:42pm - christopher eldridge - nickname: (cheese) - 5/5
this is great, cant wait for version.07. your doing a great job.
December 16, 2008 12:37am - RB[0] - nickname: (roebros)
The relevant parts of have been moved into misc (misc.ObjectGroup and misc.ObjectInstance) - Robocalypto also makes use of these now.

As far as cross-importing - I hoped to not do that, but must have missed a spot, will look into removing it ;)

Thanks for the comments,
December 12, 2008 11:58pm - Anonymous - nickname: (pywiz32)
One question: why isn't (in robocalypto) not standard like sprites in pygame?
December 8, 2008 11:03pm - Anonymous - nickname: (pywiz32)
Update: it actually causes a segmentation fault, which is probably a problem with PyOpenGL (newest is 3.0.0b8, I have 3.0.0b6). I will update it ASAP.
December 7, 2008 11:44pm - Anonymous - nickname: (pywiz32)
I don't know if it's just my computer, or the fact the you cross-import modules (misc imports data and data imports misc, among others), or that my computer doesn't work right (running Xubuntu Linux 8.10 w/ python 2.5.2 and all dependencies), because it works on my vista, but whenever I import pyggel, it restarts the interpreter without any errors.
December 1, 2008 3:40pm - RB[0] - nickname: (roebros)
If you can't run any OSX stuff, then perhaps you can try here:

The blog post is from last year, but there are comments from this year that deal with this new version of pyopengl/numpy/etc.
Cheers :)
December 1, 2008 11:57am - RB[0] - nickname: (roebros)
Ahh, well, dang :S
Can you run other 3d applications - like soya3d or something?

I remember on my old laptop (not mac) it also crashed with these kinds of errors a lot, but that was due to the old card I think :S

Also, can you use pyglet gl examples? I am thinking about looking into it as a lot of people say 2x the speed of pyopengl, and if it works better then we can kill two birds with one stone.
Cheers - and thank you for the time :)
December 1, 2008 11:23am - Skizzaltix Zaxali - nickname: (skizzaltix)
Yes, I am on OSX, and it occurs to me that, on my old computer (Also running OSX) PyOpenGL caused some strange errors, too.
November 30, 2008 8:51pm - RB[0] - nickname: (roebros)
You aren't on OSX by any chance are you?
I'm googling this error, and it appears to be one of three things:
1: vertex arrays (or some other opengl things like that) not being supported for you - this should only be the case if you ran the and it failed there, and not one of the other tests.
2: Texture loading can cause it as well - not sure why, but I think it might be a hacky thing I added anyways - so I can see about fixing that too...
3: Pygame/Pypopengl on OSX seems to be a frequent cause of these errors.

November 30, 2008 8:14pm - RB[0] - nickname: (roebros)
Woah, seg faulted? :S

The dependencies should be all in the readme - go with the newest you can, if possible.
You aren't running Python 2.6 are you?
Do you have the newest Pygame, Pyopengl, Numpy, Python2.5, etc.?
Otherwise, can you let me know what kind of gfx card and such? This should run just about anywhere, albeit it might be slow...

Thanks for the report :)
November 30, 2008 7:25pm - Skizzaltix Zaxali - nickname: (skizzaltix)
Looks interesting, and I think I want do something with this.
But, when I run it, it says "Fatal Python error: (pygame parachute) Bus Error". Did I miss one of PyOpenGL's dependencies or something? This is very strange.
November 29, 2008 7:50am - Nathan Woodward - nickname: (thedalailama)
Very nice.
November 28, 2008 1:38pm - Max Power - nickname: (paolo)
need some ammo?

more weapons, more fun!
November 28, 2008 11:58am - RB[0] - nickname: (roebros)
I have created a google group at "" for anything and everything concerning PYGGEL.
So if anyone is interested in helping out, or wants some help with a project, or report a bug, or anything - please come and join.

Cheers :)
November 28, 2008 11:46am - RB[0] - nickname: (roebros)
Thanks everyone for trying it out so soon!
And well done Max - if you would like to add it to the main code just let me know, I will add you to the googlecode so you can commit it ;)

I can't believe all the positive feedback from you guys,m especially with the engine only being 3 weeks old!
It definitely makes me want to hit this even harder than before - and get some documentation done ASAP - and not wait for a more stable release!

Thank you guys,
Cya around!
November 28, 2008 11:39am - pymike - nickname: (pymike)
@Max: Awesome! Got a screenie? =)
November 28, 2008 11:17am - Skizzaltix Zaxali - nickname: (skizzaltix)
Interesting! I think I may do something with this.
November 28, 2008 10:22am - Max Power - nickname: (paolo)
Yeah, i already changed some of the Robocalypto code. I implemented weapon-switching, ammo-boxes and random maps.....

pretty easy... :)
November 28, 2008 10:08am - pymike - nickname: (pymike)
Definitely take a look at the Robocalypto code. I made almost all of it, and I'm a complete n00b with 3d. I had virtually zero problems using PYGGEL, and those problems have long been fixed :-)

Oh, and for the curious: Robocalypto is stored on PYGGEL's GoogleCode SVN repo, so you can grab the latest and greatest (and buggiest) version of it along with PYGGEL.
November 28, 2008 9:00am - Peter Maynard - nickname: (intel17)
This is great!
From what i have seen its very simple to use. I love it and hope that you get some documentation and really do carry on with it.

Keep you the great work!
November 28, 2008 2:10am - Max Power - nickname: (paolo)
Nice work! Can't wait for a documentation.
Does not run with pyopengl-2.0.0, I had to upgrade to pyopengl-3.0.0
I played around with the code a little, seems to be easy to use :)

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)