top of page

Tactics

About
  • Individual Project in Personal Engine

  • 11 Week Development Time

High Concept

Tactics is a networked multiplayer Final Fantasy Tactics clone.​

Notable Features
  • Charge Time (CT) System

  • Behavior/Utility-based AI

  • Command Buffer Networking

CT System

One of the core systems of the original Final Fantasy Tactics is a turn order based on Charge Time. Charge Time ticks up for every character in a battle at the same time. When a character reaches or exceeds 100 CT, they take their turn. If more than one character has over 100 CT at a given time, the character with the highest CT takes their turn first. A character's speed determines how much their CT increases per tick.

Abilities that do not activate instantly, such as spells, also have their own speed and CT that ticks up like a character's. In my implementation, when a character is using a delayed ability they use that ability's speed instead of their own. When their CT reaches 100, they use the ability and return to using their own speed. 

Behavor/Utility-based AI

AI controlled units utilize behaviors such as Attack, Move, and UseAbility to perform actions. When a unit's turn comes around they determine the best behavior to use by calculating the utility of each potential behavior.

When calculating potential damage for attacks and abilities, healing is considered negative damage. Characters don't want to damage allies or heal enemies so the potential damage for those actions are negated. Finally, charmed or confused characters negate the potential damage for actions as well. These negations let a single behavior, such as UseAbility, handle actions for enemies, allies, and status effects that change affiliations. 

Command Buffer Networking

The networking architecture for the multiplayer component of the game uses a lockstep technique. When a unit's turn comes around, its owning player is given control. Once they have submitted an action, it is sent to the server who disseminates the command to every other player. They then perform that action and the CT system continues.

One advantage of this technique is that the command queue can be saved out to a file and read in as a replay. Every command in the file is put into the queue. Each command in the queue is then executed in order until there are no remaining commands in the queue.

bottom of page