A downloadable game for Windows

Download NowName your own price

[Disclaimer: setup.exe installer, itch page, inane plot synopsis and features list were created on December 7th, 2025 for PROG56693 — Games Tools and Data-Driven Design. Files in windows-portable.zip were created on December 10th for PROG50102 — Game Engine Fundamentals.]

PROG56693 — Games Tools and Data-Driven Design

Tell a Story Behind Your Game

After years of training, protagonist finally found itself at the top of its class, working tirelessly to become the very best in its squad. Once it finally goes out on the field, protagonist is betrayed by its squad. Will protagonist survive the wrath of its former family?

Describe the Controls

InputAction
W, A, S, DBot Movement
Mouse MovementBot Aim
Left Mouse ButtonFire
RRestart
EscapeQuit Game

Features and Capabilities

Control a chaingun-equipped drone and endure wave after wave of enemies until none remain. Test your aiming and manoeuvring skills as enemies relentlessly chase you down through a labyrinthine arena using state-of-the-art Navmesh Pathfinding Technology (patent-pending)! Gaze in amazement as enemies shatter into pieces thanks to cutting edge Nvidia PhysX middleware! Lavish the arena with bullet holes rendered with the Unity® URP Decal Renderer Feature.

Minimum Requirements for the Game

  • Resolution: 1080p. 
  • OS: 64-bit Windows 10. 
  • Processor: Core i7-6700 or Ryzen 5 1600. 
  • Graphics card: Geforce GTX 1060 6GB or Radeon RX 580 8GB or Arc A380. 
  • Ram: 12GB. 
  • Storage: 70 GB SSD.

PROG50102 — Game Engine Fundamentals

Game Engine

Unity 6000.2.15f1

Shooting Input

Cursor to aim, Left Mouse Button to fire

Other Relevant Inputs

InputAction
W, A, S, DBot Movement
Mouse MovementBot Aim
Left Mouse ButtonFire
RRestart
EscapeQuit Game

Architecture

BotController Version(s)

All code was written from scratch, including bot and player movement, shooting and aiming.

Shooting, Collision and Health Refactor

All the systems I created for this project were created from the ground up with a proper structure in mind, so no refactor was necessary. Enemies contain an Enemy component (handles health, destruction), EnemyMovement component, and EnemyWeapon component. Players likewise contain a similar structure.

Line of Sight System

Enemies calculate the dot product of the vector representing the player's position relative to the enemy's position, resulting in a value from 0-1 (or <0 if facing away from the player) that represents how close the player is to the enemy's crosshair. An exposed variable allows for adjustment of what threshold is allowed, which permits enemies to shoot even when their aim isn't exactly on the player. Additionally, a raycast from the enemy to the player is made, and if anything is between them then the enemy does not fire until a clear line of sight is acquired. The raycast is also adjused to be perfectly horizontal, such that enemies do not shoot if the player is above or below them (which stops them from shooting off a platform, or firing into a wall, if the player is in front but above/below the enemy).

Cinemachine State-Driven Camera

I did not use Cinemachine, as I prefer to use my own custom-made tools for whatever purpose I need. The camera system I used tracks the player with a linear interpolation (lerp) function so the camera lags behind the player. When the player dies, the camera recenters and zooms out to focus the entire arena (partially for aesthetic purposes, as this makes enemies' "retreat after victory" mechanic more apparent). When the player wins, the gameplay camera is disabled and a victory camera is enabled, which uses perspective instead of isometric projection and snaps to whatever enemy was the final kill. Not related to the camera itself, but the victory screen also triggers a slow-motion effect which lasts until the game is reset.

Assets and Credits

  • Models by Jayde Iris Callejas (made in Blender).
  • Animations (procedural) by Jayde Iris Callejas (made in C#).
  • Animations (keyframe-based) N/A.
  • Textures by Jayde Iris Callejas (made in Aseprite).
  • Music by Kevin MacLeod (incompetech.com).

Known Issues

Enemy pathfinding can sometimes get stuck on walls (I believe this has been fixed, but I did not have enough time to test for edge cases after applying a fix). Spawn silos are missing collision for closed doors, so the player can enter despite doors only opening for enemies, and debris can roll in through the closed doors. Enemies might sometimes just barely have line of sight and begin to fire when nearly at the top of a ramp, instead of chasing the player until they are at equal elevations (easy fix, implementation pending at time of writing). Textures for models are missing (triaged). Bullet impact decals will render on everything, not just walls.

Updated 13 days ago
Published 14 days ago
StatusPrototype
PlatformsWindows
AuthorJaydedCompanion
GenreAction
Tags3D, No AI, Singleplayer, Unity

Download

Download NowName your own price

Click download now to get access to the following files:

windows-portable.zip 40 MB
setup.exe 26 MB
Version 7

Comments

Log in with itch.io to leave a comment.

(+1)

Cool game! I rage bait over these drones killing me but LOVE IT!!!
please add Linux support !!
works fine with wine and proton tho.

(+1)

Um actually ☝️🤓 Linux makes up <1% of the playerbase so it's not worth making a Linux build

(+1)

IT IS JUST TWO CLICKS TO MAKE ONE
OMG:((

(+1)

I've been staring at this Build Profiles screen for the past 10 minutes and I cannot, for the life of me, figure out why it won't let me make a Linux build 😭 in shambles rn

(+1)

lmao maybe its not two clicks sorry

(+1)

Linux Moment 😔