Sunday, July 13 2003

Custom RoboRally boards

I think everyone who ever played RoboRally has toyed with the idea of making their own boards. Indeed, a quick Google will turn up dozens of sites devoted to fan-made boards and editing tools. I tried using a few of them, but the tools were clumsy and the results uninspiring.

So I did it in Adobe Illustrator, and my first original board looks like this.

The first step was sorting through all of my boards and figuring out exactly what elements existed and how they were layered. The basic set alone required forty different tiles and six layers, and the expansion sets add more of each.

Still, there’s an awful lot that can be done with just the basic set, and with Illustrator you can make some pretty darn nice-looking tiles. In fact, the only tiles I simplified significantly were the bare floors, because I didn’t want to spend time hunting for a decent scuffed-metal-floor texture.

I did create the rivets around the corners of the floor tiles, though, and this was my first mistake. They’re a tiny detail, but in the official boards they’re made with a gradient to supply a 3-D effect. Since I hadn’t made high-resolution bitmapped floor tiles, I simply created the gradients natively in Illustrator. Oops. There are sixteen rivets on each floor tile, and 144 tiles on a complete board. You probably don’t want to know what the PostScript and PDF files look like for a page that contains 2,304 separate gradients. You definitely don’t want to view or print one.

My next mistake also involved gradients, because that’s how the conveyor-belt tiles are made. Each one has ten gradients on it. The board Maelstrom has 106 conveyor belts. And yes, I didn’t delete the blank floor tiles when I added the belts, bringing the total to 3,364 gradients. Naturally I also used gradients for the wall and laser-beam elements, but these were lost in the noise. My PostScript printer had long since given up in disgust, but fortunately I could print directly from Illustrator to my cheesy inkjet, so I’ve been able to see my boards at both full and half-size. I’ve produced faithful replicas of all of the boards in the original set, and they look great.

For the next pass, I’ll find a decent metal-floor texture, render the gradient rivets on it, and produce it at both high and low resolutions. Since the bare floor is a separate layer, it’s easy to substitute a different version depending on the desired output quality.

After that I’ll start implementing tiles from the expansion sets.