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
ShootPerSecondcontrol - Reloading with animation sync (
ReloadEndtrigger) - 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
WeaponsConfigasset - 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
ISysteminterface - โ 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
MonoProviderproxies
โ๏ธ Tech Stack
- Unity 2022.3.52
- Morpeh ECS 2024.1
- Morpeh Events
- VContainer
- Unity Input System
- ScriptableObjects for configuration