Arena Game
- Role
- Game Designer and Project Manager
- Owned
- The core loop, the design of the Tower Placement and Card Select Systems, and almost all towers, bullets and buffs
Unreal Engine
A precision platformer crossed with a bullet hell, where every card you take grants a buff and adds a bullet-firing tower to the arena: you build the difficulty you then have to survive.
The hook
Most roguelite card draws are a pure gain with a rarity roll attached. Here every card is a trade: the buff is yours, the tower shoots at you. The interesting decision is where you're willing to put the thing it costs you. The design is an action layer and a strategy layer that can't be separated, because the strategy layer is what makes the action layer harder.
What was mine, and what wasn't
I designed the core loop, the Tower Placement System and the Card Select System, and wrote the specs they were built from. Bora Özenbirkan implemented those systems, along with the scripts and most of the Blueprints. The card content is mine, and I designed almost all of the towers, bullets and buffs. Meltem Yurttaş supported playtesting and balancing.
Three people on paper, two in practice. I set the timeline, kept the task board, and ran the playtest cycles.
This ran for a year alongside a full-time job, the same year I was at Neo Auvra. No course, no deadline, no paycheck.
Balancing
Card rarity weights were the balancing problem, since rarity is what decides how often a player is offered a trade they'd rather not make. I kept the weight calculations before and after playtesting so the change is legible as a document rather than a claim. The spreadsheets are on this page.
An open problem I haven't solved
There's no time limit on a level. That lets a player build a safe pocket the towers can't reach and stay in it.
The obvious fix is a level timer. I think a timer is a cop-out. The problem I'm actually trying to solve is players standing still and killing the pace of the game, and a timer doesn't solve that; it just makes standing still lose. There's a better answer and I haven't designed it yet.
I'd rather show this open than close it with a fix I don't believe in.