The Last Line
Unreal Engine Mobile Shooter Solo Development
A mobile zombie survival shooter running 150-zombie hordes and Souls-like arena bosses on a phone, built solo in Unreal Engine 5.
The Last Line
iOS
- In App Store review
- Same content as Android
- Launching soon
Coming soon
Overview
The Last Line is my most ambitious solo project: a zombie survival shooter for mobile that puts console-style set pieces on a phone. You hold a barricade against waves of more than a hundred zombies at once, and every so often a Souls-like boss walks into the arena and the fight changes shape. It is free to play, live on Google Play, and built in Unreal Engine 5.
Development
I built The Last Line alone in about five months: the gameplay, the systems, the UI, the store setup, and the tools around it, including the Soulslike Enemy Combat framework it runs its bosses on. Almost every hard decision came down to the same trade: spend the frame budget on what the player sees and cut or fake the rest, so the game reads far bigger than the hardware it runs on.
Key Techniques and Learnings
- 150-zombie horde on a phone: actor tick is disabled on every zombie and one batch component drives the whole crowd with distance-based update tiers, animation LOD, designer splines instead of navmesh, and object pooling. The system holds a full wave without dropping the frame.
- Souls-like boss AI: bosses run on my Soulslike Enemy Combat plugin, a StateTree strategy layer over Gameplay Ability and Behavior Tree execution, with frame-rate-independent swept melee traces so fast attacks never tunnel through the player.
- Widget-free combat HUD: floating damage numbers and hit markers use a fixed pool of structs painted straight onto the HUD canvas, with no UMG and no per-hit allocation, so a busy wave costs the same as a quiet one.
- Runs from flagship to budget devices: a per-device quality tiering system reads the real hardware profile (falling back to physical RAM) and applies the right preset before the first frame, hardening the deferred mobile renderer against shader-compile crashes on low-end GPUs.
- Live-ops and resilience: a self-healing save layer repairs corrupt data at load time, backed by a Firebase backend for weekly leaderboards, analytics, and diagnostics.
For the full development story and the engineering behind these systems, read the article: The Last Line: Building a Zombie Shooter for Phones, Solo.
In-Game Visuals






