
Necromancer was an ARPG style game , featuring a rouge-like gameplay loop where you collect allies and equipment to defeat endless waves of progressively more difficult enemies.
My Role in development:
In a team of three, my role was engineering lead, responsible for everything that touched the Unity engine. As the sole team member working full-time on the project, I managed source control, architected and implemented nearly all major systems, and published test builds through Steam. This included UI, VFX, and additional animations.
I was joined by a designer/concept artist and a producer/junior programmer. A majority of the 3d assets came from the Unity Asset Store.
What is Necromancer?
- An ARPG rouge-like with a fixed 3rd person camera.
- Lets the player summon an undead army to steamroll enemies.
- Features deck building elements with layered synergies, allowing for unique builds each run.
- Session length 30-60 minutes.
- Built in Unity
- Mouse/Keyboard and Gamepad support
Prototype features:
- 8 enemies
- 4 bosses
- 15 ally types, each with 3 growth variants
- 8 levels to explore and procedural points of interest
- 5 ally tags, granting bonuses when allies share tags
- 32 relics, granting permanent bonuses each run
- All core gameplay data is table-driven and tunable data with recompile
The Basic Gameplay loop:
Gaining power and fighting enemies
Fighting bosses
Accessing the shop
Systems explained:
Relics

Shown at the top of the screen, player relics exist on the player until death, and give positive benefits to the player and their allies. In the above screenshot, each “Frenzy Charm” grants 20% bonus attack damage to allies.
Ally Stats

Allies are made up of 5 parts:
- A type (Slime, Wraith, etc)
- A Rarity, as shown in the ring around them (Grey, Blue, Purple for Common, Uncommon, Rare)
- Level, shown as 1, 2, or 3 stars above the portrait
- Battle behavior, shown in a bronze badge below the portrait
- Tags, shown as tags below the portrait
Type – an ally type dictates it’s graphics, attack, and base attack/defense stats. Each type may have unique special abilities/attacks.
Rarity – More rare allies show up later in a run, and tend to be better or more unique.
Level – Attack/defense stats increase with each level. Leveling up also changes the model of the ally to a more powerful looking form.
Battle Behavior – This dictates the AI the allies use, such as movement and which enemies they target first.
Tags – Grant buffs for each unique type of ally with a given tag is in the party.
More on tags

In this screen, we see that the section labeled “Spirit”, which describes the possible benefits the Spirit tag could provide to the player. Because the player has both a Gaunt Lord and a Wraith, the player has 2 Spirit allies, and gains the first benefit listed because it required 2 or more spirit allies.

Because of the importance of these benefits, a summary of benefits from tags is shown as lit up stars. Here we see the player would ne 2 additional ally with the Wealth tag (the coin) to get the next benefit of that tag.
Additional mechanics:
Enemies grow stronger and spawn more quickly the longer you play, so balancing getting gear with fighting quickly is important to progress.
The player only has a fixed number of ally slots, which is 7. This forces them to make choices to merge allies to level them up, rather than overwhelm enemies by shear numbers.
Currency is critical to success in this game, and buying/selling the right allies really makes or breaks a run.
The player can start a run with a different weapon, which dictates the attack skills the player has, as well as the summoning mechanics.
Conclusions:
Ultimately this project was abandoned due to some fundamental gameplay concept conflicts that where not able to be reconciled confidently.
Overall the team was happy with what we where able to produce, though we wished we had more time to spend on adding additional features. Things like more enemy verity, more engaging boss fights, meta progression, and a ton of QoL improvements never made it in.
The game itself was fun, and ran really nicely on the Steam Deck. We’ll be using knowledge gained on future projects.
Leave a comment