All projects
Software Systems & Full-Stack

Rakkhosh Must Die — Tower Defense Game

Completed

A from-scratch 3D tower-defense game in OpenGL/GLUT: seven escalating waves, weapons, traps, auto-turrets, timed power-ups and a boss fight, with hand-built physics, animation and HUD.

Rakkhosh Must Die 3D OpenGL tower defense game scene

Overview

A complete 3D tower-defense game written from scratch in OpenGL/GLUT — no game engine. You defend a central core from seven escalating waves of enemies using a mix of weapons, placeable traps, auto-targeting turrets and collectible power-ups, building up to a final boss fight.

Gameplay

Three weapons (a fast pistol, a piercing crossbow and a spread-fire shotgun) pair with slow/damage traps and turrets that upgrade as the waves progress. Three timed power-ups — a speed boost, a super-jump and a 'roundhouse' auto-fire spin — spawn on the map to collect and trigger. Four enemy types, from fast fodder to a 20-HP boss, each pathfind toward the core but switch to attacking the player when you get close, and speed up wave by wave.

How it's built

Every object — player, enemies, turrets, arena and HUD — is assembled from raw OpenGL primitives (spheres, cylinders, cubes, quads). Under the hood are custom systems for bullet physics and collision, sine-driven walk/idle/float animations, a timer-based wave spawner with difficulty scaling, switchable first-/third-/global-person cameras, and a 2D orthographic HUD drawn over the 3D scene — all driven by hand-written trigonometry and vector maths for movement, aiming and hit detection.

Scope

Seven waves, four enemy types plus a boss, three weapons, three power-ups, and full trap/turret/HUD systems — a complete game loop with proper win and lose conditions.

By the numbers

7 wavesEscalating difficulty
4+1Enemy types + boss
0Game engines — built from scratch

Tech stack & key skills

Core tools, methods and skills demonstrated in this project:

PythonPyOpenGL / GLUT3D graphics from scratchGame physicsCollision detectionReal-time animationState machines