Games / Academic project · Physics in Computer Games

Unity Physics FPS

Wave-based survival shooter, built in Unity 6.

Unity Physics FPS — project preview
Unity 6C#URPInput SystemTextMesh ProAnimator

The challenge

Turn the topics from the Physics in Computer Games course into a playable first-person game: movement, shooting and enemies that react in real time, wrapped in a complete game loop with menus, lives and a clear win/lose state.

My contribution

Built a first-person survival shooter in Unity 6 with C#. The player moves through a low-poly nature map and fights waves of animal enemies with switchable weapons. The core of the work is the shooting system, created directly in Unity with its built-in tools: the recoil and firing motion are animated with Unity's Animation and Animator, gunshot sounds play through Audio Source components, and bullets are handled by Unity's physics. All of it is triggered from the same shot so it stays in sync. On top of that I built the scene flow, enemy waves, health and lives, and a HUD that tracks ammo, time and the current wave.

How it works

Every shot runs through one sequence. The fire input spawns the bullet from the gun, plays the gunshot sound, triggers the firing animation and applies a recoil kick that then settles back, all in the same frame so the visual, physical and audio feedback match. Each shot also updates the ammo counter on the HUD. Enemies spawn in waves and move toward the player. When health runs out, the player loses a life and respawns after a short countdown, and losing every life loads the failure screen with restart, main menu and exit.

PROJECT FLOW / Gameplay flow

A shot, its feedback and the survival loop

  1. Receive fire input

    The player triggers the weapon through the input system.

  2. Spawn and synchronize

    Create a bullet, play sound and animation, apply recoil.

  3. Update gameplay state

    Track ammo, enemy waves, health and lives on the HUD.

  4. Continue or restart

    Remaining lives allow respawn; no lives opens the failure screen.

The outcome branches by remaining lives. This academic prototype uses free environment and enemy assets.

Gameplay & HUD

The HUD shows a health bar with hearts for the remaining lives, an ammo counter, a run timer and the wave number. Weapon icons show which guns are available, and a central crosshair is used for aiming.

What it covers

Outcome

A complete, playable game loop where shooting feels responsive: bullet, recoil, sound and animation land together on every shot. It shows the course concepts (forces, motion and real-time interaction) working inside an actual game.

Project scope

This is an academic project built for a single course. The environment and enemy models come from free asset packs (Simple Nature Pack and a low-poly animal pack), and the menu artwork is placeholder art rather than original work. The focus was on gameplay systems and physics-driven interaction, not on original 3D art or a release-ready build.