War of Attrition

Overview

War of Attrition is a top down, turn based strategy game with a focus on dynamic units that will adapt to their environment while trying to reach the target you set for them and formations of units that will have allow the units to behave independently from the formation if impassable terrain is reached.

Gameplay Screenshot

Unit Movement

Units can be clicked on to be selected and after clicking a tile that is within the units range which is indicated by the tile being blue if valid and red if it is too far away. If you click on a unit and then click on other units they will be added to a formation and will all attempt to reach the target you set for them. The units will break away from the formation and have various behaviors that they can swap to in order to try get to the original target. Units that break off from the formation will default to trying to follow the leaders path and constantly check if they can move back to the formation and will steer towards their allocated formation point if it is not blocked by the environment or another unit.

Movement Screenshot

Custom Level Editor

War of Attrition has a built in level editor that will allow the user to draw in tiles as they please with the dynamic texture allocation setting each tile to its correct sprite automatically. When a tiles type is changed the tile checks its surrounding tiles and sets its own texture to reflect what's around it. Then we scan the immediate neighbours of this tile to update their sprites if needed. To minimise resources only the changed tile and its 8 immediate neighbours are checked as these are the only ones that will be affected by the tiles sprite change.

Level Editor Screenshot

Unit Info Overlay

What started as a simple debug feature quickly was changed into a feature that will allow the player to hover their mouse over a unit and see information about the unit as seen in the image. This makes it easier for the player to keep track of what the status of their unit is with plans to add more information such as current state to give insight into exactly what the unit is doing.

Unit Info Screenshot