Skip to content

Commit

Permalink
More updates to the readme.
Browse files Browse the repository at this point in the history
  • Loading branch information
lanceewing authored May 4, 2024
1 parent d6b1bbf commit a661e13
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,32 @@
![](html/webapp/agile_title.png)
# AGILE
AGILE is an AGI engine whose primary purpose is to run Sierra AGI games on the web!
**AGILE** is an AGI interpreter whose primary purpose is to run Sierra AGI games on the web! - Supports mobile as well.

https://agi.sierra.games

Development began in November 2023, in hopes that it would be fully complete by the 10th May 1984, to coincide wih the 40 year anniversary of the release of King's Quest, the world's first animated graphic adventure game!
Development on this web version of AGILE began in November 2023, in hopes that it would be fully complete by the 10th May 1984, to be a tribute to, and to coincide with, the 40 year anniversary of the release of King's Quest, the world's first animated graphic adventure game!

AGI was the name of the [Adventure Game Interpreter](https://en.wikipedia.org/wiki/Adventure_Game_Interpreter) used by Sierra On-Line to run the 3D animated adventure games that they released in the 1980s, which included games such as King's Quest 1/2/3/4, Space Quest 1/2, Police Quest, Leisure Suit Larry, Manhunter 1/2, Gold Rush, Donald Duck's Playground, Black Cauldron, and Mixed-Up Mother Goose. There were also well over 100 fan-made games made to run on the same AGI interpreter system, mostly written in the late 90s and early 2000s by Sierra On-Line fans.

AGILE is an almost complete implementation that has attempted to align as close as possible to the original interpreter's behaviour.
AGI was the name of the Adventure Game Interpreter written by Sierra On-Line to run the 3D animated adventure games that they released in the 1980s, which included King's Quest 1/2/3/4, Space Quest 1/2, Police Quest, Leisure Suit Larry, Manhunter 1/2, Gold Rush, Donald Duck's Playground, Black Cauldron, and Mixed-Up Mother Goose. There are also over 100 fan-made games and demos that run on the same AGI interpreter system, mostly written in the late 90s and early 2000s by Sierra On-Line fans.

## Features
- Intuitive familiar UI, with game import and selection screens.

![](img/title_page_web_desktop.jpg) |![](img/games_page_web_desktop.jpg) | ![](img/kq1_web_desktop.jpg)
:-------------------------:|:-------------------------:|:-------------------------:|

- Supports importing the original IBM PC AGI v2 & v3 games.
- Supports importing the original IBM PC AGI v2 & v3 games, from either a folder or ZIP file.
- Web version comes with over 100 fan-made games and demos already pre-packaged!
- IBM PCJR 4-channel sound, using SN76496 emulation.
- IBM PCJR 4-channel sound, using SN76496 emulation, the sound chip used in the PCJR.
- Game detection of most known versions of Sierra's original IBM PC AGI games, and most AGI fan-made games.
- Saved games that are stored in the browsers OPFS storage.
- Full screen mode. Use the full screen icon when a game is running to toggle this.
- Show Priority screen. Use <kbd>F12</kbd> to show, and ENTER/SPACE to exit.
- Virtual keyboard for use by touch screen devices, such as mobile and tablets.
- Virtual joystick as an alternative to using the arrow keys, also intended for touch screen devices.

Most of the original Sierra On-Line games are still available for purchase online, so for legal reasons, AGILE does not come prepackage with those games. You must have your own copy and use the import feature to load the game into AGILE. It supports importing from both a folder containing the game, or a ZIP file containing the game. After it has been imported, it will remain in your browser's storage so that you won't have to import it again.
Most of the original Sierra On-Line games are still available for purchase online, so for legal reasons, AGILE does not come prepackaged with those games. You must have your own copy and use the import feature to load the game into AGILE. It supports importing from both a folder containing the game, or a ZIP file containing the game. After it has been imported, it will remain in your browser's storage so that you won't have to import it again.

To purchase the original games online, check out [gog.com](https://www.gog.com) and [Steam](https://store.steampowered.com).

## Requirements
AGILE should run on most modern web browsers. It does, however, rely on some browser APIs that are relatively recent, such as the SharedArrayBuffer and Origin Private File System. It has been tested on Chrome, Edge, Firefox and Safari, both the desktop and mobile versions, and has been confirmed to work. If it doesn't work for you, then check to make sure that you have updated your browser to the latest version. If it still doesn't work, please create an issue under the Issues section above with the details of your device and browser version.
Expand All @@ -42,7 +47,7 @@ AGILE (GDX) started as a port of my C# AGILE Sierra AGI interpreter project to J

The reason why the libgdx framework was chosen (and why the JAGI bit is stripped down to the bare minimum), was to get it working as a web app, by primarily targetting the GWT/HTML libgdx platform. GWT (i.e. the Google Web Toolkit) is used by libgdx to transpile the Java code into JavaScript, thus the reason why it is written mostly in Java but is able to run on the web.

Javascript is by default single threaded, which isn't compatible with how AGI blocks waiting for input in some scenarios. To address that in the C# version, and also in the Desktop platform of agile-gdx, a background Thread is created to run the actual Interpreter code, so that the UI thread is not blocked. To achieve the same for HTML5, a web worker was needed, as it allows code to be run outside of the browser's main UI thread. Unfortunately, libgdx and GWT did not provide direct access to that, but by using a project called gwt-webworker written by Manfred Trammel, I was able to get libgdx to support running the code in a web work.
Javascript is by default single threaded, which isn't compatible with how AGI blocks waiting for input in some scenarios. To address that in the C# version, and also in the Desktop platform of agile-gdx, a background Thread is created to run the actual Interpreter code, so that the UI thread is not blocked. To achieve the same for HTML5, a web worker was needed, as it allows code to be run outside of the browser's main UI thread. Unfortunately, libgdx and GWT did not provide direct access to that, but by using a project called gwt-webworker written by Manfred Trammel, I was able to get libgdx to support running the code in a web worker.

For details of the original C# version, see here: https://github.com/lanceewing/agile

Expand Down

0 comments on commit a661e13

Please sign in to comment.