Cosine Gaming Blog

A Blog about games, new CG projects, and more.

Please consider donating.

Indigo Engine Discontinued

Bill Wurtz, one-man band, obsessive creator, and unique personality, is often asked, “How do you practice?” To which he responds, “practice? forget that, i say do it for real!” Wurtz didn’t practice, he wrote, played, and experimented. Everything he ever wrote, he put in huge binders. Eight of them. Any idea, melody, or song, he tucked away, and years later, he determined to record every single one of them. I learned to do it for real when I stopped working on my biggest project. The Indigo Engine. If you browse its history, you can see the little updates (commits) become decreasingly frequent, their messages decreasingly enthusiastic, petering away like a droplets of rain at the end of a storm.

I made games. I made them because my brother told me, “in video games, the designers have to account for every possible move you can make.” I suppose the idea of sculpting infinite tiny worlds, specially for each decision a user might make, felt about as intimate as a creator can be with her audience. I started with two-dimensional games, but I wanted something closer to the real world. A world an entire dimension more expressive. So I made the Indigo Engine.

It was a tool for creating and presenting three-dimensional worlds. I became acquainted with linear algebra. Matrix multiplication. Vectors and cross products. Memory management and more. So I could estimate the trajectory of photons from light sources to your eye. In the deepest hours of contemplation - trying to figure out why half my triangles were dark and the others light, or show the nooks and crannies of tree bark and bricks - I saw the world in terms of triangles, angles, and textures.

So when my uncle asked “is it new and unique?” I didn’t dare consider it. But his question creeped, nestled into the back of my mind. It made a home there and let me know that I wasn’t happy with the true answer. I hadn’t stopped to consider - can I use another engine? In fact there are thousands of 3d engines. I found one in the same language as my own. OGRE. As I looked through its list of features I was amazed. It had features I’d never heard of, features I had no idea how to create but sounded amazing. Bloom, ray-tracing, vertex maps. Why would - no, how could - I go on making the Indigo Engine when this existed? I could get on with making the game, Code Indigo, and release it for the world to see..

I kept developing - I couldn’t let go of the project that had become a part of my identity with a snap of my fingers. But my motivation dwindled. I was finally able to let go of the project when I realized that it had been a learning experience. At the time I thought what I’d learned was C++ and OpenGL. But what I’d really learned was to scaffold. To scaffold on the work of others, to make the most of the community of creators and inventors that is our world.

Today I try never to reinvent the wheel. What has been done is more than you ever suspect, and I use it so that I can live my life innovating. It’s exciting - it gives meaning to my actions. I daresay, the world at large could learn from my failure. There are thousands of in-house engines at every game company. Closed-source, unusable software is the norm, where no one can use it to build the next great thing. Schools tell us drill times tables and write the forty thousandth essay on “Themes of Rebellion in Catcher in the Rye,” when we could write the 2017 take on Holden’s existential escape. I learned when I wasted years on the Indigo Engine how we, as a community, can create - and it’s a whole dimension more than we can create on our own.