Strategy RTS-RTT game for Ubisoft's Gamecelerator 4.0.
✔ Units Management
✔ States + AI
✔ Simple Shop + Level Unlocks
✔ Animation events
Our team went with a complex States system to allow the player to transition his input as clean and simple as possible. A base abstract class was created and derived to set up the connections between states, creating a code based sub state machine (including: idle, move, aggro and attack state). The enemy version of the states machine included a patrol state and some basic AI to transition based on the player choices.
One of the biggest problems we faced was using a navigation system that allows us to change the terrain dynamically, so we decided to implement a simple A* pathfidning system using cubes for the grid and searching the fastest path among them. This way, we could dynamically adjust our terrain depending on the action of our game.
At the start of the level the player will see an overview of the enemies he will have to fight with, also he can read a brief description of their strenghts and weaknesses. The camera will look directly at the target while flying towards it with the help coded coroutines.
At the start of the level the player will have to choose which units he will take in this particular fight. The has a limited number of troops he can use. If he uses less than the expected number, he will be granted a bonus depending on how low the chosen number is and how difficult the level is.
Shop and resources
Whenever the player kills an enemy he can resources, which can be spent in a shop to gain some benefits on the battlefield. This prevents the players from getting stuck between levels. Player will receive a bonus open finish a level as well.
Commands & Selection
The player can control the entire game with the mouse: left click to select and right click to target/ path. However he is also provided with keyboard shortcuts for Camera control and troop management. Furthermore, on enemy hover he gets an outline around the enemy he is currently hovering for a better target selectioning