Difference between revisions of "AGI Specifications: Chapter 1 - Introduction"
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Adventure Game Interpreter Specifications|Table of Contents]] | [[Adventure Game Interpreter Specifications|Table of Contents]] | ||
+ | |||
+ | <div align="center"><div id="intro"></div><div id="s1"></div><span style="font-size: 22pt">Introduction</span></div> | ||
| | ||
− | + | AGI (Adventure Game Interpreter) was the first major interpreter used by Sierra. With the release of King's Quest 1 in the early 80's, it introduced the gaming world to the concept of a 3D graphical adventure game, where the player could move a character around the screen, behind, in front of and over objects. Other commands could be typed in, just like a text adventure. This concept, in various forms, has been used many many times since, by Sierra and other companies such as [http://www.lucasarts.com/ Lucas Arts]. It has proved very successful and continues to be used today in games such as [[sciw:Leisure Suit Larry: Love for Sail!|Leisure Suit Larry 7]]. | |
− | |||
− | + | | |
− | <div id="1"></div> | + | == <div id="about"></div><div id="ss1.1"></div><br />1.1 About this document == |
− | |||
The latest version of this document can be found at http://agi.helllabs.org/agispecs/ in SGML, HTML, GNU info, Postscript and ASCII formats. | The latest version of this document can be found at http://agi.helllabs.org/agispecs/ in SGML, HTML, GNU info, Postscript and ASCII formats. | ||
Line 17: | Line 17: | ||
If you have documented an aspect of the interpreter, or have updated your documentation which is already included this document, please send it to the current maintainer ([mailto:claudio@helllabs.org Claudio Matsuoka]) so that it can be added in future versions. Preferred format is Linuxdoc-SGML or plain text. | If you have documented an aspect of the interpreter, or have updated your documentation which is already included this document, please send it to the current maintainer ([mailto:claudio@helllabs.org Claudio Matsuoka]) so that it can be added in future versions. Preferred format is Linuxdoc-SGML or plain text. | ||
+ | == <div id="audience"></div><div id="ss1.2"></div><br />1.2 Audience == | ||
− | + | 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 [[AGI Specifications: Chapter 13 - Other Information#agds|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 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 | ||
− | |||
− | |||
− | === 1.3 Conventions used in this document | + | == <div id="conventions"></div><div id="ss1.3"></div><br />1.3 Conventions used in this document == |
* Keyboard key names are given in fixed with font (e.g. <code>ENTER</code>). | * Keyboard key names are given in fixed with font (e.g. <code>ENTER</code>). | ||
* Metasyntatic variables are given in italics (e.g. ''n''). | * Metasyntatic variables are given in italics (e.g. ''n''). | ||
* File names are case sensitive and given in fixed width font (e.g. <code>sierra.com</code>). | * File names are case sensitive and given in fixed width font (e.g. <code>sierra.com</code>). | ||
− | * AGI resource names are given in all caps (e.g. | + | * AGI resource names are given in all caps (e.g. Logic, View). |
* AGI command names are given in fixed width font (e.g. <code>print.at</code>). | * AGI command names are given in fixed width font (e.g. <code>print.at</code>). | ||
* AGI variable n is noted as vn or Var(n) (e.g. <code>v15</code>, Var(18)). | * AGI variable n is noted as vn or Var(n) (e.g. <code>v15</code>, Var(18)). | ||
* AGI flag n is noted as fn or Flag(n) (e.g. <code>f2</code>, Flag(11)). | * AGI flag n is noted as fn or Flag(n) (e.g. <code>f2</code>, Flag(11)). | ||
− | <div id="ss1.4"></div> | + | == <div id="ss1.4"></div><br />1.4 What's still missing == |
− | |||
Although this document has many details about the AGI specs, a few pieces of information are still missing: | Although this document has many details about the AGI specs, a few pieces of information are still missing: | ||
Line 48: | Line 42: | ||
* The purpose of commands 171, 172 and 174 | * The purpose of commands 171, 172 and 174 | ||
* The meaning of bit 0 in the argument byte | * The meaning of bit 0 in the argument byte | ||
− | * The meaning of bytes 0--1 in the | + | * The meaning of bytes 0--1 in the View resource header |
* Canonical names of commands 170--181 | * Canonical names of commands 170--181 | ||
* Canonical variable and flag names | * Canonical variable and flag names | ||
Line 54: | Line 48: | ||
* Any information about ''[[Donald Duck's Playground]]'' | * Any information about ''[[Donald Duck's Playground]]'' | ||
− | + | == <div id="changelog"></div><div id="ss1.5"></div><br />1.5 Change log == | |
− | <div id="changelog"></div><div id="ss1.5"></div> | ||
− | |||
;Version 3.0 (22 May 1999) | ;Version 3.0 (22 May 1999) | ||
Line 67: | Line 59: | ||
* "Version control" section renamed "AGI interpreter versions". | * "Version control" section renamed "AGI interpreter versions". | ||
* Removed sort-by-date and interpreter version cross-reference from "AGI interpreter versions". | * Removed sort-by-date and interpreter version cross-reference from "AGI interpreter versions". | ||
− | * Added cross-references in the | + | * Added cross-references in the Logic commands description. |
* Added <code>unknown170--unknown181</code> command descriptions written by [[Dark Minister]]. | * Added <code>unknown170--unknown181</code> command descriptions written by [[Dark Minister]]. | ||
* Added IIgs SOUND resource format | * Added IIgs SOUND resource format | ||
Line 85: | Line 77: | ||
* Removed sections 4.2 (logic structure), 3.4 (dir/vol file format), 6.2 (view format), 8.2 (OBJECT format) and 8.3 (<code>WORDS.TOK</code> format). These were sections from the AGDS documentation which contained basically the same information as other more recent documentation in AGI specs. Section numbers above those removed have been moved down. | * Removed sections 4.2 (logic structure), 3.4 (dir/vol file format), 6.2 (view format), 8.2 (OBJECT format) and 8.3 (<code>WORDS.TOK</code> format). These were sections from the AGDS documentation which contained basically the same information as other more recent documentation in AGI specs. Section numbers above those removed have been moved down. | ||
− | * Added sections " | + | * Added sections "Logic syntax" and "Command list and argument types". |
* Replaced sections "How the interpreter works" and "PICTURE resource format" with a better translations. | * Replaced sections "How the interpreter works" and "PICTURE resource format" with a better translations. | ||
* Added more info about the AGDS package in section "The AGDS package". | * Added more info about the AGDS package in section "The AGDS package". | ||
Line 114: | Line 106: | ||
* A not about the dates on documents: almost all of the original ASCII text versions of these documents did not have a date on them, so I have put the "last updated" date to be 31 August 1997, which is when they first appeared in the HTML version of AGI Specs. | * A not about the dates on documents: almost all of the original ASCII text versions of these documents did not have a date on them, so I have put the "last updated" date to be 31 August 1997, which is when they first appeared in the HTML version of AGI Specs. | ||
− | <div id="credits"></div><div id="ss1.6"></div> | + | == <div id="credits"></div><div id="ss1.6"></div><br />1.6 Credits == |
− | |||
The following people (and probably more) have contributed to this document. Please contact the document maintainer to add more names to this list. | The following people (and probably more) have contributed to this document. Please contact the document maintainer to add more names to this list. | ||
Line 140: | Line 131: | ||
[[Adventure Game Interpreter Specifications|Table of Contents]] | [[Adventure Game Interpreter Specifications|Table of Contents]] | ||
− | <span style="float: left">[[Adventure Game Interpreter Specifications|< Previous: | + | <span style="float: left">[[Adventure Game Interpreter Specifications|< Previous: Table of Contents]]</span><span style="float: right">[[AGI Specifications: Chapter 2 - Overview|Next: Chapter 2 - Overview >]]</span> |
| | ||
− | [[Category: | + | [[Category:AGI Documentation]] |
+ | [[Category:References]] |
Latest revision as of 00:50, 3 March 2018
AGI (Adventure Game Interpreter) was the first major interpreter used by Sierra. With the release of King's Quest 1 in the early 80's, it introduced the gaming world to the concept of a 3D graphical adventure game, where the player could move a character around the screen, behind, in front of and over objects. Other commands could be typed in, just like a text adventure. This concept, in various forms, has been used many many times since, by Sierra and other companies such as Lucas Arts. It has proved very successful and continues to be used today in games such as Leisure Suit Larry 7.
1.1 About this document
The latest version of this document can be found at http://agi.helllabs.org/agispecs/ in SGML, HTML, GNU info, Postscript and ASCII formats.
If you have any questions about the individual sections in this document, email the author of that section.
If you have documented an aspect of the interpreter, or have updated your documentation which is already included this document, please send it to the current maintainer (Claudio Matsuoka) so that it can be added in future versions. Preferred format is Linuxdoc-SGML or plain text.
1.2 Audience
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.
1.3 Conventions used in this document
- Keyboard key names are given in fixed with font (e.g.
ENTER
). - Metasyntatic variables are given in italics (e.g. n).
- File names are case sensitive and given in fixed width font (e.g.
sierra.com
). - AGI resource names are given in all caps (e.g. Logic, View).
- AGI command names are given in fixed width font (e.g.
print.at
). - AGI variable n is noted as vn or Var(n) (e.g.
v15
, Var(18)). - AGI flag n is noted as fn or Flag(n) (e.g.
f2
, Flag(11)).
1.4 What's still missing
Although this document has many details about the AGI specs, a few pieces of information are still missing:
- Savegame file format
- Some chunks of the memory organization
- Unknown view table entries
- Unknown fields in the IIgs sound header
- The release date of many AGI games
- The purpose of commands 171, 172 and 174
- The meaning of bit 0 in the argument byte
- The meaning of bytes 0--1 in the View resource header
- Canonical names of commands 170--181
- Canonical variable and flag names
- More information about differences of AGI in other platforms (Amiga, Apple II, CoCo, etc)
- Any information about Donald Duck's Playground
1.5 Change log
- Version 3.0 (22 May 1999)
- Documentation converted to SGML, to allow easy conversion to other formats such as HTML, LaTeX, GNU info or plain text.
- Typos fixed.
- Removed redundant pieces of information.
- Re-organized and re-ordered sections; added credits, audience and notation subsections.
- Adopted uniform notation (all code examples and function names in fixed width font, hexadecimal numbers, characters and strings in C format, case sensitive file names)
- "Version control" section renamed "AGI interpreter versions".
- Removed sort-by-date and interpreter version cross-reference from "AGI interpreter versions".
- Added cross-references in the Logic commands description.
- Added
unknown170--unknown181
command descriptions written by Dark Minister. - Added IIgs SOUND resource format
- Added some bits of information to
addn, step.size
and other commands.
- Version 2.0 (11 July 1998)
- Date corrected in section "Game IDs".
- Added a note on the main page explaining what AGI specs is for. Hopefully this will reduce the confusion that some people have been having when using this to learn the logic programming language.
- 3 March 1998
- Updated section "Game IDs" with some more info about game IDs and interpreter encryption.
- Corrected put and
put.v
commands in section Command list (the second argument of put and the first argument of put.v are supposed to be a vars).
- 27 January 1998
- Removed sections 4.2 (logic structure), 3.4 (dir/vol file format), 6.2 (view format), 8.2 (OBJECT format) and 8.3 (
WORDS.TOK
format). These were sections from the AGDS documentation which contained basically the same information as other more recent documentation in AGI specs. Section numbers above those removed have been moved down. - Added sections "Logic syntax" and "Command list and argument types".
- Replaced sections "How the interpreter works" and "PICTURE resource format" with a better translations.
- Added more info about the AGDS package in section "The AGDS package".
- Updated section "Websites and people"
- Corrected the title of section "Version 3 resource storage".
- Updated the URL for the windows help version of AGI specs in section "Introduction".
- Fixed up a small formatting error in section "Version differences" (the header for one of the tables was repeated so it was removed).
- 5 December 1997
- Info about windows help version added to section 1.1.
- Corrections made to info on brush patterns in picture documentation (section 5.1).
- Fixed up some small formatting errors in sections 3.4, 3.5, 4.3 and 8.4.
- 5 October 1997
- Section 2.7 (version control) updated.
- Section 6.1 (View format) updated.
- 16 September 1997
- I forgot to add the version differences section when I converted all the documentation to HTML. It's there now.
- Fixed some problems in the index in section 3.x.
- 31 August 1997
- AGI specs is now available!
- A not about the dates on documents: almost all of the original ASCII text versions of these documents did not have a date on them, so I have put the "last updated" date to be 31 August 1997, which is when they first appeared in the HTML version of AGI Specs.
1.6 Credits
The following people (and probably more) have contributed to this document. Please contact the document maintainer to add more names to this list.
- Peter Kelly Peter Kelly
- Lance Ewing Lance Ewing
- Alex Simkin Alex Simkin
- Vassili Bykov Vassili Bykov
- Anders M. Olsson Anders M. Olsson
- Jeremy Hayes Jeremy Hayes
- Joakim Möller Joakim Möller
- Martin Tillenius Martin Tillenius
- Stuart George Stuart George
- Dark Minister Dark Minister
- Kevin A. Lee
- Jens Christian Restemeier Jens Christian Restemeier
- Paul Lunga Paul Lunga
- Ian Schmidt Ian Schmidt
- XoXus XoXus
- Claudio Matsuoka Claudio Matsuoka
< Previous: Table of ContentsNext: Chapter 2 - Overview >