Incursion is a 2D tank-survival game. The player's goal is to destroy all the enemy tanks and turrets while not getting killed from their attacks.
The player can shoot bullets which can bounce on the walls, but the gun can overheat and jam, so bashing the fire button is not a smart choice!
( Incursion's gameplay video )
Enemy Tank & Turret
Corrective & Predictive Physics
Gun Overheat, Gameplay feedback
Incursion has two types of enemies: Tank and Turret.
Once the player is visible to an enemy tank, the enemy starts following the player, trying to shoot him down. If the player goes out of visibility of the enemy tank, it goes to the last position the player was seen where the enemy tank starts wandering around until it gets a sight of the player again.
If the player is within range of an enemy turret, and if there are no obstacles between them, the turret starts rotating towards the player. Once the player is within five degrees of its laser, the turret starts firing bullets! When the player goes out of sight, the turret disengages, starts rotating again looking for the player tank.
Incursion does Disc vs. Box, Disc vs. Disc collisions for all the game entities. Each map tile uses an AABB (axis aligned bounding box) as its collider. Tanks, turrets, and bullets use a disc as its collider. For collision checks, I'm using two different approaches:
Bullet vs. Tile works on predictive collision, which enables the bullets to have nice bounciness. All the other collisions are based on corrective physics.
With each assignment, we get some flexibility for implementing juice features. One such juice is gun overheating. If the player keeps shooting bullets, the gun gets overheated after some time which leads to reduced accuracy and rate of fire.
When a player gets hit by an enemy bullet, the screen shakes little bit giving a good feedback.
Screen Fade and Slow-Mo
When the player gets killed by enemies, the screen fades in and shows the defeat message while also entering into slow motion mode. Which makes the defeat a bit more dramatic.
The game uses fmod library for audio playbacks. Different audio cues get played on these events in the gameplay:
Selection using the start button
Hit by an enemy bullet
Destroying an enemy
Pause and Resume