top of page


View it on GitHub.png

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 )

Feature List

Enemy Tank & Turret

Corrective & Predictive Physics

Gun Overheat, Gameplay feedback

Enemy Behavior

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.

Entity Collision

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:

  1. Corrective Collision

  2. Predictive Collision

Bullet vs. Tile works on predictive collision, which enables the bullets to have nice bounciness. All the other collisions are based on corrective physics.


Gun Overheat

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.


Screen Shake

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.


Audio Feedback

The game uses fmod library for audio playbacks. Different audio cues get played on these events in the gameplay:

  • Attract Screen

  • Selection using the start button

  • Bullet fire

  • Hit by an enemy bullet

  • Destroying an enemy

  • Pause and Resume

  • On defeat

Enemy Behavior
Entity Collision
bottom of page