Home C++ Lua GitHub Games Math Myself Contact

Inspiration Engine

Here's the whopper.

A 2D tile-based platform engine that can do anything.

It might not look like much, but this side project has been sitting on my computer(s) for the last seven years. It has gone through a zillion architecture changes. It has helped me learn C and C++.


Once upon a time, that same year as I started on my Landscape engine, I was back in my small town and my friend Ian and I were bored, so we came to the conclusion: "Let's make a videogame!" About thirty straight hours of work later the first version of this was born. Text-based levels. Frametable-based animation. (See Doom's source for details. I didn't steal from Doom, but instead I got the idea from hacking it to death in past years using DeHackEd. Props to the oldschool.)

After a while feature creep began to set in. First I took the editor off of the Landscape engine and slapped it on here. Next ... "Wouldn't bump-mapping be cool?" and what do you know, I added Dot3-based bump-mapping, courtesy of all those old TexEnv OpenGL extensions. This was before the days of pixel shaders and framebuffer objects. Kids these day. Predator-invisibility? Of course I was thinking about it. But I didn't have the hardware at the time.

Somewhere midway through I teamed up with my old friend who I invested in the Landscape engine idea with and made a platformer instead, based on this engine.

I redid the editor to be solely OpenGL-rendered (the motivator for my menu library). I swapped out the script system from my own to Lua -- though not before poking around at doing my own dynamically-typed garbage-collection-based language, mind you... Later came the (painful) process of client-server separation, and after a while, viola, networking.

Then came the framebuffer kicks (sometime right after I did my image flow project. With the two together you could now have watercolor colored monsters with their sprite colors bleeding in with the background colors ... all in real time. And Predator invisiblity.

To The Future...

I've poked around a bit with adding real physics, but haven't sold myself on it just yet. Honestly physics is the bane of my engine coding. I also had high hopes of eventually doing some crazy scattering-based lightmap calculations (realtime? why not?) but that hasn't been pursued at all. So yeah, there's more room to grow. Spring physics? Sure! Fluid motion? You bet! Crazy unrealistic artificial intelligence? Let the rise of the machines begin! Deformable meshes? Well I don't have any sample code for that, but someday...

Download the Source Code Here
Download the Mac OS X Binary Here
Download the Windows Binary Here