SHONEN SHOWDOWN

A multiplayer first-person Trading Card Game prototype — players physically hold cards, declare attacks, and watch monsters spawn as 3D holograms on the board. Built in Unity 6 with Photon Fusion 2 networking.

At a glance

My Role

Lead developer responsible for battle rules, turn flow, networking, and card-data architecture

Team

Three-person student team with separate ownership of scenes and systems

Stack

Unity 6, C#, Photon Fusion 2, ScriptableObjects, and shared-mode networking

Technical Challenge

Keep turn phases, card effects, summons, attacks, and player-visible state synchronized across the network

How It Works And What I Owned

Shonen Showdown presents a networked card battle from first person. Players hold cards, declare attacks, and see summoned monsters appear as 3D holograms on the board. Social lobbies also support proximity voice chat.

3-person team with strict scene sovereignty and Git discipline. I own the core battle logic: turn management, the chain stack, summoning rules, damage calculation, Photon Fusion 2 networking, and the ScriptableObject data architecture the whole team builds on.

Unity 6 (URP)Photon Fusion 2C#ScriptableObjectsShared Mode Networking

Rules Engine & Turn System

  • 6-Phase Turn Structure:TurnManager enforces Draw → Standby → Main Phase 1 → Battle → Main Phase 2 → End Phase, with state-machine transitions and UI feedback at each step.
  • Summoning Rules:Level 1–4: Normal Summon (free). Level 5–6: Tribute 1 monster. Level 7+: Tribute 2. Successful summons trigger 3D model instantiation — the card stays flat, the avatar stands above it.
  • The Stack (Chain System):LIFO priority resolution — Attack → Trap → Quick-Spell resolves in reverse order. Max 3 conditional effects per card enforced at the data layer.

Data Architecture

I designed the CardData ScriptableObject schema — ID, name, frame type, rarity, attribute, level, ATK/DEF, keyword references, and full effect text. The battle engine queries the SO directly; the team populates new cards by following the template.

Keywords like Piercing and SpecialSummon live as separate assets, so balance changes propagate instantly across every card that references them — no merge conflicts, no script edits required.

Game Modes

Standard Duel1v1

Classic TCG rules. 8,000 LP. Players sit across the table.

Tag Team2v2

16,000 shared LP. Alternating turns. Voice chat open to all.

Raid Boss2v1

Asymmetrical. 1 Boss player (double LP + bonus cards) vs. 2 challengers.

Battle RoyaleFFA

4-player free-for-all. Last player with LP wins.

Team & Responsibilities

Georgi

Lead Developer

  • GameScene.unity — core battle logic
  • MainMenu.unity — lobby & UI (current)
  • Photon Fusion 2 networking
  • Turn/Phase state machine
  • CardData SO schema & keyword architecture
  • VR interaction handling

Ricardo

Art Lead (in production)

  • Custom 3D monster models & animations
  • Environment design (Share House)
  • Card illustration import
  • UI/UX polish & menus

Sam

Data & Audio

  • CardData entry
  • Keyword asset population
  • Game balance & stats
  • SFX/BGM selection & QA

Tech Stack

  • — Unity 6 (URP) — primary engine
  • — Photon Fusion 2 (Shared Mode) — real-time networking
  • — Photon Voice — proximity voice chat
  • — C# — all gameplay and networking scripts
  • — ScriptableObjects — card data, keyword assets, game settings
  • — TextMesh Pro — UI text rendering
  • — GitHub (private) — version control with scene sovereignty

Systems Built

  • — Full 6-phase turn state machine
  • — LIFO chain/stack resolution system
  • — Level-based tribute summoning rules
  • — ATK/DEF damage calculation with LP tracking
  • — Drag-to-target attack declaration UI
  • — Cinematic "Showdown Phase" for boss monster clashes
  • — ScriptableObject card registry with keyword references

Live Card Database

The card roster is managed in a shared Google Sheet maintained by the team's Data Lead. Each row maps a card's Card ID to its Unity Prefab Name, Frame type, Rarity, Attribute, Level, ATK/DEF, Keywords, and full Effect text. A custom Anime Race column sits alongside Standard Race — so a card can be both a Spellcaster (game rule) and an Arrancar (lore). Card art thumbnails are embedded directly in the sheet for fast visual review.

View Card Database →