View on GitHub


A prototype for a first-person turn-based tactics game


A prototype for a first-person turn-based tactics game.

Turn-based tactics games such as XCOM, Silent Storm, Jagged Alliance, etc. are based around the idea of the player commanding a small group (e.g. a fireteam) in a small-scale combat scenario. Usually, these are done from a third-person perspective, i.e. the player is commanding the unit remotely. The purpose of this is to see if this can be done from a first-person perspective, i.e. from the point-of-view of the units on the field.

You can find the WebGL prototype here

The full controls will be displayed in the main menu. For the sake of convenience, they are posted here.

Known issues

The list of known issues is visible here

Required systems/components

These are initial thoughts and may not be up-to-date. Not all systems will be covered here.


The unit itself. Has the following attributes:

Has the following components:

Implements the IDamage interface, which mandates the following functionality:

Player-controlled units will have the following additional components:

Unit manager

Allows user (player or bot) to change units. Requires the following functionality:


Chooses a target. Has two implementations: UnitTargetSelection and AdvancedTargetSelection.


Base class. Hard-coded to returns the closest target.


Subclass of UnitTargetSelection. Allows for more intelligent target selection by using one of the following algorithms:


Handles UI interactions (hiding/displaying panels, disable or enabling buttons)


Main controller for the game logic. Handles the following functionality:

Detection system

Line of sight and hearing. Line of sight is based on raycasting inside a collider. Sound detection based on distance inside a collider, not implemented yet. Also contains methods to check if the specified target can be seen from a specified location.

Weapon system

Manages the low-level weapon physics, animations, etc. Aiming is free-form for player units; computer-controlled units will select from a list of visible units. Units may suppress targets by dumping ammo into the targets’ surroundings.

Sound manager

Manages music.


Current levels

  1. Main menu. This has some basic scenery, with the menus and other panels visible as “grafitti” in the scene.
  2. Main level. This is an industrial complex with a bridge down the far end. The extraction point is on the other side of the bridge; the player starts at the entrance to the yard.

Possible future levels

  1. Motorway bridge through a city. Lots of potential sniper roosts.
  2. Sky docks. The Autarca has docked and is waiting for the player. Could be used to add more NPC units that are allied with the player.

Third-party components used

These are not committed to the repo.


Models & Animations



Cursor from WikiMedia Commons (CC BY-SA 2.5) Numerous textures from Skybox textures from AllSky