Player Experience Goal
The game rewards curiosity. Players should feel the satisfaction of piecing together a hidden truth through exploration.
Game Objectives
Players are told at the start how much gold they need to collect. Gold is earned by mining blocks and solving puzzles embedded in the map. Beneath this surface loop lies a hidden investigation: Who orchestrated the Gold Rush, What happened to the people in the mine, and how to break free. Resolving the hidden thread leads to a Boss encounter and the true ending.
Target Audience
Players who enjoy environmental storytelling and puzzle-platformers like Hollow Knight, and who find satisfaction in discovering secrets that reframe the entire game.
Map System
Maps are built on a GridMap and stored as ScriptableObjects. An in-editor visual map editor allows configuration of tile types, map dimensions, and individual grid cells. Multiple maps link together into a larger connected world.
At runtime, the map loading system ensures that when a new map is loaded, the previous map remains unaffected and preserved — including any changes the player made to it. A single map can contain multiple map-loader tiles, each pointing to a different destination map ID.
public enum BlockType
{
Destructible,
Indestructible,
Regenerative,
Falling,
ChainReaction,
Climbable,
Teleporter,
Explosive,
Checkpoint,
MapLoader,
Path,
Death,
ItemGate,
GoldGate,
MonsterSpawn,
MapAnchor,
InventoryInteract,
NextDayTrigger,
BossSpawn,
RegenerativeFalling,
RegenerativeBomb,
MonsterRespawn,
Spike,
BossTrigger,
PasswordLock
Block Types
The block system is the mechanical heart of the game. Every block carries an ID, name, sprite, block type, physics layer, and collision tag. The full set of block types:
Standard mineable block — destroyed after enough hits
Indestructible block — cannot be mined
Regenerating block — respawns after a set delay
Collectible block — drops a story or puzzle-related item when mined
Falling block — collapses after its support is removed; crushes characters beneath it and knocks the player sideways to the nearest open tile
Chain block — destroying one triggers all adjacent chain blocks in sequence
Climbable block — acts as a ladder; does not block movement
Teleport block — transports the player to its paired destination block
Explosive block — flashes as a warning, then detonates after a delay, destroying blocks within a radius
Checkpoint block — saves progress on contact; player respawns here on death
Map loader block — triggers loading of the next map segment when entered
Monster spawn tile — enemy spawn point; enemies respawn here after a delay
Death tile — instantly triggers death and respawn on contact
Door block — requires a specific item ID to be destroyed
Void block — invisible boundary block at map edges
Block Destruction Rules
When any block is destroyed, its grid position is replaced with an empty path tile. From there, type-specific logic executes: regenerating blocks restore themselves after a delay; falling blocks begin their collapse sequence and resolve their original grid position once settled; chain blocks propagate destruction outward to all adjacent chain blocks recursively; explosive blocks enter a countdown with a flashing animation before detonating and clearing surrounding blocks by physics layer.
Enemy
The enemy will remain stationary, periodically scanning to its left and right. Upon detecting the player on the same row with no obstructions in between, it will charge up and launch a dash in that direction—destroying any destructible blocks it collides with along the way—before entering a stunned state once the charge concludes.
Tool System
Tools are stored in the player's inventory and fall into different categories: drills (determine how many hits a block requires to break), documents (carry story text), keys (unlock specific door blocks), and fragments (combine with other fragments to craft new items) .
The inventory opens via a keypress, pausing all gameplay except the inventory panel itself. Hovering over a tool displays its description. Compatible tools can be combined directly in the inventory.
Player & Mining
The player moves horizontally and jumps with ground detection supporting both LayerMask and Tile component methods. Character facing flips automatically based on movement direction, and the animator updates accordingly.
Mining is mouse-driven: left click mines, the drill sprite follows the cursor's position and rotation, and mining is restricted to blocks within a configurable range. Each block type has a durability value determining how many hits it takes to destroy.
Problem Solving & Innovation
The core problem: two narrative threads that never connected
How the problem was identified - Playtest
December 4, 2025, I showed the game to my classmates for the first time and let them play it.
Through direct playtest observation. The feedback noted that the game loop was incomplete — players experienced the surface objective (mine gold, submit to the overseer) and the hidden storyline as two separate, disconnected experiences. Neither thread reinforced the other in the player's mind.
Steps taken to find the cause
The root cause was a pacing issue: players following the main objective had no reason to engage with the hidden storyline, and the game never created pressure that forced them to look deeper. The two threads ran in parallel rather than converging.
Plan after the playtest
The solution chosen
Rather than adding more explicit story hints, the design used the main objective itself as a trap. The daily gold requirement was set to increase each day, but the mine's size and total available gold remained fixed. Players who only focused on mining would eventually hit a mathematical dead end — not enough gold to open the next door. This made ignoring the hidden storyline a losing strategy, forcing players to ask why the cycle felt unsustainable and pushing them to investigate.
Evidence it worked - Playtest Video
The original playtest feedback listed the hidden plotline as a positive surprise — players who found it were genuinely pleased. The redesign's goal was to make that discovery not accidental but inevitable, by engineering the main loop to break in a way that pointed toward the hidden one. The before state was two parallel threads; the after state was a main loop that actively directed players toward the underlying truth.