1 INTRODUCTION

2 TUTORIAL

    2.1 What is an Adventure?

    2.2 Elements of Adventures

    2.3 Alan Fundamentals

    2.3.1 The Map
    2.3.2 The Objects
    2.3.3 The Verbs
    2.3.4 The Actors

    2.4 Alan Language Description

    2.4.1 The LOCATION
    2.4.2 The OBJECT
    2.4.3 The ACTOR
    2.4.4 The VERB

      Checking Things 19

      Global, Local and Objective VERBs 19

    2.4.5 The SYNTAX

3 THE LANGUAGE

    3.1 An Adventure

    3.2 Options

    3.3 Attributes and Default Attributes

    3.4 Synonyms

    3.5 Messages

    3.6 Syntax Definitions

      Indicators 28

      Class Restrictions 29

      Default Syntax 30

    3.7 Verbs

      Checks 31

      Does-clause 32

    3.7.1 Verb Alternative
    3.7.2 Verb Qualification

    3.8 Locations

      Identifier and Name 34

      Attributes 34

      Description 35

      Does-clause 35

      Exits 35

      Verbs 36

    3.9 Objects

      Name 36

      Initial location 36

      Container Properties 37

      Attributes 37

      Article 37

      Mentioned 38

      Description 38

    3.10 Containers

      Limits 39

      Header and Else 39

      The inventory 40

    3.11 Events

    3.12 Actors

      Name 41

      Container property 41

      Attributes 41

      Description 41

      Script 41

      Steps 42

      The Hero 42

    3.13 Rules

    3.14 Start section

    3.15 Statements

    3.15.1 Output Statements

      Describe 44

      Say 44

      List 45

    3.15.2 Special Statements

      Quit 45

      Look 45

      Save and Restore 45

      Score 45

      Visits 46

    3.15.3 Manipulation Statements

      Locate 46

      Empty 47

    3.15.4 Event Statements

      Schedule 47

      Cancel 47

    3.15.5 Assignment Statements

      Make 48

      Increase and Decrease 48

      Set 48

    3.15.6 Conditional Statements

      If 49

      Depending On 49

    3.15.7 Actor Statements

    3.16 WHERE specifications

    3.17 WHAT specifications

    3.18 Expressions

    3.18.1 Types of expressions
    3.18.2 Literal values
    3.18.3 Logical expressions
    3.18.4 Binary operators
    3.18.5 Relational operators
    3.18.6 The value of Attributes
    3.18.7 The whereabouts of an entity
    3.18.8 Aggregates

4 LEXICAL DEFINITIONS

    4.1 Comments

    4.2 Identifiers and Names

    4.3 Numbers

    4.4 Strings

    4.5 Files

5 EXECUTION OF AN ADVENTURE

    5.1 A Turn of Events

    5.2 Player Input

    5.3 Run-time Contexts

    5.4 Moving Actors

6 HINTS AND TIPS

    6.1 Use of Attributes

    6.2 Descriptions

    6.3 Common Verbs

    6.4 Doors

    6.5 Containers and Their Contents

    6.6 Actors

    6.7 Distant Events

    6.8 Vehicles

    6.9 Questions and Answers

    6.10 Floating Objects

    6.11 Darkness and Light Sources

    6.12 Distant & Imaginary Objects

    6.13 Structure

    6.14 Debugging

      Command Log 75

      Interpreter and Instruction Trace 75

      Debug mode 76

7 ADVENTURE CONSTRUCTION

    7.1 Getting an Idea

    7.2 Elaborating the Story

    7.3 Implementing it

    7.4 Polishing the Adventure

    7.5 Beta Testing

A Appendix: RUN-TIME MESSAGES

    A.1 Input Response Messages

    A.2 System Errors

      Author Errors 88

      Player Errors 89

      Implementor Errors 89

B Appendix: ALAN LANGUAGE GRAMMAR

C Appendix: COMPILER ERROR MESSAGES

    C.1 Format of messages

    C.2 Message explanations

D Appendix: HOW TO USE THE SYSTEM

    D.1 Compiling

    D.2 Compiler Switches

    D.3 Running the Adventure

    D.4 Interpreter Switches

E Appendix: SYSTEM DETAILS

    E.1 Portability of Games

F Appendix: VERSION DIFFERENCES

G Appendix: FUTURE DEVELOPMENTS

H Appendix: REFERENCES

I Appendix: EXAMPLE ADVENTURE

J Appendix: COPYING CONDITIONS

    J.1 Distribution

    J.2 Documentation

    J.3 Executables

    J.4 Registration

    J.5 Source

    J.6 Examples

    J.7 Versions, compatibility and support

    J.8 Executive Summary