First Person Shooter

July 28, 2025 ยท View on GitHub

This is a Unity FPS project demonstrating the use of the Morpeh ECS framework to build scalable and modular shooter systems using data-driven architecture.


๐Ÿ”ซ Shooting System

The project features a fully functional weapon shooting system, including:

  • Fire with ShootPerSecond control
  • Reloading with animation sync (ReloadEnd trigger)
  • Bullet instantiation with speed and lifetime
  • Hit detection via Raycast
  • Decal spawning on impact with custom lifetime
  • ECS Events for shooting and animation flow

๐ŸŽฌ Shooting Demo Video

https://github.com/user-attachments/assets/5c948552-38a8-40a7-a43e-138276308580

Shooting Demo With Gizmos

https://github.com/user-attachments/assets/28250565-afd4-4a46-8080-1e88b051e5d0


๐Ÿ” Weapon Switching

The player can switch between different weapons dynamically.
Each weapon is:

  • Defined via a WeaponsConfig asset
  • Automatically applied to the player's current state
  • Fully modular and extendable with new types

Weapon Switching Demo Video

https://github.com/user-attachments/assets/d490be13-36cf-448b-a1bb-bd2b05224023


๐Ÿง  Architecture Notes

This project uses Morpeh version 2024.1 โ€” fully updated and free from obsolete APIs.

Key architecture choices:

  • โœ… No deprecated methods โ€” systems are written using the clean and modern ISystem interface
  • โœ… Pure ECS structure โ€” filters, stashes, and events are used to isolate data and logic
  • โœ… No tight coupling โ€” Unity code is limited to essential bridges like MonoProvider proxies

โš™๏ธ Tech Stack