Akalabeth Designer Notes
By Richard Garriott
The Space Gamer #39 (May 1981)

Many games on the market have one of two major flaws. Some have minimal graphics. And those which have decent graphics often run so slo-o-o-o-w that the game value gets lost in the lag time between moves. When I created Akalabeth (and now Ultima), these were the two main problems I had to address.

Before Akalabeth, fantasy computer graphics were fairly primitive. In fact, my inspiration for Akalabeth was a game called Escape, which had low resolution graphics. My objective was to create a game which would show monsters and dungeon corridors in perfect perspective.

I approached the problem from three angles: the artist's approach (thanks, Mom!), the calculus approach (thanks, Dad!) and the trigonometric approach (thanks, Me!). Fortunately, all the paths led me to a very simple solution. The implementation can get a bit complicated, but an explanation in layman's language appears below.

Having cleared this hurdle, I started to design the "game." Fantasy role-playing games generally have elaborate combat systems, with lots of modifiers and lookup tables. A similar approach often crops up in computer games, but the result is so slow that a real-time game is all but impossible.

Though I am a member of the Society for Creative Anachronism, with many a bloodless combat behind me, I thought a simpler approach was necessary. In Akalabeth, all the complexities of hand-to-hand combat are covered by a few, simple algorithms. Purists will not be happy that, for example, I use "sword" to represent everything from a mighty hand-and-a-halfer to a springy little epee. But simplifications were unavoidable, given the game speed I hoped to achieve.

Many games which do have nice graphics aren't worth playing because the programmer concentrated on the graphics and didn't allow enough variety. Wary of this pitfall, I stocked my dungeons with thieves who stole your weapons, gremlins who ate up your food, traps that dropped you to a lower level, and mimics which disguised themselves as chests. An adventurer's life may be short, but it is certain to be exciting.

Unfortunately, Akalabeth was not perfect (sigh!). Because I did not have a disk drive (everyone has to start at the bottom), I could not include a routine for saving the game. Even when I got a disk drive, there was no memory left to allow a game storing routine.

Having finished Akalabeth (and having learned much from my mistakes), I set out to design the most complete fantasy role-playing game yet written for the computer. All but a few of my most far-fetched goals were reached with Ultima.

Ultima is Akalabeth and more. Players have a choice of four races and four professions. Magic has been expanded. Technology has been introduced. A character can eventually buy a time machine or space shuttle, if he survives long enough.

Ultima is written in Basic and machine language. (Akalabeth was primarily Basic.) Basic makes string manipulation easy and is good enough for the text portion of the program. Machine code, of course, runs much faster than Basic and must be used for things like complete hi-res screen updates. By skillfully mixing the languages, a programmer can combine his own convenience with the players'.

Throughout my efforts, I have emphasized realism, trying to give the players a character's-eye-view of my fantasy worlds. I use one-stroke orders to speed input. I have gone to great lengths to make the graphics as clean and realistic as possible. With this kind of help, it becomes very easy for garners to make the transition from reality to fantasy.

3-D Graphics

One way to draw a dungeon corridor is to use the same technique that an artist uses to draw a row of telephone poles beside a country road. First, use diagonal lines to connect the corners ofyour screen and draw the horizon through the center (Figure 1).

Place the first pole as shown in Figure 2.

I find this looks best at a place a third or a fourth of the distance from the edge to the center. Next, draw a line from the upper left hand corner of the screen, and through the point where the first telephone pole intersects the horizon. The base of the second pole belongs where the line touches the lower diagonal, as in Figure 3.

To establish the base of the third pole, draw a line from the top of the first pole, through the point where the second pole intersects the horizon. You can continue this process as often as necessary, placing the fourth pole, the fifth, and so on (Figure 4).

For further information, feel free to contact me care of this magazine.


Back to Computer Games Index