View on GitHub

Fiptubat

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

Fiptubat

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.

BaseUnit

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:

TargetSelection

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

UnitTargetSelection

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

AdvancedTargetSelection

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

UIManager

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

GameStateManager

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.

Miscellaneous

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.

Code

Models & Animations

Sounds

Images

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

Fonts