Adventure Game Interpreter

From AGI Wiki
Jump to navigationJump to search

Adventure Game Interpreter

AGI was written in the early 1980's for Sierra On-Line to create a new revolutionary game for IBM's then new computer system, the PCjr, the July 1983 game King's Quest I, written by the now famous in the computer games world' Roberta Williams.

Utilizing all 16 colors of the EGA graphics adapter, the AGI system allowed players to play an interactive adventure game with text, graphics, and 3-voice sound and music. Since Kings Quest there have been many more games created by Sierra - Space Quest I, Police Quest I and Leisure Suit Larry I to name a few.

In late 1997, the system was nothing but a nostalgic memory of older computer gamers, until it was 'hacked' into by these fans, and 'decoded'. By 1998, a full AGI editor was available. This utility was called AGI Studio, written by Peter Kelly. Now fans were able to create their own adventure games with the ease of this program and use the AGI Interpreter to run them.

Since then, many fan-made games are now available and an SCI editor is also available. SCI was the next generation interpreter after AGI. One of the last AGI games that was created before SCI became the standard was King's Quest 4.

Ken Williams [1] wrote: AGI was 100% a Sierra invention. Most of the credit for AGI goes to Jeff Stephenson and myself. SCI was 99% Jeff Stephenson's invention, but had a fairly large team at Sierra to work on it. Some of the names that come to mind are: Larry Scott, Bob Heitman, Chris (Something?) (Iden?) I think the full SCI team was around 10 engineers. SCI was the first mass-use object oriented languages. The concept of an object oriented language existed prior to SCI, but no one was using it for commercial applications. I remember the first time Jeff showed me some object oriented code. He created an object that was a door, and had methods like "open" and "close" - and, then overrode the object to make it a window (that would have the same methods). It made absolutely no sense to me. It took years before I really "got it" with respect to object-oriented technologies.

 

Ken Williams [2] wrote: Prior to starting Sierra, I was working as a software developer doing compiler development. I had worked on lots of different compiler-related projects, including: a Fortran compiler, a spreadsheet-style product (years before Visicalc), a SQL-style database query language, etc. Compilers were always interesting to me.

Sierra's very first games - the Hi-Res Adventure series, used a very primitive programming language.

I don't recall AGI being developed as part of the Kings Quest 1 IBM project, but suspect you are right. We wanted to take a major jump forward, and the language we were using for the adventure games was too confining. It had almost no "procedural code" capability. AGI added variables, looping, branching and animation, and the simulated 3-D effect. My recollection is that most of the code was written by Jeff Stephenson. I don't think any of the code in AGI is mine. I was involved, but more on the design than the coding side.

Jeff Stephenson drove SCI more than I did, and deserves most of the credit. At the time, object oriented languages were still in the "theoretical stage." This was a decade before Visual Basic. Jeff was a bit of an intellectual, and was watching object oriented languages evolve. I didn't really "get it" at the time. Jeff wrote a demo of what he was trying to accomplish, and walked me through what an object was. We moved ahead based on my belief in Jeff, not because I really believed in Object Oriented languages. In the 70s, Sierra probably shipped more product, developed using an object oriented language, than the rest of the software industry combined.


Specifications

The AGI Specifications are a set of documents, written by the people who figured out the AGI formats. detailing how the data for an AGI game is stored and how the interpreter works. This data includes the logic, picture, view, and sound resources, the WORDS.TOK file and OBJECT file, the directory files and the VOL files.

As indicated in the following excerpt from the AGI Specs, they are not really intended for a game author. To learn how to program AGI, see Logic language.

AGI specs is intended for people writing AGI programs such as editors, viewers and interpreters. It is not supposed to be a beginners' introduction to AGI, or a Logic programming guide for those who just want to create games (although it can serve as a reference for more advanced Logic programmers). If you want to learn the Logic programming language, we suggest you read the logic section of the AGI Studio help file, and the various other bits of documentation and tutorials available on-line. The programming info contained in this document is mostly from the AGDS package and uses different syntax and terminology for the language and can be confusing if you are using AGI Studio for your programming.

There have been three major revisions to the AGI Specs, and it is known that there are errors in the documentation as well as omissions that were accidentally made between versions 2 and 3 of the specs.


AGI Resources
Logic Picture View Sound WORDS.TOK


AGI1

 


AGI2

 


AGI3

 


See Also

  1. Sierra Gamers BBS 2004/01/16 - AGI Creator
  2. Sierra Gamers BBS 2005/07/05 - Who came up with idea for AGI?