Building the Map
While I was doing all this reading, I kept myself busy with a simple project that consumed plenty of time. I needed a map of the world that I could fit into the Mac's 512x342 screen. Nowadays we'd just scan something in, doctor it a bit, and voila!there's our map! Unfortunately, we didn't have scanners back then, nor did we have photo manipulation programs. Besides, I needed more than just an image; I needed a digitized map with individually addressable countries. In other words, I needed a data structure for each country that defined its boundaries. I had to have graphics of each and every country in the game.
My solution was simple and straightforward. I placed a wall map of the world onto the floor and taped semi-transparent graph paper over it. I then traced the borders of the countries onto the graph paper, conforming my tracing lines to the gridwork of the graph paper. Then I pulled out my tape recorder and set to work. "Germany," I would announce. "Starting coordinates 189 X and 118 Y." Then I would launch into a long monologue tracing the border in directional steps: "One north, two west, one north, three west, two north, one west, four north..." and so on until my tracing of the border had completed the circuit of the country. Then I would move to the next country.
When I had finished all the countries, I sat down at the computer and entered the data as strings. I'd type in the name of the country and the coordinates of the point of origin. Then I'd listen to the tape recording, typing in the steps: N2WN3W2NW4N.... As you might imagine, it was a slow and tedious process. This became the source data for my country images. During program initialization, the code read in all that data and converted it into manipulatable graphics objects. All in all, it took me about a week to create the map this way.
In each project, do at least one special task by hand.
I'm sure this primitive technique leaves you agog, half-expecting me to follow up with tales of walking five miles through the snow each day to get to school. But there's an important lesson here. The tool shapes the hand of the user; or, to use the more common expression, "If you've got a big enough hammer, everything starts to look like a nail." Nowadays we've got tools up the wazoo, tools to handle every aspect of game development. Many times, when a team starts working on a completely new project, the first thing they do is set to work building tools for the project. This is good, but it is possible to go too far with tools, as I pointed out in Chapter 8, "Common Mistakes."