You may note the white and red paper airplane orbiting above the pixelated forest. That's because if I'm going to have an actual game in here, whatever it turns out to be, I'm going to need the appropriate infrastructure to support it. That means 3D geometry moving in 3D, which means that once again I've written Vector3 and Quaternion classes. I have to either laugh or cry at how many times I've written those over the years; at any rate, I'm at least getting pretty good at it -- I was able to knock them out in a day's coding, so that paper airplane maintains its own position and rotation in the world and can have them adjusted easily. It can fly forward, orbit around a point, or even do a barrel roll. These are all important things! Though for what... yeah, I don't quite know at the moment.
Also, when I say I knocked them out in a day, I mean more like three hours. Most of my time today was spent in an ultimately failed attempt to switch to using a vertex shader for the billboarding. While I wasn't able to get it working right, it became clear that my tactic was useless anyway -- all I was doing was moving a small amount of very simple math to the GPU, when that wasn't the thing which was slowing down the engine anyway; that more applies to the vast lengthy loops full of OpenGL instructions used to draw the thousands of billboard quads in the first place. I switched to using vertex arrays and was able to get some improvement, from around 25 fps to around 35. Which is not disastrous, but also not the performance one would expect for drawing what is, by today's standards, rather rudimentary graphics. Ah well. The Work continues.
Edit: Or, aheheh, I could turn off the polygon smoothing which I had left turned on from the 2D vector engine development, and watch the framerate pop up to 100 FPS. I could do that, I suppose.