Reviving SimpleSprite

July 18, 2026

I’ve only started using AI agents to try to do useful things in the last few months, and what I’ve discovered —for good or ill— is that these agents are really adept at resurrecting old unfinished projects.

Yesterday I decided to try using Hermes Agent to fix up an old game engine, SimpleSprite, that I wrote while I was living in Portland, Oregon around 2004. Could this old code be made to run in 2026?

Simpler Sprites

In the beginning of the milennium the way we deployed on Mac, Windows, and Linux was to write our code in C++ using the Simple DirectMedia Layer (SDL) and OpenGL. Since I needed to learn OpenGL and the rest anyway, what better way to learn than to write my own game engine? If nothing else, our games would be distinctive in their look and feel.

I built SimpleSprite between 2002 and 2004 to learn C++, get the hang of low-level game programming with OpenGL, and to have a simple library to build any 2D sprite-based game. At that point I had already made two faltering attempts to build a game engine going all the way back to 1986 on the Atari 8-bit and 1989 on the Amiga. At that time you had to be pretty inventive, and each different game genre required its own custom kernel.

For SimpleSprite I wanted to make something simple, elemental, and reusable. In the long run what I needed was a toolchain and a pipeline. For Botfly games we just needed a game engine to take care of the low level details so we could focus on game design. If I was also writing the game engine I’d spend too much time on the game engine and never finish the game.

So when other game engines like Torque Game Engine and Unity3D came along I forgot all about SimpleSprite, where I was stuck on performance details. I was able to make much quicker progress with a set of organizational tools and a faster build-deploy-test cycle.

I started building a game called Zorbles with Torque 2D, inspired by pinball, air hockey, pool, and pachinko. And to learn about Unity3D I decided to write a clone of Defender named Guardian of the Humanoids.

SimpleSprite in 2026

OpenGL is retro now! There are things you can do by hacking OpenGL that some game engines won’t even allow. And there’s just something special about writing optimal low-level code.

With the advent of agent-assisted coding tools it looks like the tables have turned! If the code is being written by robots then I don’t need the game engine. Agents can deal with tricky details of OpenGL, produce the toolchain, define the pipeline, and manage the whole project end-to-end.

So the current plan is to finish, optimize, and debug SimpleSprite, write some games and simulations with it, wire it up to AI agents with MCP to see what they build with it. Maybe it will become a realtime visualization projector for my agents to use when I’m too daft to understand concepts without pictures. Why use a browser-based visualization or write Manim code when you can go straight to OpenGL with C++?

Stealing the Best Ideas

There are dozens of different game engines now, each with its own distinctive approach and unique ideas. For example Unity3D has a component-based architecture, allowing any GameObject entity to adopt any behavior by dynamically attaching a script. Separation of behavior from game objects allows for more portability between projects, so that’s one good idea worth borrowing if the game calls for it.

Some game engines embed Lua as a scripting language. Others might use SCUMM VM or even Inform to run Z-Code. All these options are on the table for future projects, and every other open library besides. I’ve already incorporated Box2D physics, which will be much better than my half-completed physics and collision code. Maybe the olcPixelGameEngine ends up being a better framework for powering my hierarchical sprites. Spatial audio? I’m not going to spend weeks on that. So even though I may not have a complete game engine, there are plenty of add-ons to take it to the finish line.

More Classic Code?

Torque Game Engine is open source under the MIT license now. So will I end up resurrecting old Torque projects like “Zorbles”? Now that would really be something. The cool thing about TGE was that you could put a complete TGE game inside of another TGE game, so if you wanted to make a 3D arcade scene with a 2D Pac Man game inside it, you could take your TGE version of Pac Man and just load it in the arcade scene.

While SimpleSprite will probably not gain such magical abilities.

blog SimpleSprite OpenGL code games thinkyhead