Soul Snatched: Ginger Edition

2D top-down village defense ARPG

A morality-driven wave defense game built in Unity, backed by a custom Node.js/React tooling pipeline for items, vendors, and progression.

Project Overview

Soul Snatched: Ginger Edition is a solo-developed 2D top-down ARPG where the player defends villages from nightly zombie invasions. The core focus is on systemic design: a tight day/night loop, a morality-driven soul siphoning system, and wave-based combat that responds to player choices.

Over time the project has grown into a full ecosystem: the Unity client, a Node.js/Express backend, and a React dashboard used to author, balance, and export the entire item and vendor economy as JSON. This lets me iterate on design quickly while keeping the game data-driven and consistent.

Gameplay Media

Work-in-progress visuals - focus is on systems and feel rather than final art.

Vendor and shop UI interaction in Soul Snatched

Vendor & shop UI: opening the blacksmith, hovering items, and preparing gear before nightfall.

Equipment and stat panel interaction in Soul Snatched

Equipment & stats: swapping gear and seeing character stats update in real time, including paperdoll visuals that track hair stage and gender.

What the Footage Demonstrates

  • Vendor & shop UI driven by reputation and in-game currency.
  • Equipment window updating stats dynamically as gear changes.
  • Inventory and tooltips reacting to item selection and focus.
  • UX focus on quick readability and clear feedback for player decisions.

Combat Showcase

A short demonstration of Soul Snatched's core combat loop. Includes: night spawn warning, enemy waves, hit feedback, and player death sequence.

Core Systems & Architecture

How the game is structured under the hood.

Day/Night and Wave Manager


Morality, Souls, and Reputation


Equipment, Stats, and Combat


External Tools & Data Pipeline


UI & UX Implementation

Professional Development Practices

How I treat this project like a production game, not just a prototype.

Code Quality & Architecture

  • Consistent naming conventions and strict encapsulation of gameplay state.
  • Separation of data (ScriptableObjects/JSON) from behavior (controllers and managers).
  • Use of events and interfaces to decouple UI from gameplay systems.
  • Refactoring passes to remove unused methods and keep responsibilities clear.

Tools & Workflow

  • Git-based version control with feature branches and descriptive commits.
  • In-editor debug views for wave states, reputation, and AI decisions.
  • Use of Unity Profiler to track spikes from spawning, pathfinding, and UI updates.
  • External Node.js/React tooling feeding JSON into Unity, so designers (future me or collaborators) can work without touching engine internals.

Tech Stack

  • Unity (C#)
  • 2D URP
  • ScriptableObjects & JSON-driven content
  • Node.js & Express
  • React (item/vendor dashboard)
  • REST APIs & tooling
  • Git / GitHub

My Role

I am the sole developer on Soul Snatched. I handle programming, system design, backend tools, and implementation, while leveraging free and placeholder art so I can prioritize gameplay, feel, and scalability.

Credits & Asset Attribution

Acknowledging artists and creators whose assets supported prototype development.

Character Art

  • Male & Female Protagonists – Custom art created by Sammy (friend / collaborator).

Enemy, NPC, and Environment Art

UI & Icons

Sound & SFX

  • CABAL Voice Lines – Inspired by Command & Conquer: Tiberian Sun.

Soul Snatched: Ginger Edition uses third-party and placeholder assets strictly for prototype and portfolio demonstration purposes. All assets remain the property of their respective creators.

Current Status & Roadmap