When you build a top-down shooter or roguelike in Unity, things get complicated very fast.
You start with:
- a player
- a weapon
- a few enemies
And then suddenly you need:
- different firing patterns
- enemy behaviors
- drops, chests, shops
- visual feedback for hits and interactions
After rebuilding the same systems multiple times, I decided to create a small modular engine to reuse across projects.
This article explains how the engine is structured and why this approach makes development easier.
What Is Top Down - Rogue-like Engine?
Top Down - Rogue-like Engine is a Unity framework for creating top-down shooters and roguelikes.
It’s built around:
- Scriptable Objects
- simple reusable components
- Inspector-based configuration
Unity Asset Store | Documentation | WebGL DEMO
Inspector-Driven Workflow
Most gameplay values are configured in the Inspector:
- weapon fire rate
- spread and multi-shot
- effect durations
- AI parameters
This allows fast iteration without constantly changing code.
Scriptable Objects Instead of Hard Logic
Weapons, actions, and AI behavior are defined using Scriptable Objects.
Instead of writing large scripts with conditions, you:
- create a data asset
- assign it to a character or object
- reuse it anywhere
This keeps code smaller and easier to maintain.
Characters Share the Same Base Setup
Both player and enemies use the same core components:
- movement
- health
- weapons
- actions
- Enemies simply add AI on top of that.
This avoids having separate systems for player and enemies.
Weapons and Shooting
The weapon system supports:
- single shot
- multi-shot
- spread
- burst fire
- bullet-hell style patterns
All patterns are configurable visually, without changing code.
Who Is This Engine For?
This framework is useful if you:
- build top-down shooters or roguelikes
- want cleaner project structure
- prefer Inspector-based workflows
- work solo or in a small team
Building a roguelike in Unity gets complicated very quickly.
Using a modular setup with simple, reusable systems helps keep the project clean and easier to work with. You spend less time fixing structure and more time experimenting with gameplay.
This engine is meant to be a solid starting point, not a finished solution.
Top comments (0)