The JACL Author's Guide
Description: Documentation for the JACL Adventure Creation Language.
Keywords: JACL,tutorial,programming,programmers,guide,manual,documention,instructions

# Installation

The latest version of JACL can be found at http://jacl.sourceforge.net/download.html. JACL is available as a zip file for Microsoft Windows and tar file for Unix operating systems. Once you have extracted the appropriate archive you will have a directory called jacl-2.x with several subdirectories. You will find the executable files in the bin subdirectory. In Microsoft Windows distributions you will find three interpreters jacl, winjacl and garjacl. The first uses GlkTerm by Andrew Plotkin, the second WindowsGlk by David Kinder and the third uses Gargoyle by Tor Andersson. You will also find the program bjorb, a small utility (based on blc by Ross Raszewski) for creating the Blorb resource files that will contain any images and sounds you wish to use in your games. In Linux distributions you will find the two interpreters jacl and garjacl. The first uses GlkTerm by Andrew Plotkin while the second uses Gargoyle by Tor Andersson. You will also find the same bjorb utility as in the Windows version.

## Compilation

The src directory contains the C source code to the JACL interpreter. Also included is the source to glkterm a Glk implementation by Andrew Plotkin based on ncurses, and the bjorb utility .

Interpreter | Required Libraries
--- | ---
jacl | GlkTerm by Andrew Plotkin (included) and Ncurses, available from http://ftp.gnu.org/pub/gnu/ncurses/.
jacl | GlkTerm by Andrew Plotkin and PDCurses (source included).
winjacl | WindowsGlk by David Kinder (included as a DLL).
garjacl | Gargoyle by Tor Andersson (included as a DLL and .so shared library).

To compile the relevant JACL interpreters and the bjorb utility you will need to first copy the Makfiles appropriate for your system (either Unix or Microsoft). To do this, change to the src subdirectory and type the following commands:

    cp Makefile.<Unix/Microsoft> Makefile
    cp glkterm/Makefile.<Unix/Microsoft> glkterm/Makefile
    make install

This will compile all the relevant programs and copy the executable binaries into the bin subdirectory. If you are compiling for Microsoft Windows, you will need the MinGW version of gcc.

All the extra DLLs required for Microsoft Windows are included in the bin directory. In Linux distributions, only the core Gargoyle share library is included. This is file libgarglk.so in the src/Gargoyle directory and should be copied to the directory /usr/local/lib. Other required libraries should be installed using your operating systems packaging system. Below is the output of ldd to showing the complete list of libraries required:

    libgarglk.so           libjpeg.so.62
    linux-gate.so.1        libm.so.6
    libc.so.6              ld-linux.so.2
    libfreetype.so.6       libz.so.1
    libgtk-1.2.so.0        libgdk-1.2.so.0
    libXi.so.6             libXext.so.6
    libX11.so.6            libglib-1.2.so.0
    libpng12.so.0          libSDL_mixer-1.2.so.0
    libSDL-1.2.so.0        libgmodule-1.2.so.0
    libdl.so.2             libXau.so.6
    libxcb-xlib.so.0       libxcb.so.1
    libasound.so.2         libdirectfb-1.0.so.0
    libfusion-1.0.so.0     libdirect-1.0.so.0
    libpthread.so.0        libXdmcp.so.6

In the games directory you will find several JACL games. A JACL game consists of one or more .jacl files and an optional .blorb file that contains multimedia resources used by the game. If a JACL game consists of more than one .jacl file, the other file will be one of the library files from the include directory.

Inside the games directory you will also find a temp directory. This is the directory where the interpreter will create the .j2 files. A .j2 file is a concatenation of a main game file and all other files included from that file. They are created by the interpreter when the game is first run and are encrypted by default.

| Under Unix, the user the JACL interpreter is run as must have write permissions to the temp directory.

The include directory is found inside the games directory. In the include directory you will find verbs.library, the main interactive fiction library and frame.jacl, a skeleton program used as a starting point when writing a new piece of interactive fiction.

In the guide directory you will find this documentation.

## Playing the Sample Games

Once you have compiled versions of the JACL interpreters, try running one of the provided games by changing to the bin directory and typing the command:

    ./garjacl ../games/grail.jacl

When you do so, you should see something like the screen below:

Back to Contents