top of page

Command, Bombard, Reinforce...


That is your role as the field commander in No Man's Land. Command and lead your soldiers, bombard enemy positions, and reinforce your army using captured supplies. Be wary of the enemies' advance all the same, though. You can find the code repository here

The deliverables:


The game needed to deliver three main playing principles:


  • as the narrative progresses, the complexity and stakes of the game should increase

  • once the player has completed their turn, the computer AI should respond accordingly to give every action and decision an immediate consequence

  • clear winning conditions that when met, the game will end.

Every system needed to contribute toward these deliverables, and this project piqued my interest in the makeup of reactive systems and reactive programming. Every action and decision needed an immediate consequence



The images above are notes on the playing grid, resembling the theatre of war on the Western Front. 



The mechanics of the game were methodically planned using Miro.

I chose a turn-based strategy playing framework, mainly to test my programming skills, but also to create a
responsive and reactive playing environment.

With the game taking inspiration from the First World War, I wanted the experience to feel visceral and for the player to feel pressure. Speeding up the time to decide tactics and strategies also increased the frequency of interactions between the mechanics themselves.



MOVEMENT - Troops were defined by three things; faction, local position, and unit type. Local position is a 2D vector based on the playing grid, unique to each unit. Faction and unit types were enums assigned to different units, based on their type and team. Instead of having tailored scripts for each unit, I used polymorphism and inheritance to set up a base class that housed the linked list of the 'available moves' each unit type could perform. Later, I added all units to a list data structure to keep track of how many soldiers each team had. 

ATTACK - Using a similar technique for finding the local position of units, I indexed the playing grid using a ray cast from the mouse. A number of checks would take place:

  • Is there a unit on the chosen tile?​

  • If yes, kill the unit and remove them from the unit list

  • If not, nothing happens.

In line with military tactics from the time, the player could order an artillery bombardment using supplies.

REINFORCE - Using the indexing tool once more, I randomly arranged a set number of supplies to spawn (at run-time) in No Man's Land. The player could then use the movement mechanics to guide units to these areas, capturing them. Supplies are a form of expenditure in the game, where the player can choose to reinforce the army with fresh units instead of attacking the enemy. Supplies can be used for both to make the player employ strategic thinking.



I have included the block-out for the environment (featuring models) to show my conceptual thinking. If you want to only view game play, skip to 02:46

bottom of page