Uncertainty with agency.
Randomness is fundamental to deck-building games. But completely uncontrolled randomness can reduce meaningful player decision-making.
Mr. Question Mark has an independent starting deck, card pool, and relic systems. The character transforms uncertainty into a strategic decision.
Choose the pool. Adapt to the result.
The player does not choose an exact result. Instead, they choose how uncertain that result should be. Existing cards become potential outcomes within those constraints.

Transformation across the fight.
Persistent transformation
Some cards continue changing after entering the discard pile. Relevant state—including upgrades—is preserved while their identities evolve.
Fission
A card becomes a zero-cost version that generates a copy when played. Originals and copies can continue participating in transformation mechanics.
A changing strategic environment.
The character can temporarily borrow randomized relics between combats. Each encounter offers a different strategic environment without permanently adding every borrowed relic to the run.
The implementation connects relic source tracking, tooltips, visual states, combat lifecycle, and save restoration.
A mechanic is also a software system.
State inheritance
Dynamic cards need to preserve appropriate upgrade and enchantment information while changing identity. Copies introduce further questions about which state should carry forward.
Save restoration
Temporary systems introduce additional state that must survive serialization and reconstruct correctly after loading a saved run.
Asynchronous resolution
I used runtime logs and exception traces to debug timing and resolution problems involving asynchronous card behavior and event handling.
Packaging
The mod combines compiled DLL code with Godot PCK resources for deployment into the game's mod environment.
Rules, state, and player experience.
A simple idea—“transform this card again”—raises questions about upgrades, copies, save data, combat timing, and interactions with other systems. Building this character taught me to treat gameplay mechanics as connected software systems.
Development Process
AI-assisted development tools were used during implementation. I defined gameplay requirements and systems, reviewed and adapted implementations, tested behavior in-game, debugged failures, and iterated on the resulting mechanics.
SteamDeals
A product that turns pricing data into clearer purchase decisions.
Explore the case study
