Game Adaptation Language

From Sierra Wiki
Jump to navigationJump to search
Game Adaptation Language (GAL)


GAL
 Dates Used: 1983 - 1984
 Company: Sierra
 Developer(s): Ken Williams, Arthur Abraham, and Jeff Stephenson
Type: Graphical Parser
 Dev Language:  C
 Open Source: Closed
 Source Availability:  No
 License: Internal
 Platform(s): Booter DOS
 Website: www.sierra.com




A.K.A.


Description

There are two theories as to what the Game Adaptation Language (GAL) was. One theory is that it was the original name of the AGI (Adventure Game Interpreter)[1] system used by games such as King's Quest 2, Police Quest 1, Space Quest 1, etc.

My final question to Donald <Trivette> was regarding the Game Adaptation Language. His answer was "I called it what ever Ken Williams called it, which must have been Game Adaptation Language".


The "first" meaning of AGI was "advanced graphics interpreter." Moving games from system to system wasn't the big goal of the creation for the toolset. It was really designed so that artists and musicians could be part of the development process - something that really wasn't possible at the time. It was actually changed to "Game Adaption Language" at some point when we started using it to port games from machine to machine but at first it was really a workflow tool so that our artists could share work, do testing, etc. in the same system the programmers were working in.


The other theory is that it was the name of the system used by the original King's Quest game, after which a major redesign of the system produced the Adventure Game Interpreter (AGI) system used by King's Quest 2 and all AGI games after that. Regardless of which theory is correct, the one thing that appears to be true is that the scripting language used in original King's Quest game was called Game Adaptation Language.

Wikipedia[4] wrote:

AGI (Adventure Game Interpreter) was the development tool used by Sierra Online to create their early adventure games.

The original King's Quest engine and language (named Game Assembly Language or *.gal by its designer, Arthur Abraham) was developed by Sierra to to showcase the technology of the PCjr . AGI, originally developed by IBM, was donated to Sierra when it was unable to finish the project due to the dismissal of its main designer.

The first game to use the AGI engine was King's Quest I, released in 1984. There were also a few games made with AGI that were not adventure games.

When it was first used, in the mid-1980s, AGI was very innovative and made impressive use of the technology available at the time. Later versions were adapted to use 16 color EGA graphics and the Adlib soundcard.

By the end of the 80s, however, AGI's 160×200 resolution began to look outdated and it couldn't keep up with newer developments such as mice, which were used extensively by the SCUMM engine of competitor Lucasfilm Games. In 1990, Sierra abandoned AGI and started using the SCI (Sierra Creative Interpreter) engine for their adventure games.


Design

Wikipedia[5] wrote:

The technical complexity of King's Quest made it a burden to write in assembly language, so the programmers created a game engine to simplify development. The engine comprised a bespoke programming language called the Game Adaptation Language,[6] a compiler, and a bytecode interpreter (the Adventure Game Interpreter).[7] The Game Adaptation Language was a high-level programming language that resembled C.[7] This was compiled into bytecode, which was executed by the interpreter.[7]

Like Sierra's early titles in the Hi-Res Adventures series, AGI games used vector graphics. The PCjr accepted floppy disks with a capacity of 360 kilobytes, and raster graphics would have consumed an excessive amount of disk space.[6] Instead, King's Quest drew polygons on the screen, and then colored them.[6] Beginning with AGI version 2, the game engine drew graphics in an off-screen data buffer, then blitted them into video memory. This approach was not just to economize use of system resources; it also prevented the game from revealing hidden objects while it drew the screen.

AGI was principally developed for 16-bit computer architectures, which were the state of the art in home computers at the time. These included the IBM PC compatible, the Atari ST, Commodores Amiga series, and Apple's Macintosh computers. In addition, Sierra ported AGI to three 8-bit computer models: the TRS-80 Color Computer, the Apple IIe, and the Apple IIc.


Specifications


Versions


Games using Game Adaptation Language


History

The first verifiable mention of the Game Adaptation Language was in an article written by Donald B. Trivette [8]

In addition to the graphics for each room, there is a set of logical statements. These are written in a special language devised by Sierra called the Game Adaptation Language. The program constantly loops through these statements looking for something to change. They work sort of like a group of IF-THEN statements in BASIC.

For example, in one room, room 10, a goat randomly wanders around inside a pen (see photo). The pen extends into room number 11 on the right. If the goat happens to wander out of room 10, the program must erase the goat. The program knows the goat by the codename 14 and Sir Grahame by the name Ego. So if Ego moves to room 11 in search of the goat, the program must remember to draw 14 in room 11. The statement in Game Adaptation Language looks like this:

IF HAS-GOAT 0 AND OBJHIT-EDGE 14 AND EDGEOBJ-HIT 1 AND GOAT-GONE 0 AND SHOWCARROT 0 THEN ASSIGN GOAT-ROOM 11, ERASE 14.


The first King's Quest game originally used a language named Game Assembly Language, or *.gal, by its designer, Arthur Abraham, but when he left, Sierra was unable to complete the game. Since King's Quest was intended to showcase the technology of the IBM PCjr, IBM "donated" its product, AGI, to Sierra to allow development of King's Quest to continue.


Jimmy Maher (The Digital Antiquarian)[10] wrote:

What with Ken having a company to run, the heavy lifting of turning the proposal into a game engine largely fell to Jeff Stephenson. Just like the Hi-Res Adventure engine, this one was designed to be reusable and extendible from the start. It was initially known as the Game Adaptation Language, or GAL. Ken, however, loathed the cutesiness of that acronym, and it was eventually renamed to the Adventure Game Interpreter, or AGI.


References


See Also