Space Empires
A Space Simulation
About The Project

Space Empires is a space-based simulation created during an Interactive Agent & Procedural Content Generation module at Queen Mary University of London. The game's universe is generated using the Cellular Automata Algorithm. The simulation includes three distinct types of starships: Protoss, Zerg, and Terran. The behaviors of these starships are controlled by Steering Behaviors, utilizing provided libraries such as MovementAI and NPBehave.
Tool used: Unity Engine & C#
Youtube Link: https://www.youtube.com/watch?v=5j1_-wD53YI
Level Design

I have utilized the Cellular Automata algorithm to design the levels in the simulation, providing users with a unique environment each time they start the game. The level dynamically adjusts by adding or removing white tiles when the user left or right-clicks the mouse, respectively. Additionally, users can change the environment by pressing the space key.
Agents & Objects

The simulation contains three agents and two objects having their own unique behaviours. I have defined the agent's behaviour using MovementAI and NPBehave libraries and behaviour of the objects. They are explained as follows:
1. Protoss Starship (Red):
The Protoss starship performs various actions within the game, including seeking out Zerg starships, evading Terran starships, teleporting from its current position, and wandering throughout the map.
When the Protoss starship detects Zerg starships within a certain range, it actively seeks them out and destroys them to protect the stars. Similarly, when a Terran starship enters its proximity, the Protoss starship evades it. If the Terran starship gets too close, the Protoss starship utilizes teleportation to relocate to a different position.
In the absence of other nearby starships, the Protoss starship continues to wander aimlessly through space.
2. Zerg Starship (Blue):
The Zerg starship is programmed to execute specific actions within the game, including seeking out the star object when it spawns in the map, destroying the star object when within a certain range, and wandering through space when far away from the star object or Protoss starship.
Initially, the Zerg starship identifies the nearest star and actively seeks it out. Upon reaching a certain range from the star object, it engages in its destruction. If the Zerg starship is not within the required range, it continues to wander freely in space.
3. Terran Starship (Pink):
The Terran starship is programmed to perform specific actions within the game, including wandering through space and seeking out the Protoss starship.
The Terran starship initially wanders aimlessly in space. However, when it detects the presence of the Protoss starship within a certain range, it changes its behavior and actively seeks out the Protoss starship. This action is taken to prevent the Protoss starship from destroying the Zerg starship, ensuring the safety of the Zerg starship.
4. Stars:
Stars are celestial objects that periodically spawn in space. Upon their appearance, the Zerg starship initiates its search and seeks out these stars with the intention of destroying them.
5. Planets:
Planets periodically spawn in space, acting as destructive waves that can destroy both the Zerg starships and stars. However, they also serve another purpose. If the Protoss starship is within a certain range when a planet spawns, it triggers a change in the map, introducing alterations or modifications to the game environment.