Technical Stuff.

Table of Contents.

Global Configuration

The global config file is where all of the settings that apply to...

Character Configuration

Section explaining character configuration.

The Log.

This is the first thing you should look at if something goes haywire or your character doesn't behave quite like you would expect.

Angelscript

Angelscript is a statically-typed scripting language that makes it incredibly easy to bind classes and functions. At the same time however, on the C++ side of things, it is also very configurable and extensible. I will not be going over the language here. I will leave that to its creator on the documentation of the language, which can be found HERE. I will, however, go over a few additions to the language that are not covered in the core language guide. Don't worry, Angelscript is an easy language to pick up, and its debugging facilities are among some of the best I have ever had the pleasure to work with. Like all programming languages, however, it is not without its quirks and nuances.

The State Machine.

The program utilizes what is called a Finite State Machine to define and organize the character's states of being. Put simply, a Finite State Machine (FSM, from now on) is a way of organizing states of an object into a way that is easy to read and understand, even by non-programmers. Right now, I am assuming that you are sitting. It could be said that you are in a sitting state. Shocked by this newfound knowledge? It could be said you are in a "Shocked" state. See how that works?

Defining a New State.

Defining states.

Tasks

Defining a New Task.
The Task Stack.
Effective Task Use.

When a character is in a state, it is able to read from a series of tasks. These tasks are ways of simpifying the... er... task... of defining its behaviors when in a given state. Think of tasks as things you would do in your day-to-day life. Ever walked to school or work? That could be defined as a Task. How about stretching out in your chair? Lounging in front of the T.V.? Those can all be thought of as Tasks.

Defining a New Task.

Tasks are defined in the scripting languages by inheriting from the Task interface provided by Moji.

The Task Stack.

Task Stack explanation.

Effective Task Use.

Overview of how to use tasks effectively.

 All Data Structures Functions