In this project, I worked as a single programmer with two artists that helped me with some Maya moddeling optimizations and Substance Painter PBR Materials.
With this project, I won 1st place in the VFS + TEC 2016 contest, winning a 100% Scholarship for the Programming Games, Mobile and Web program in Vancouver, Canada.
Suzana Zavala made an amazing job in Moddeling
Abril Sánchez made the best Textures and Materials
Special Thanks to both of them.
In this game, I created a basic AI that pursuied you in sight and started shooting. If sight was lost, it searched for you looking in 3 different directions and if it didn't spot you, it resumed its original patrol.
I programmed an interaction system that consisted in 3 things:
- An interactable Object Shader (Rim/Fresnel), that turned on if the tank got near enough, and a worldspace canvas that appeared when you got at interactable distance, telling you which key to press.
- A one time interaction system that turned off the previously mentioned shader and canvas and opened a time based interaction progress bar. This action is interruptable if hit by an enemy or by movement.
- A hack timer that activated the global alarm and started waves of enemies you had to confront, before actually being able to get out through the level exit.
Other ways of getting through, were more difficult, but also more direct.
If you kill an enemy, the global alarm turns on and every enemy in the map can see you and starts to chase and shoot you.
While the alarm is on, hacking is imposible so the only way of getting out of the level is destroying the exit, which can also be very hard.
As a character, you can activate 3 abilities with the independently rotating turret that looks at the mouse cursor.
You can Shoot a high velocity laser, which can be both helpful and hurting.
Also, you can create a turret facing shield that can withstand up to 10 hits. It's durability can be measured by a selective mask controlled through script.
The third ability is perhaps the most interesting one, because it was both efficient and dangerous.
If left click is pressed for 2 secconds, the tank starts charging a close distance, cone AOE EMP burst, that deactivates the enemies but doesn't fire the alarm.
The down side is that when charged, the tank can't move and the turret rotates very slowly, so it has to be timed quite well.
The bullets produce particles and decals when hit on static objects and just particles when hit on dynamic objects. Also, the bullets, decals, enemy bullets and enemy drones are Object Pooled for better performance.
The enemies change the emissive color in their shader depending on their current status. Blue in patrol mode, yellow in pusuit mode, red in alarm mode and black in destroy or deactivated mode.