ningalu / turn-based-combat

0 stars 0 forks source link

ngl-tbc

This is the ngl-tbc project.

Core Principles

The main difference between a turn-based system compared to other games is their relationship with time and their expectations regarding the timing of player input. A turn-based battle can be modeled as a series of mutations to some domain-specific battle state over some duration. A Turn can be considered an abstract base unit of time, against which the average planned frequency of each Player's Actions are defined. Players perform Actions by providing domain-specific Commands at the Battle's request. The time between the provision of a Command and its execution as an Action is domain and situation-specific. An extremely common abstraction over Players and Actions is the concept of Units, which are discrete domain-specific entities that are said to perform Actions based on the Player's Commands.

Turns

A Turn is the base unit of time, and all Actions are scheduled around this concept. Specifically, the planned frequency at which a Player may take Actions is defined in terms of the duration of a Turn. The specific scheduling rules are domain specific, but there are several common scheduling methods that most games will implement. The names used here are only descriptive, and do not correspond to any more widely spread nomenclature

Action Resolution

Actions have a notion of occurring in an order at specific points in time. This means that it is conceptually possible to schedule multiple Actions to occur at the same point in time. There are basically two strategies for resolving Actions that have been scheduled to occur simultaneously

Command Provision

Players provide Commands to Battles in order to select an Action to take. Because Battles define their own notion of time, only Battles know when they require a Command from a Player, so communication to request a Command is always initiated by a Battle. The time between the provision of a Command and its interpretation and execution as an Action can vary arbitrarily, and systems may use a combination of timings, but common examples include

Building and installing

See the BUILDING document.

Contributing

See the CONTRIBUTING document.

Licensing