• Tutorials

  • Home
  • GPDL Overview

    "GPDL" stands for "General Purpose Dungeon Language". It means nothing. The author found himself attempting to keep identifiers and file names under eight characters and decided he needed a nice four-letter acronym.

    GPDL is a language that will remind you of 'C'. It has 'while' statements, 'return' statements, and lots of curly braces. If you can write a 'C' program you can quickly learn the differences and limitations of GPDL.

    The general idea of using the language is to provide a way for game designers to accomplish those one or two very special cases that are needed to make the game work right. It is clearly impossible to anticipate every wish when writing a RPG-style engine.

    The language was initially used to provide a rudimentary dialog capability in the Ultima fashion. You can ask questions of the characters you meet and they respond based on key words in the questions.

    The game designers will be the driving force in the direction GPDL takes. As special needs arise, functions can be added to the language to examine and manipulate game state variables and game objects. For example, one of the first functions added allows the game designer to replace or remove a wall.

    We anticipate that functions to alter spells and other objects will be requested and implemented.


    Compiling a GPDL Program
    Invoking a GPDL Program

    Writing a GPDL Program

    GPDLDataTypes
    GPDL Expressions
    GPDL Literals
    GPDL Variables
    Associated String Lists

    GPDL System Functions

    List Of Functions
    RegularExpressions
    More Regular Expressions
    $DEBUG
    $EQUAL
    $GET_CHAR_ASL
    $GET_LEVEL_STATS_ASL
    $GET_GLOBAL_ASL
    $GET_PARTY_ASL
    $GREP
    $WIGGLE
    $LISTEN
    $LISTENTEXT
    $LOGIC_BLOCK_VALUE
    $MIDDLE
    $RANDOM
    $SAY
    $SMALL_PICTURE
    Character Variables
    Game Variables
    Money Variables
    Party Variables
    $SET_QUEST

    GPDL Programs

    Program Structure
    Assignment Statements
    PragmaDirectives
    Functions
    Nested Functions
    Function Calls
    Comments

    Structure Keywords

    $IF Keyword
    $SWITCH Keyword
    $WHILE Keyword