Back to projects

A Way Out

University project · Survival shooter

A Way Out organises its survival loop around a C++ game mode, a spawn manager, and configurable zombie variants. The game mode tracks the active wave and remaining enemies. The spawn manager selects walkers, runners, and brutes using weighted probabilities, then checks candidate positions against navigation, ground and collision constraints before spawning them.

Enemy behaviour moves from patrol to pursuit when sight or proximity detects the player, with animation notifications coordinating attacks. The player's rifle uses camera directed traces for damage, and tracks magazine and reserve ammunition separately. Stamina, pickups, and inventory systems connect to Blueprint configuration and UMG widgets, which present resources, menus, and the outcome of the ten wave encounter.

Technical highlights

  • Enemy variants are selected with weighted spawning and checked against navigation and collision.
  • Zombies detect the player through sight and proximity, then pursue and attack.
  • Hitscan combat, reloading, pickups, and a HUD support the ten wave survival loop.

Technical details

Waves and enemy behaviour

The game mode tracks each wave and advances when all enemies are defeated. The spawn manager chooses weighted zombie variants and validates locations against navigation, ground, and collision checks. Zombies patrol until sight or proximity alerts them, then navigate towards the player and attack using animation notifications.

Combat and resources

The rifle fires camera directed traces, applies damage, and manages magazine and reserve ammunition. Movement actions consume stamina, while pickups restore resources. Blueprint configuration and UMG widgets connect the C++ systems to the inventory, status displays, menus, and victory or defeat screens.

Project context

Built in Unreal Engine 5.2 using C++ and Blueprints. The repository contains both the main menu and the playable survival environment.