Life in the Shade

Okay.  An update.  Yeah.  I haven’t been working as diligently on this project in the last week or so.  Life, as they say, intervened.  Indeed, this past weekend, I was involved in a 24 hour play production.  Five writers, five directors, 15-18 actors, 24 hours.  As a writer, I was tasked with drawing an object, a location, and a first line from three hats and then writing a fifteen-ish minute play between 8pm and 7am.  The next morning, the casts and directors took my script and made art out of it.  It was all immensely gratifying and fun.  Indeed, it was the first time I’d ever seen anything I’ve written performed by actual human beings.  I have performed sketches that I’ve written, but never watched it from the audience.  So it was fun.  Jolly, great fun.  Perhaps I’ll post the script to the play here at some point in the future.

Anyway.  I’ve had a bit of a breakthrough.  I have been wracking my brain to come up with ways to get more than 30 frames per second.  I have a really nice computer; this is no reason that I should be getting any less than 60 frames per second on a rendered 2D world.  Well, it turns out that the Lightweight Java Games Library (LWJGL) is a pretty curious and odd API and not only was I using only the tiniest fraction of its functionality, I was using literally the oldest commands OpenGL had to offer.  I have found a far more efficient way of rendering the map.  The problem is, I have to rewrite the whole thing.  This is fine, of course.  The first test program was just a way of seeing whether the heightmap software worked and whether I could make a map that I could scroll through.  That worked, so, great.  But then I hit the wall.

I have a spritesheet for an avatar (I’ll probably have a post about overcoming the fact that I’m not a pixel artist, or indeed, any artist), but I had no idea how to make it render and animate properly.  Well, yesterday I learned about Vertex Buffer Objects and Vertex Object Arrays.  And my entire life changed.  instead of using just the OpenGL 1.1 commands, I’ve expanded far further, well into OpenGL 3.0.  It has been terrifying.  I had not realized just how much I have to learn yet.  Shaders are a pretty key concept.  If I’m going to be shoving this stuff off to the graphics card to process, I have to use OpenGL shaders.  If I’m going to use OpenGL shaders, I have to learn about…OpenGL shaders.  And so I’m learning GLSL.  And it’s utterly confusing.  But I’m making progress and that’s good and my current goal is to have a world with an avatar by the end of November.  Fingers crossed.

Cirque du fouture de merde.