City Invasion Simulator

Platform: PC
Tools Used: Unity, Visual Studio 2019, Behaviour Machine plugin
Role: AI Developer and Gameplay Scripter


City Invasion Simulator is a small project I created for a College assignment. This assignment was assigned directly after the Battleship Fight Simulator, so I decided that it would be a good time to improve upon what I had learned. For this assignment, I wanted to make more complex AI agents that interacted in more diverse ways, with both the player and other AI agents

In this simulator, players take control of a giant spaceship that flies above a city. This ship will automatically fire at certain agents, gaining the player points. The interactable AI agents are:

Citizen: Citizens are agents that run around the city in panic. They randomly make their way to a selected point on the map and repeat this behaviour. They are a simple agent, and when killed they generate points for the player.

Soldier: Soldiers are agents that act differently depending on the circumstance. If there is an unoccupied anti-air cannon on the map, a soldier will immediately try to make it’s way to the cannon. If not, soldiers behave similarly to citizens, however they will shoot any allied soldiers they come across.

Allied Soldiers: Allied soldiers are spawned when the player left clicks, via a drop pod. Allied soldiers behave identically to normal soldiers, however they are friendly to the player and do not interact with the anti-air cannons. They will shoot any soldiers that come into range and will repair the player if the player is nearby and damaged.

Anti-Air Cannon: Anti-air cannons remain deactivated unless occupied by a soldier. Once occupied, the soldier gets buffed HP and the cannon begins firing upon the player. Every so often, a safe zone will spawn around an active cannon, where citizens and soldiers will retreat to and group together. Soldiers gain the ability to fire upon the player when occupying a safe zone

Design Challenge

Going into this assignment, I wanted to further improve on the AI development of the previous battleship project. I wanted to make more complex AI, however the main thing I wanted to accomplish was to create multiple dynamic agents that acted upon conditional game states.

For example, with the soldiers, I wanted them to feel like real soldiers defending a city from an invasion, manning anti-air cannons to focus fire on the mother-ship while setting up safe areas to hold out, killing off invaders any chance they got.

I believe that I accomplished my intended goal with this project. The AI acts as I intended it to, and with further revision, this early prototype could be used as a possible template for a game.

Simulation Preview