Posted on


In my previous post, I discussed how Colby and myself initially set up a 3D environment in LÖVE, aptly named LÖVE3D. In this post, I will be discussing some of the tools we're building for this environment, and challenges we've come across while building them.

After making a dance video to show off the abilities of my IQE loader, we decided to start work on a game. We had a simple panzer model kicking around, so we decided to make a simple tank shooting game. We started by modifying the world we already built by removing the dancing Mikus and replacing them with our tank. We attached the camera to the tank's body and allowed a togglable first-person view.

With a basic Player object, we quickly got bored of the flat surface we were driving on. We had two options: design a world in Blender and load it up, or


Posted on

An Army of Pancakes.

At the beginning of this month, Colby and myself decided it was time to buckle down and do something cool. We stumbled upon a branch of LÖVE that supports buffering vertices and decided to see if we couldn't abuse this functionality to open LÖVE up to 3D development.

For those in the dark, LÖVE is a 2D game framework that uses the Lua programming language to allow for rapid prototyping and development. While the API is centred around providing easy tools to create 2D games, LÖVE sits on top of OpenGL. With the right tools, breaking free of LÖVE's 2D API is pretty simple and the results are well worth it.

To begin, I decided to write an IQE model loader while Colby began work on a 4x4 matrix (mat4) library. Writing a basic IQE loader wasn't terribly difficult since the spec is very well documented, and we had a