|★ CODING ★ 2. THE HISTORY OF ADVENTURE GAMES ★|
|Writing Adventure Games on the Amstrad - 00 - Contents||Writing Adventure Games on the Amstrad - 02 - The History of Adventure Games|
Roleplaying games grew out of the hobby of wargaming in the late sixties and early seventies. Wargames take the form of battles fought on table tops with miniature figures. Each figure represents ten, twenty or more men and the gamers move the armies according to a complex series of rules which govern movement, terrain, and the like — with combat being resolved through the use of dice; wargames recreate many different periods of warfare, from ancient Rome through Napoleonic battles to the conflicts of the 20th century. Wargames themselves developed from chess and the military strategic games played by the Prussian Military Command at the end of the 19th century.
The first factor which influenced the development of Roleplaying Games, (RPGs as they are known today) was without doubt the publishing of JRR Tolkein's LORD OF THE RINGS in paperback in 1967. This fired the imagination of a vast audience of young people, the idea of recreating the battles between men, dwarves, elves and ores appealing to the fantasy fan and wargamer alike. Because of the demand for rules which could cope with the magic and creatures depicted in the books, the publishers of medieval wargames rulebooks had appendices added to include the use of fantasy elements such as Dragon Fire and magic swords.
In Lake Geneva, Wisconsin, USA a small group of wargamers published a book for medieval combat called Chainmail through Gary Gygax's small press games company Tactical Studies Rules, which had previously published other wargames rules. While this essentially covered the medieval period, it also had a large fantasy element, with giants, spells, trolls and dragons. The game was reasonably popular due to these added fantasy elements.
From here, the game grew with Dave Arneson — a member of the group — creating a dungeon beneath the castle in his campaign. Here individual characters adventured, governed by the rules in CHAIN-MAIL. The new concept of playing a unique character proved very popular and this idea was developed by Arneson and Gygax into the game Dungeons and Dragons (D&D) which was published by Gygax's Tactical Studies Rules company.
D&D sold extremely well and vast numbers of supplements were soon added to the game to cover the inconsistencies present and the problems that 'combat according to the rules in CHAINMAIL' (as the original rules stipulated) caused.
While the game of D&D was the first, it was obviously incomplete and in many ways had flaws as a games system. There were a number of individuals around who felt that they could do better and soon several rival roleplaying games sprung up. These were games such as Tunnels and Trolls, a very simple level game developed by Ken St. Andre, and published by Flying Buffalo with different rules for magic and combat but still drawing on the fantasy background of elves, dwarves and trolls as inspiration for adventures.
THE GROWTH OF ADVENTURE GAMES
Back in the dim and distant days of 1973, when roleplaying games were first invented, computers were still immense mainframes filling rooms, and while computer games did exist they consisted of Noughts and Crosses and games like Star Trek. While many computer programmers played D&D, they never thought of implementing the game on a computer system. Roleplaying and computers remained very separate entities until two bright students by the names of Crowther and Woods created ADVENTURE.
The game ADVENTURE was created on one of these large mainframes and coded entirely in FORTRAN and Crowther and Woods were clearly D&D fans, for ADVENTURE contains many of the elements found in roleplaying games. It is set in a vast underground complex of caves which are populated with monsters to be fought, puzzles to solve and treasure to win. The player moves his ‘character' around the caves by giving two word instructions describing his actions. These consist of a verb and a noun pair such as ‘GO NORTH', ‘KILL DWARF', etc. Thus he is able to manipulate objects, attack monsters and solve puzzles via simple commands. The game was tremendously innovative at the time, and doubtless many hours of hideously expensive computer time were spent trying to unravel its mysteries. The player receives a score out of 350 when he dies and the aim of the adventure is to win by completing all the actions possible and to thus score 350.
ADVENTURE remained unavailable to all but a select few due to the scarcity of mainframe facilities to those other than students or computing specialists. The game might have remained a minor diversion for computer scientists, but for one person — Scott Adams. Scott had played the game at work, and had found it fascinating, he wanted to be able to show it to his friends, but couldn't take them into work. So, the obvious solution was to bring the adventure to them! This he did by programming the game in BASIC on the 16K TRS-80 Model 1, despite his colleagues' assurances that it couldn't be done!
Once it had been shown that you could reproduce an adventure game on a microcomputer in just 16k (the original adventure used over 64k of main store) other programmers caught on, and soon other adventures began to appear.
Adventure games consisted of the same basic elements: the two word input, puzzle solving and limited character interaction until relatively recently, when the Infocom games appeared. These grew out of experiments with a parsing system, and as such allow very complex input and output. Zork was the first of the new breed of games, and it provides a surprisingly user-friendly game with some very intricate and subtle puzzles.
Unfortunately, due to the large amounts of memory and disk space required to run ZORK it is only implemented on a few machines. However, some of the techniques shown in ZORK can be reproduced in any adventure games system extremely effectively and easily.
Nowadays, adventure games are a very common piece of computer software, and there are several different types available on all of the small home computers, the Amstrad having its fair share of innovative adventures.
While all adventure games have essentially the same structure — in that they are composed of an interaction between the player and the game, during which the player attempts to solve puzzles and overcome obstacles — they can be sub-divided. These divisions can be based on the style of input and output and how these two are linked through the game.
DIFFERENT ADVENTURE TYPES
This is the original type of adventure game, and the text adventures available on the Amstrad differ very little in format from the original ADVENTURE on a mainframe computer. The game consists of plain text input and output on a normal screen with no graphics, sound and normally no use of colour.
The original Crowther and Woods Adventure is available on the Amstrad as Colossal Caves from Level 9, which not only includes the original 200 locations, but adds 70 more! Quite a programming feat for just a small home computer!
The game includes all the elements of the original and more. You start the game on a road near a building, with a forest to the north and a valley to the south. Commands are entered by typing in a two word command consisting of a verb and a noun. Thus, “Enter building" will take you into the building, where the program describes the location as:
You are in a small building with a well in the middle of the only room. A rusty ladder leads down the well into darkness.
Typing “Get Lamp" will enable you to pick up the lamp and typing "Inventory" will list all the objects you are carrying. The adventure recognises the standard abbreviations for directions, such as "S" for "South", “D” for “Down”, "E” for “East" and so on. The two word input is limited compared to some games that allow full sentence input, but it is sufficient to play the game (and indeed to play most adventures).
Text adventures with added pictures showing what the locations looked like have been around for a while on computers such as the Apple — the use of discs enabling fast access to picture data. The graphics adventure boom on small computers, however, was really sparked off by the release of The Hobbit adventure from Melbourne House. This led to a lot of other graphics adventures, which attempt to add atmosphere to the game by showing each of the locations you can visit in glowing colour.
The major problem with any graphics adventure is that the addition of graphics to the program eats up the available memory at a ferocious rate! This means that there is less space for locations, objects and actions, and thus the adventure has to be smaller with fewer puzzles and they generally prove to be less of a challenge. While the graphics do add a certain feeling of atmosphere to the game, they can never be detailed enough to accurately represent your location, and thus add little to the adventure element of the game. Most “committed" adventure games players tend to prefer text based games, as they offer a greater challenge.
This type of adventure game bears the least resemblance to the original ADVENTURE, as it is entirely graphical in nature, with very little (if any) text. The character in the game is controlled by a joystick, or via cursor keys, and is moved around the screen collecting objects and fighting monsters. The screen generally depicts a set of corridors or a maze, which must be negotiated, and the monsters are overcome by firing at them — as in arcade games.
Because the action is purely graphical and the standard of animation of the characters in the game has to be high, the graphics will take up even more memory than with the Graphical Adventures. Thus, the actual adventure element of the game tends to be reduced to just picking up or dropping objects, fighting monsters and so on. All things which require skill on the joystick and good reflexes rather than the complex thought and calculation required by the traditional puzzle adventure. However, Arcade adventures may appeal to people who like a little more storyline to their blasting of aliens than in the standard shoot 'em up.
Although The Hobbit falls into this category in many ways, with its interactive characters and their unpredictable behaviour, as do the Infocom games, the only real program to live up to the name is Valhalla from Legend (sadly, only available on the Spectrum and Commodore 64 at the time of writing.).
The world of Valhalla is that of Norse legend and myth, with the gods and goddesses, giants and dwarves, wolves and dragons. You take the part of a character in this world and you interact with the other characters present. Each of these characters has a unique personality and acts with complete independence from you or the other characters around them. The thing that makes Valhalla very different from The Hobbit or any other game available is that all this action takes place graphically on the screen. When you type in the command "Drink Wine", one of the little characters on the screen will raise a wine bottle to his lips and take a drink!
Each location is shown as a fairly detailed and colourful picture, with the terrain varying from plains to marsh or forest, and with castles and huts dominating the skyline. The characters are shown as little figures who walk about the central strip of the screen, drop food, pick up weapons, fight, etc. All this while you can stand and watch.
In fact, one of the fascinations when you start to play the game is just to sit and watch the other 36 characters in the game interact with one another while you don't do a thing! You can join in this world through a fairly complex sentence input which enables you to ask the other characters for things, ask them to do things and move around the world.
Due to the graphics again, the adventure element is rather limited because of the sheer complexity of handling the animation and independence of the characters. You are really limited to just eating/ drinking ( a vital necessity to avoid dying of hunger), buying/selling, fighting and handling objects. The commands for such actions can be very complex in structure though, such as: “Sell the axe to Thor for 30 crowns”.
The purpose of the game is to find the six magical items scattered throughout the world, which must be collected in order. To achieve this you will need the help of the other characters and this can only be gained by impressing them with your prowess at fighting etc.
Quite clearly, the adventures currently available on home computers are a massive improvement over the original Adventure, both in terms of complexity and playability, while still owing their format to the original game.
MACHINE REQUIREMENTS AND PROGRAMMING LANGUAGES
The resources required by an adventure game really depend on the type of game (as classified above) and on the aims of the game. All adventure games require a reasonable size of computer memory and they can be greatly enhanced if some form of disk storage is available.
Ideally an adventure game should have at least 48K available for the data and the driving routines. It is possible to get away with less than this, especially if some form of text compression is used, but the adventure game which can be fitted into a 16K machine pales into insignificance beside a 48K game! When available memory is limited, you are forced into using compression techniques and machine code, to create a useable adventure. This distracts you from the game itself, as far more time is devoted to perfecting coding techniques than developing the adventure game. There is a lot to be said for using a high-level language rather than machine code, and getting on with the game itself.
Which high-level language is most suitable for writing adventure games? Well, the major task which an adventure game performs is the manipulation of large amounts of text, usually in the form of strings; so any language which provides good string handling functions can be used. The original ADVENTURE was written in FORTRAN, simply because that was the only language available, however it is really designed for scientific number crunching, not for text manipulation. The most commonly used language for writing adventure games on micro-computers is, of course, BASIC, Most BASICs have good string handling, it is a relatively simple language to learn to program in, and it is widely available, all good reasons for using it.
The major problem with using BASIC is that the larger the program, the slower it will run. For most adventure games this is not too much of a problem, as the response times to the player's input are still fast enough to be acceptable. The response delay only becomes a real problem when you are attempting to produce a more advanced adventure game, which will allow complex sentence input. The parsing of sentences takes time, and the delays can easily become totally unacceptable. No player wants to wait thirty seconds between inputting a command and the program responding! Thus, as the games become more ambitious and complex, you are forced to abandon BASIC in favour of machine code, or a compiled language.
As we have already mentioned, resorting to machine code will slow down the development of the adventure game by a significant factor. Machine code takes longer to learn initially, as it requires a totally different programming approach to a high-level language, and this can put the development of an adventure game even further back. Once you have written your adventure game in machine code on one machine, you are then faced with the problems of implementing the same game on a different machine. With a BASIC adventure game, transferring the game to a new machine is simply a matter of translating the program into the new dialect of the BASIC. Despite the lack of standards in BASIC, this is a fairly straight forward task, and it will certainly take you far less time than rewriting the game from scratch on the new machine. If your game is written in machine code, then this is exactly what you will have to do — rewrite the whole game! Even assuming that the new machine uses the same machine language, (e.g. both the Amstrad and the Spectrum use Z80 machine code), you cannot simply copy the program across. The routines for printing out text to the screen, inputting commands from the keyboard, drawing pictures, all the things BASIC does for you, will have to be completely rewritten.
BASIC has the advantages of making your adventure game portable, so it can run on another machine with minimal changes, yet it is not the only language you can use. We mentioned compiled languages, and PASCAL is such a language, which is becoming widely available on a lot of micros — the Amstrad included — for a relatively small price. The advantages of compiling a language are that you can write the game in a high-level language which is as easy to use as BASIC, yet it will run at almost the speed of machine code! Unfortunately, standard PASCAL is not very suitable for adventure games programming, as it lacks even elementary string handling functions, making text manipulation a difficult and complex problem. Fortunately, the people developing the new micro-based versions of PASCAL have realised that the language does have some severe limitations, and they have taken steps to overcome them. The most common addition to the language, and the one feature we really need, is string handling, so you can manipulate text in the same way as BASIC.
If you write your adventure game in PASCAL, implementing it on a new machine is simply a case of putting the same program on the new machine and then compiling it, using that machine's version of PASCAL. Your adventure is then ready to run, without any alteration! There are disadvantages to using a compiled language like PASCAL, as it is not as fast as machine code, and the compiled code is not as compact as machine code; but these are outweighted by the ease of use, the portability, and the fast development time.
The other problem, of course, is being able to afford a PASCAL compiler! While they are becoming more widely available, not everyone can afford to buy one, and thus we will stick with BASIC in this book — every Amstrad has BASIC built into it!
THE FUTURE OF ADVENTURE GAMES
As all of computer technology and computer games are constantly developing, so is the adventure games genre. There are always new ideas to be tried and new complexities of programming to be reached. The future of adventure gaming looks very healthy, with a wealth of new technology and knowledge to draw on.
We have already seen the use of video disks in the computer games field with arcade games such as M.A.C.H. 3 and the adventure game Dragon's Lair (DL). In these games, the computer projects images from the video-disk which correspond to the players actions. Thus, in Dragon's Lair, you control Dirk the Daring, a fearless fighter, and all the action is shown on screen in the form of an animated cartoon. Unfortunately, games such as DL bear little resemblance to the adventure games we know, because the action is so limited. The computer cannot access frames continuously from the disk, in response to the players actions, and thus the game comprises of a number of scenes, which are “jumped” between. In DL the player moves Left, Right or waves his sword at the appropriate point. There is very little interaction.
However, the technology is coming here, and it should soon be possible to have a fully interactive use of Video. The adventure would now take the form of a live ''film” in which the player takes an active part. The characters in the film will respond to you, and the character representing you will act out the actions you dictate. Thus it will be like Valhalla in some ways, but far more realistic and with the storage capacities of Video Disk, the true adventure element can be preserved.
Developments in the field of Artificial Intelligence research will also have a great effect on future adventure games. There is not only the concept of using the logic and knowledge processing techniques that have appeared in games such as Sherlock from Melbourne House and the Infocom games, where the other characters in the game appear to be intelligent, and thus you can order them around, hold conversations with them, etc. There is also the work in the field of natural language processing which has obvious applications to adventuring. One of the most frustrating aspects of playing an adventure game is the limited vocabulary available to you, and the problems often encountered when trying to find just the right word for a desired action. However, if you could type your commands into the computer in your natural language, in English, there would be no problem; you are freed from the restraints of an artificial language and able to concentrate on the adventure and absorb its atmosphere, without distraction.
Typing in commands is always a problem, especially when you want to use a long sentence and are a poor typist. Here, Artificial Intelligence research can help as well, in the field of Speech recognition. A truly interactive film could be produced if you were able to physically speak to the characters in the game, and to hold a spoken conversation with them!
Multi-user adventures are already starting to appear with the most famous of these being MUD, which is run on a small minicomputer. The acronym standing for Multi-User-Dungeon. MUD enables the player to not only enter a large, and complex adventure world, but to do this in the company of other players! Thus, the characters you meet while playing the game will not obey simple rules devised by the programmer — these characters have exactly the same potential for unexpected behaviour as you do as their controllers are human. While MUD is a fairly limited adventure game, bigger and better versions are already being worked upon with hundreds of locations, objects and players! The concept of multi-user games, either on large mainframes, where the players take part via a modem and a phone line, or via a large multi-user local network system, each player using one system terminal, offers almost infinite possibilities for expanding the present day adventure game and increasing the realism.
Fairly obviously, most of these ideas are a long way from becoming reality, yet they do show that there are many areas of computing which can be applied to adventure games and adventure game programming; areas which are on the forefront on computing research. Considering the growth of computing and computing techniques over just the last ten years, they could be here sooner than you think.