And the madness comes to an end

Posted by
August 30th, 2009 9:24 pm

Well, couldn’t get a demo working in time.  This is my second LD and my first fail.  I’ll try to take away some of the sting by detailing what went wrong!

I wanted a procedurally generated cavern that you could climb using a grappling hook.  I wanted the grappling hook to be modeled as realistically as possible, so it would react like real rope and not stretch much, wrap around corners, etc.  Turns out this is a pretty tough thing to do 😉

I used the Bullet physics library because I’ve messed with it before, and also because I saw a demo for Softbody Rope which seemed exactly what I needed.  Unfortunately, like EVERYTHING in that library, the rope was very sparsely documented.  It took me almost 10 hours to get it working.  This was something I hoped to get done in an hour or so.


Finally, at the end of my first day I got the rope behaving somewhat how I wanted.  Good enough to proceed at least, so the second day I focused on cavern generation.  I wanted to be able to create interesting geometry out of a huge block, so I decided to implement the “marching tetrahedrons” algorithm for turning a volumetric dataset into polygons.  This took longer than anticipated due to a silly small mistake that was hard to track down.  It didn’t help that I was already bummed about losing so much time due to the rope issue 😛


So after finally getting the rope working and a basic cavern generated, I tried to add the cavern mesh to Bullet and get some collisions going.  Unfortunately this is when the deadline snuck up on me, and despite coding furiously I couldn’t finish in time.  I do think I’ll continue with this concept until I get something playable.

Despite the fail, I had a great time as usual.  I’m happy about finally implementing the marching tetrahedron algorithm, as I have a few project ideas that will definitely benefit from it.  And as much as I want to hate on Bullet right now, it is a fun library to play with.  Just not the most fun when there is no documentation and precious little time to comb through source files trying to figure out how something works.

I’ll end with some random shots of things going wrong :)




Leave a Reply

You must be logged in to post a comment.

[cache: storing page]