Difference between revisions of "Adventure Game Interpreter"

From AGI Wiki
Jump to navigationJump to search
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
='''Adventure Game Interpreter'''=
+
<!--[[Category:AGI Pages]]-->
 +
<div align="center" style="font-size: 22pt">Adventure Game Interpreter (AGI)</div><br />
 +
<div class="FloatRight"></div>
 +
{{EngineInfobox
 +
| EngineName = Adventure Game Interpreter
 +
| Image = <!-- [[Image:EngLogo.png|190px]]<br />
 +
''Engine Logo'' -->
 +
| DatesUsed = [[1986]] to [[1989]]
 +
| Company = {{SierraOnLineEng}}
 +
| Developer = {{KenWilliamsEng}}, {{JeffStephensonEng}}
 +
| EngType = {{AdvenEng}}, {{GraphicalParserEng}}
 +
| DevLang = {{C}}
 +
| OpenSource = {{ClosedEng}}
 +
| Source = {{NoSourceEng}}<!-- {{SourceEng}}[[#Download|Yes]] -->
 +
| License = {{Proprietary}}
 +
| Platform = {{PCjrEng}}, {{Tandy1000Eng}}, {{CC3Eng}}, {{DOSEng}}, {{AppleIIEng}}, {{AppleIIeEng}}, {{AppleIIgsEng}}, {{AtariSTEng}}, {{MacEng}}, {{AmigaEng}}, {{MasterSystemEng}}
 +
| Website = {{SierraURL}}
 +
}}
 +
<br />
  
'''AGI''' was written in the early 1980's for [[Sierra | Sierra On-Line]] to create a new revolutionary game for IBM's then new computer system, the PCjr. The game, was [[Kings Quest I|King's Quest I]], written by the now famous in the computer games world' [[w:Roberta Williams|Roberta Williams]].
+
==<br /> A.K.A. ==
 +
 
 +
* AGI
 +
 
 +
==<br /> Description ==
 +
 
 +
<blockquote>
 +
'''AGI''' was written in the early 1980's for [[Sierra | Sierra On-Line]] to create a new revolutionary game for IBM's then new computer system, the PCjr, the [[1983|July 1983]] game [[Kings Quest I|King's Quest I]], written by the now famous in the computer games world' [[w:Roberta Williams|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.
 
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.
Line 7: Line 32:
 
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.
 
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. [[sciw:Sierra Creative Interpreter|SCI]] was the next generation interpreter after AGI. One of the last AGI games that was created before SCI became the standard was [[Kings Quest 4 | King's Quest 4]].
+
Since then, many fan-made games are now available. AGI was Sierra's main engine used from 1986 to 1989 when it was superseded by the more advanced '''SCI'''. '''SCI''' was the next generation interpreter after AGI. One of the last AGI games that was created before SCI became the standard was [[Kings Quest 4 | King's Quest 4]].
 +
 
 +
<div class="Quote">
 +
{{Quote|Attrib = {{KenWilliamsQ}} <ref>Sierra Gamers BBS 2004/01/16 - [http://www.sierragamers.com/Forum/bbs/Topic.3529.16972 AGI Creator]</ref>
 +
}}
 +
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?) ([[Chris Iden|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.
 +
</div>
 +
&nbsp;
 +
<div class="Quote">
 +
{{Quote|Attrib = {{KenWilliamsQ}} <ref>Sierra Gamers BBS 2005/07/05 - [http://www.sierragamers.com/Forum/bbs/Topic.7567.530202 Who came up with idea for AGI?]</ref>
 +
}}
 +
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.
 +
</div>
 +
</blockquote>
  
 
==<br /> Specifications ==
 
==<br /> Specifications ==
  
 +
<blockquote>
 
The '''[[Adventure Game Interpreter Specifications|AGI Specifications]]''' are a set of documents, written by the people who figured out the [[AGI|AGI]] formats. detailing how the data for an AGI game is stored and how the [[AGI Interpreter|interpreter]] works. This data includes the [[Logic Resource (AGI)|logic]], [[Picture Resource (AGI)|picture]], [[View Resource (AGI)|view]], and [[Sound Resource (AGI)|sound]] resources, the [[WORDS.TOK|WORDS.TOK]] file and [[AGI OBJECT File|OBJECT file]], the [[Directory Files (AGI)|directory files]] and the [[AGI VOL File|VOL files]].
 
The '''[[Adventure Game Interpreter Specifications|AGI Specifications]]''' are a set of documents, written by the people who figured out the [[AGI|AGI]] formats. detailing how the data for an AGI game is stored and how the [[AGI Interpreter|interpreter]] works. This data includes the [[Logic Resource (AGI)|logic]], [[Picture Resource (AGI)|picture]], [[View Resource (AGI)|view]], and [[Sound Resource (AGI)|sound]] resources, the [[WORDS.TOK|WORDS.TOK]] file and [[AGI OBJECT File|OBJECT file]], the [[Directory Files (AGI)|directory files]] and the [[AGI VOL File|VOL files]].
  
Line 16: Line 63:
  
 
<blockquote>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.</blockquote>
 
<blockquote>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.</blockquote>
 
+
</blockquote><!-- The latest version of the AGI Specs can be viewed at [http://www.agidev.com/articles/agispec/agispecs.html http://www.agidev.com/articles/agispec/agispecs.html]. -->
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.
 
 
 
<!-- The latest version of the AGI Specs can be viewed at [http://www.agidev.com/articles/agispec/agispecs.html http://www.agidev.com/articles/agispec/agispecs.html]. -->
 
 
 
  
 
{| style="border: 1px solid #bfffbf; background-color: #f2fff2; text-align: center" width="75%" align="center" <font color="#000">
 
{| style="border: 1px solid #bfffbf; background-color: #f2fff2; text-align: center" width="75%" align="center" <font color="#000">
 
|-
 
|-
! style="background-color: #bfffbf; text-align: center" colspan="6" | '''[[AGI Resources]]'''
+
! style="background-color: #bfffbf; text-align: center" colspan="4" | '''[[AGI Resources]]'''
 
|-
 
|-
| [[WORDS.TOK]]
 
 
| [[Logic Resource (AGI)|Logic]]
 
| [[Logic Resource (AGI)|Logic]]
 
| [[Picture Resource (AGI)|Picture]]
 
| [[Picture Resource (AGI)|Picture]]
Line 33: Line 75:
 
|}
 
|}
  
==<br /> AGI1 ==
+
<blockquote>
 +
===<br /> AGI Files ===
 +
 
 +
<blockquote>
 +
* [[VOL File (AGI)|VOL.* files]] (with the extension is a number from 0 to 15) - Where the above resources are stored.
 +
* [[AGI DIR File|DIR files]] - Maps where a game's given resources are to be found.
 +
* [[WORDS.TOK]] - A list of words that the AGI interpreter will recognize.
 +
* [[AGI OBJECT File|OBJECT files]] - A list of a game's inventory item names and other information.
 +
</blockquote>
 +
</blockquote>
 +
</blockquote>
 +
 
 +
==<br /> Versions ==
 +
 
 +
<blockquote>
 +
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.
 +
 
 +
===<br /> AGI1 ===
  
 
&nbsp;
 
&nbsp;
  
==<br /> AGI2 ==
+
===<br /> AGI2 ===
  
 
&nbsp;
 
&nbsp;
  
==<br /> AGI3 ==
+
===<br /> AGI3 ===
  
 
&nbsp;
 
&nbsp;
 +
</blockquote>
 +
 +
== <br />Games using AGI ==
 +
 +
* [[:Category:Releases Developed with AGI|Releases Developed with AGI]]
 +
* [[Fan AGI Release List]]
 +
 +
==<br /> References ==
 +
 +
<references />
  
 
==<br /> See Also ==
 
==<br /> See Also ==
  
 
* [[Adventure Game Interpreter Specifications]]
 
* [[Adventure Game Interpreter Specifications]]
 +
* [[Game Adaptation Language]]
 
* [[Interpreter]]
 
* [[Interpreter]]
 
* [[w:Adventure Game Interpreter|AGI Entry on Wikipedia]]
 
* [[w:Adventure Game Interpreter|AGI Entry on Wikipedia]]
 +
* [[mobygrp:game-engine-adventure-game-interpreter-agi|AGI on MobyGames]]
 
* [[Running AGI Games]]
 
* [[Running AGI Games]]
 +
&nbsp;
 +
<!-- [[Category:]] -->

Latest revision as of 11:42, 2 June 2024

Adventure Game Interpreter (AGI)


Adventure Game Interpreter
 Dates Used: 1986 to 1989
 Company: Sierra On-Line
 Developer(s): Ken Williams, Jeff Stephenson
 Type: Adventure, Graphical Parser
 Dev Language:  C
 Open Source: Closed
 Source Availability:  No
 License: Proprietary
 Platform(s): PCjr, Tandy 1000, CC3, DOS, Apple II, Apple IIe, Apple IIgs, Atari ST, Mac, Amiga, Master System
 Website: www.sierra.com



A.K.A.

  • AGI


Description

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. AGI was Sierra's main engine used from 1986 to 1989 when it was superseded by the more advanced SCI. 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.

AGI Resources
Logic Picture View Sound


AGI Files

  • VOL.* files (with the extension is a number from 0 to 15) - Where the above resources are stored.
  • DIR files - Maps where a game's given resources are to be found.
  • WORDS.TOK - A list of words that the AGI interpreter will recognize.
  • OBJECT files - A list of a game's inventory item names and other information.


Versions

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.


AGI1

 


AGI2

 


AGI3

 


Games using AGI


References

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


See Also