Skip to content
Thomas Nilefalk edited this page Aug 30, 2021 · 1 revision

Some notes on the various file extensions used by Alan 3.


Table of Contents


Extensions List

file ext. format created by description
.alan text user Adventure source file (main).
.i text user Adventure source file (module).
.a3c binary compiler Compiled adventure story file.
.a3r binary compiler Adventure assets file (images and/or sounds).
.ifid text compiler Unique adventure IFID string, generated by Alan.
.lis text compiler Compiler generated listing file (optional).
.xml text compiler XML representation of the adventure (optional).
.sav binary interpreter Arun saved game session.
.glksave binary interpreter WinArun saved game session.
.log text interpreter Gameplay transcript or player commands log, generated by Arun.
.txt text interpreter Gameplay transcript or player commands log, generated by WinArun.

EOL NOTE — All text files generated by the Alan SDK tools use native OS EOL.

Compiler Output

Given the source adventure <filename>.alan, the Alan compiler will generate the following files:

file name description condition
<filename>.a3c Compiled story file. always
<filename>.a3r Adventure multimedia assets (if any). if adventure has images or sounds
<filename>.ifid Unique IFID string of the adventure. if no valid .ifid file is present
<filename>.lis Compiler listing file. optional via -listing switch
<filename>.xml XML representation of the adventure. optional via -xml switch

About The IFID File

The .ifid file generated by the Alan compiler contains the unique identifier of the adventure, in accordance with the Treaty of Babel specification for IFIDs. As long as the generated .ifid file is kept with its adventure source file (same file name), the compiler won't generate a new IFID file.

If you intentionally delete the .ifid file (or loose it), then the compiler will create a new .ifid file, with a freshly generated IFID. To preserve the unique IFID of an adventure across its updates it's therefore important not to decouple the source file from its autogenerated .ifid file.

The compiled .a3c story file contains a copy of the same IFID string found in the .ifid file, so it's not strictly necessary to distribute the .ifid file with the compiled adventure (but it's advisable to do so). This also means that if the original .ifid file generated by Alan is lost it's still possible to recover the original IFID string from the compiled story file, and manually recreate the lost .ifid file.

The compiler will always check that the .ifid contains a valid IFID string, and generate a new one if it doesn't.

Interpreter Files

Arun can generate a log of either the full game session (commands and responses) or just the player's commands, and can also playback the latter on an adventure story file. Log files of both types are generated with the .log extension — in the form <filename><timestamp>.log.

WinArun offers these features too, via GUI menus, using the .txt extensions instead of .log, and without appending a timestamp to the generated filename.

Game Transcripts

Game transcripts contain the full text of a game session (player commands plus adventure text). They are often used by beta-testers to provide feedback to the author of the adventure being tested, or to provide a gameplay sample for reviewing or documentation purposes.

To generate a game transcript, invoke Arun with the -l option:

arun -l someadventure.a3c

The Arun interpreter will create a file with the same name of the adventure, but followed by a timestamp and with the .log extension. At the end of the game session, the transcript text is flushed to the generated .log file.

In WinArun, you can create a trascript via the menu Arun > Transcript…

Commands Scripts

Player commands scripts (aka solution files) contain only the commands typed by the player (without the preceding prompt). They are intended to be used for running a game session in automated mode.

To generate a commands transcript, invoke Arun with the -c option:

arun -c someadventure.a3c

The Arun interpreter will create a file with the same name of the adventure, but followed by a timestamp and with the .log extension. At the end of the game session, all the typed commands are flushed to the generated .log file.

In WinArun, you can create a commands script via the menu Arun > Record commands…

Although Arun generates commands scripts using the .log extension, and WinArun using the .txt extension, neither of them enforces any specific file extension to commands scripts, so you might encounter this type of scripts with names like <filename>.input and various other arbitrary file extensions — other common extensions are: .walkthrough, .walkthru, .solution and .sol.

To play an adventure with a commands script, invoke Arun by redirecting the commands script to its input via STDIN:

arun someadventure.a3c < someadventure.sol

In WinArun, you can play an adventure using a commands script via the menu Arun > Playback commands…