Code Documentation

From Hero of Allacrost Wiki
Revision as of 23:26, 15 August 2016 by Roots (talk | contribs) (Game Mode Documentation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This section contains links to various pieces of documentation about the code written for Allacrost. Documentation detailing how to play the game or use the map editor can not be found here. Allacrost developers produces three forms of documentation.

- Hand-written documentation for the game engine and API (this wiki)
- Technical documentation generated by Doxygen
- Comments in the source code

General Documentation[edit]

This section contains general documentation that is vital for developers to read through and understand. If you intend to develop code to be officially included in the Allacrost engine, you should begin reading here.

Quick Start Guide
A brief introduction to the design of the Allacrost engine and its major components. The most useful piece of documentation for new developers.

Tutorials demonstrating how to use the Allacrost game engine to build a new game mode.

Code Standard
A concise listing of all the conventions that must be followed when writing code for the Allacrost engine. Also provides some background onto why certain standards were chosen.

Technical Documentation (links outside of the wiki)
The latest documentation of the Allacrost engine that was generated by Doxygen. This grandiose documentation contains complete lists of all namespaces, class names, file names, UML diagrams, inheritance charts, and more.

Global Classes There are a number of class objects that all need to be used by multiple of game modes. For example, items, equipment, and characters all have their classes defined in what we call the "global" component of the code base. This documentation explains what classes are available and how to use them.

Engine Documentation[edit]

This section is full of in-depth discussion on the APIs of all the various engine components. It includes some brief discussion on why certain design decisions were made are also scattered throughout these documents.

Audio Engine
Covers all the features available in the audio component of the Allacrost engine, and a brief coverage of the OpenAL library that it is built upon.

Scripting Engine
The script engine documentation explains how to call C++ code from within Lua scripts and vice versa.

Input Engine
A description of how the Allacrost engine retrieves and processes input from the user via the keyboard or game pad controller.

Mode Management Engine
Covers the game mode stack mechanism that is pivotal to the core logic of how the game operates.

Notification Engine
The notification engine serves as the central communication system for different areas of the source code and scripts

System Engine
The system engine manages timed functions, threads, and various game settings.

Video Engine
Outlines all of the features available in the video component of the Allacrost engine, including drawing images, rendering text, graphical effects, and more.

Game Mode Documentation[edit]

This section explains the implementation of the various game modes that run when the game executes. Game modes are not a part of the core engine, and any number of game modes can be written, developed, and included in the Allacrost.

Battle Mode
Everything that occurs during a battle, from animation, to sound playback, to victory or defeat screen, originates from this game mode.

Boot Mode
The first game mode made active when the game is started, this mode handles all of the graphics and menu operations seen on the boot screen.

Custom Mode
A bare-bones mode that serves as a base for building customizable game modes in Lua code.

Map Mode
Handles everything from town and dungeon map exploration, dialogues among characters, and NPC artificial intelligence. It is the most complex game mode in Allacrost.

Menu Mode
This mode is made active when the user brings up the main menu, in which they can do things such as manage characters, items, or equipment.

Pause Mode
A simple game mode that pops up when the user requests to pause or quit the game.

Save Mode
Allows the user to save their game to a file on their system or restored a saved game.

Shop Mode
Presents the user with an interface through which they can purchase wares from a shop keeper or sell objects in their inventory

Map Editor Documentation[edit]

The Allacrost Map Editor is the in-house tool that is used to construct the maps seen in the game. The documentation within this section describes how the map editor is bound together and what it can and can not do.

Map Editor
A summary of the major features found in the editor as well as documentation of the code.

Map File
A description of the syntax used and items necessary for defining a complete map. The map file is generated by the editor.

Tileset Definition File
A description of the syntax used and items necessary for defining the properties of a tileset. This file is currently hand-made, but plans are in the works for the editor to generate it (with input from the user).