pygame is
Simple DirectMedia Layer is
Site Swing

pyCave - 0.95

Sergio González (monachus)



pyCave is an addictive 3D clone of the game SFCave, with nice graphics. The goal of the game is to fly a damaged ship inside a tunnel, avoiding obstacles. Games of the same nature you might know of are the "Helicopter Game" or "Jetman" in facebook. The game is written in Python and is currently in beta stage. A 1.0 release is pretty close, 99% of the game is done. You can get it from the 'Download' page. My motivation was that I loved spending hours playing SFCave on a friend's Palm Pilot when I was in middle-school. While I don't dislike the Helicopter Game or Jetman, I wanted to write a game with a feel closer to the original.


Second beta. UI was completely rewritten. A lot of compatibility issues have been resolved. Should now run on a much wider range of machines.


Home Page:


click to view original size


pyCave - 0.95 - May 26, 2009
pyCave - 0.91 - Mar 9, 2009
pyCave - 0.9 - Mar 8, 2009 account Comments

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

July 4, 2009 8:34am - Sergio González - nickname: (monachus)
nico, you are completely right. I had not thought about doing that. Thanks for the input =) It will look a lot better with that change.

I am on vacation right now and I dont have my laptop, so if you want to send me a patch by email I would add it in a couple weeks. If not, I'll edit it myself.
June 30, 2009 5:30am - nico - nickname: (stupidbot) - 5/5
After reading peace of your code, I think you could quite improve the graphical rendering by computing more precisely the normals line 209 n = (u[1]*v[2] - u[2]*v[1] , u[0]*v[2] - u[2]*v[0], u[0]*v[1] - u[1]*v[0])
Because you only make a normal by polygon where opengl allows one by vertex and the effect could be quite good if you take an average between two adjacent polygons for a vertex (reducing the break effect on the tunnel).
Still a funny game

P.S : It is just an idea and I have no code to give from now on (sorry about that).
May 31, 2009 2:59am - DR0ID - nickname: (dr0id)
Had to change line 131 in to (it gave me a 0 division error):
if diff:
self.fps = 1/diff
I would be good to write down the controls needed to play in the readme.
May 28, 2009 2:25am - Ian Mallett - nickname: (geometrian)
It needs the module "camera".
May 27, 2009 3:44pm - Sergio González - nickname: (monachus)
Oops. My bad... Windows users should stay away right now, or change line 34 in from

DELETE_KEY = 127 if os.uname()[0]=='Darwin' else 8

Thanks for the comments! =)
May 27, 2009 8:47am - Max Power - nickname: (paolo)
os.uname() is only avaiable on Unix/Linux systems, since Windows is not posix-oriented. you could use platform.system(), sys.platform or just try/catch...

May 27, 2009 2:46am - Ian Mallett - nickname: (geometrian)
File "C:\Users\Ian\Desktop\pycave0.95\src\", line 34, in <module>
DELETE_KEY = 127 if os.uname()[0]=='Darwin' else 8
AttributeError: 'module' object has no attribute 'uname'
May 27, 2009 2:40am - nico - nickname: (stupidbot) - 5/5
Very funny game !
May 26, 2009 3:33pm - Sergio González - nickname: (monachus)
Download the new version! Most bugs should be gone now =)
If you have an error, please let me know.
March 10, 2009 11:07pm - Sergio González - nickname: (monachus)
That's a very strange error. It's not on my (increasing) list of known bugs =/
What videocard do you have?
March 9, 2009 9:14pm - patrick mullen - nickname: (saluk)
Posted my error to pastebin (pygame site has bad comments).

It happens right after I press enter to start the game. Windows.
March 9, 2009 1:48pm - Sergio González - nickname: (monachus)
Thanks! =D
March 9, 2009 1:39am - Ian Mallett - nickname: (geometrian) - 5/5
Hey, great job!

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)