Social deduction, survival game based on medieval murder mystery game using Unity
Gameplay Programmer
Unity3D, C#, Photon PUN2, Odin Inspector, NFT Integration
NFT social dedection
Mystery Mansion was an NFT-based social deduction game — an Among Us-style multiplayer experience set in a Victorian murder mystery world. Players were assigned roles (investigators or killers), completed tasks around the mansion to gather clues, and voted to eliminate suspects between rounds. Characters in the game were NFT-backed, giving holders unique playable avatars with on-chain ownership.
I joined as a Gameplay Programmer working across three areas: integrating the NFT character customisation system, building in-game puzzles that players complete during rounds, and fixing bugs across the networked multiplayer codebase. The game used Photon PUN2 for real-time networking and Odin Inspector for editor tooling.
Note: the game has since undergone significant visual and design changes since the Victorian-themed version I worked on. Screenshots from that era are no longer available publicly.
Integrated the NFT character system — connecting wallet-held NFT metadata to in-game character appearance. When a player linked their wallet, the game read their NFT attributes (traits, visual properties) and applied them to their in-game avatar, giving each NFT holder a unique, verifiably-owned character in the Victorian mansion world.
Built puzzle mechanics that players complete during rounds as part of the investigator task flow — the same task structure that social deduction games use to keep non-killer players engaged and create observable behaviour for other players to read. Designed to be completable in short windows between social interactions, with clear visual feedback on progress.
Fixed bugs across the live multiplayer codebase — working in a Photon PUN2 networked environment where most issues involve race conditions, authority mismatches, or state desync between clients. Reproducing and isolating bugs in a multiplayer context requires understanding the network layer well enough to reason about what each client sees at any given moment.