Overview
Nowhere to Hide is a short stealth-narrative horror game made in Unity 6 for the Seek & Hide game jam — with the theme deliberately inverted. Instead of hunting, you are the Hider, and the Seeker is your own inner demon, born from everything you spent your life running away from.
Every night, the same dream: an endless dungeon, and something searching for you. The Shadow was never a stranger — it was born from the things you buried instead of facing, and the dungeon itself is that buried self, room by room. Over 10–15 minutes you creep through a torch-lit maze, hide from the Shadow as it patrols, and recover three fragments of yourself, each sealed in a room of your own making:
- 🕯️ The Tomb — a grief you mistook for mourning: a lantern your grandmother lit every night so you’d find your way home, that you let go dark and buried instead of grieving.
- 📖 The Library — an ambition you called “being realistic”: a star atlas and a dream you shelved on the highest, most untouchable shelf the day you stopped believing you could reach it.
- 👑 The Throne Hall — a self-worth you traded for a hollow crown: a small wooden throne your carpenter father made you, abandoned to chase a title that never fit.
Each fragment you reclaim reframes what the “monster” really is — and makes the demon faster, sharper, hungrier. When you take the last one, every hiding place fails at once, and the game ends not with a fight, but with the courage to stop running and walk forward.
“It was never a monster. It was just me, waiting to be faced.”
Key Achievement: Designed and built a complete, atmosphere-driven narrative game — from AI, stealth and sequencing systems to art dressing, audio and a Windows build — solo, within the jam’s tight timeframe, and shipped it on itch.io.
Trailer
The Experience

You wake inside the dream with nothing but a small floating light for company — no map, no HUD clutter, no combat. That light is your only guide: it leads you toward the next fragment, hovers and waits when you stop, and grows a little braver each time you reclaim a piece of yourself.

The Shadow hunts by sight and sound. Sprint and it hears you; step into its cone of vision and, after half a second, it commits to the chase. Wherever it passes, the torches gutter and die — darkness follows it through the halls.

Survival means reading its patrols and slipping into coffins, crates and bookcases while it drifts past. Hide well and its eyes pass right over you; get caught and you’re pulled back to the last checkpoint — your collected fragments intact, but the demon a little stronger.

Each of the three regions — the Tomb, the Library, and the Throne Hall — holds one fragment and a spoken confession, told through scattered signposts that stay half-legible until the fragment is reclaimed. With every fragment, the world lifts a shade warmer and brighter, and the demon closes the gap.

When the third fragment is taken, the hiding places fail and the dream collapses into a final confrontation. There is no winning the fight — only the courage to stop running, walk forward, and accept the thing you’ve been fleeing.
Design Pillars
- 🕯️ No combat, no map, no clutter — tension comes from stealth, darkness and a single guiding light, not from a health bar
- 👁️ Escalation by collection — every fragment you recover makes the Seeker faster, sharper and hungrier, so progress and danger rise together
- 🤝 A resolution, not a boss kill — the climax is an emotional turn: the “monster” is revealed to be the self, and the ending is chosen by walking toward it
- 🎬 Atmosphere first — fog, ambient light, heartbeat audio and a music mixer all shift in lockstep with how close the demon is and how much of yourself you’ve reclaimed
Narrative Design — The Complete Story
The entire game was written around a single idea: the monster is the self, and hiding is the mistake the night exists to break. Below is the full narrative script — the writing that drives every room, monologue and beat. (中英双语 · bilingual.)
Premise — Why he is being hunted
Every night, the same weight sits on his chest: the things he never said, the things he ran from. Tonight the dream pulls deeper than ever, down into a lightless Dungeon that is not a place at all but the inside of his own mind. Something down here is looking for him — a Shadow that stalks every corridor. This is the game’s one inversion of Seek & Hide: the monster is the Seeker, and he is the one who must hide.
But the Shadow was never a stranger, never an invader. It was born from everything he buried instead of facing — grief, surrendered dreams, an apology never spoken. It hunts him because he has spent his whole life running from it, and a dream is the one room with nowhere left to run. Hiding, then, is not just the mechanic; it is the mistake. It is the very pattern the whole night exists to break.
The Descent — Hiding while the buried self hunts
He wakes in the dark with no map and no weapon. His only guide is a small warm Light Companion — a floating point of courage that flies ahead of him, waiting when he stops, leading him corridor by corridor toward the things he abandoned. There is no combat. To survive he must crouch, stay quiet, and slip into hiding spots — coffins, cabinets, under tables — whenever the Shadow’s searching cone sweeps near. It hears his footsteps when he runs; it goes blind the moment he is hidden. Scattered through every room are Signposts: torn, half-legible pages of a single confession, unreadable until the Fragment that room guards is reclaimed.
Three rooms, three buried things — each a chamber of the self:
- The Tomb — Grief. Here he buried his grandmother’s paper lantern, the one she lit at the gate every night of his childhood so he could always find his way home to her table. One night he chose to be elsewhere; she was gone before the season turned. He sealed the lantern away and called it grief — but it was only running, wearing grief’s shape.
- The Library — Ambition & Courage. Here, on the highest, most untouchable shelf, he hid the gold-edged star atlas a teacher gave him — never stop asking why the stars are where they are. He froze in front of the judges once, someone laughed, and he decided for years that he was simply not the kind of person who reaches the top shelf.
- The Throne Hall — Status & Self-Worth. Here stands the empty gilded crown he chased, and beneath it the plain wooden throne his carpenter father carved for his sixth birthday: every king needs a throne — this one’s yours. He traded his father’s retirement dinner for a promotion, and every gold-plated thing he won afterward felt heavier and emptier than the last.
Reaching each Fragment plays its pickup monologue — setup, the anchor memory, and the turn from running to carrying. And as each Fragment returns to him, the world answers: the atmosphere lifts — fog thins, light warms across the whole dungeon over twelve seconds — and the Light Companion grows brighter and wider. Courage, made visible. The Shadow answers too, growing faster and hungrier with every Fragment, snuffing out torches as it passes. He is healing and being hunted harder in the same breath.
The Turn — When there is nowhere left to hide
The moment all three Fragments are his, the dream stops letting him run. Every hiding spot fails. A teleport portal blooms in the center of the great hall and pulls him into an arena alone with the Shadow. The Companion’s line lands: “There’s nowhere left to hide. But you don’t need one anymore. Walk.”
A boss health bar appears at the top of the screen — and it is a lie, a narrative prop, so that for a while he believes he can win, that he can defeat this thing the way he defeated everything by burying it. At three glowing pillars he releases the Fragments one at a time, each release a line that calls its anchor image back not as a weapon but as an understanding:
- The lantern was never guilt to carry. It was love. I’m lighting it again.
- The atlas — I didn’t burn it, I only hid it from myself. I’m climbing for it. I’m still asking.
- Every gilded crown was never mine. The only throne that ever fit was the one you carved by hand. I’m taking my seat again.
Each release knocks the Shadow down and drains a third of the false bar — but it always rises again, and the light around him dims another notch, until the bar sits at one percent and will not fall. That is the point where fighting reveals its own futility. You cannot defeat what you are. The world goes fully dark; only the torches and the Companion remain.
The Ending — Facing, accepting, waking
The Shadow stops, taunts, charges — and freezes two and a half meters away. The camera closes on his face for the realization the whole night has been building toward: the thing hunting him is himself, waiting to be faced. The prompt is not to strike but to hold E and walk into it, one slow meter per second, and accept the final blow. At the instant of contact the screen flares white and the Shadow dissolves into a red orb of light. That orb and the Light Companion — the buried self and the courage that guided him back to it — circle each other and collapse together, merging into one.
Then he wakes. Awake.unity: a static frame, one shaft of warm morning light. Two lines close the story:
The morning light felt different. Lighter. It was never a monster. It was just me, waiting to be faced.
He does not defeat the Shadow; he stops hiding from it. The Fragments were never trophies to win but pieces of himself to reclaim and carry forward — the grief and the joy inside the same grave, the courage to reach without certainty, a life lived as his own rather than in someone else’s crown. Nowhere to Hide is the dream that finally leaves him nowhere to hide — and shows him he never needed to.
阅读完整中文叙事 · Read the full story in Chinese
前提 —— 他为何被追猎
每一个夜晚,同样的重压压在他胸口:那些没说出口的话,那些他逃避的事。今晚,梦把他拖得比以往更深,坠入一座没有光的地下迷宫——那不是一个地方,而是他自己内心的样子。这下面有什么东西正在找他:一个游荡在每条走廊里的心魔。这正是本作对 Seek & Hide 主题的唯一反转:怪物才是「搜寻者」,而他,是那个必须躲藏的人。
但心魔从来不是陌生人,也不是入侵者。它诞生于他一切选择埋葬而非直面的东西——哀伤、放弃的梦想、从未说出口的道歉。它追猎他,是因为他用一生在逃离它;而梦,是唯一一间再也无处可逃的房间。于是「躲藏」不只是机制,它本身就是那个错误——正是这一整夜存在的意义,就是为了打破它。
坠入 —— 一边躲藏,一边被埋葬的自己追猎
他在黑暗中醒来,没有地图,没有武器。唯一的向导是一团小小的暖光——光影伙伴,一点漂浮的勇气,飞在他前方,他停下时便等他,一条走廊接一条走廊地引他走向那些他曾抛下的东西。这里没有战斗。要活下去,他必须下蹲、保持安静、在心魔搜寻的视锥扫近时钻进藏身点——棺材、柜子、桌下。他奔跑时它能听见脚步;他一旦藏好,它便瞬间失明。每个房间里散落着路牌:同一份告白被撕碎、半可辨认的书页,直到那房间守护的碎片被夺回,才终于可读。
三个房间,三样被埋葬之物——每一间都是自我的一处密室:
- 墓穴 —— 哀伤。 他在这里埋葬了奶奶的纸灯笼:童年每个夜晚她都在门口点亮它,好让他无论路多黑都能找到回她餐桌前的路。有一晚他选择了别处;季节还没转换,她就走了。他把灯笼封存,称之为哀伤——其实那只是逃跑,披着哀伤的外衣。
- 图书馆 —— 志向与勇气。 他把老师送的那本烫金星空图鉴藏在了最高、最够不着的书架上——永远不要停止追问星辰为何在此。 他曾在评委面前僵住,有人笑了,此后多年他认定自己不过就是那种够不到最高书架的人。
- 王厅 —— 地位与自我价值。 这里立着他追逐的那顶空洞镀金王冠,而在它之下,是木匠父亲在他六岁生日为他雕的那把朴素木王座:每个国王都需要一个王座——这一个,是你的。 他用父亲的退休晚宴换了一次升职,此后赢得的每一件镀金之物都比上一件更沉、更空。
抵达每枚碎片,会播放它的拾取独白——铺陈、锚定记忆,以及从「逃跑」转向「带着它前行」。而每当一枚碎片回到他手中,世界便回应:氛围提亮——雾在十二秒内变淡、整座迷宫的光变暖——光影伙伴变得更亮更大。勇气,被可视化了。心魔也在回应,每收一枚便更快、更饥饿,经过之处火把接连熄灭。同一口呼吸里,他一边在痊愈,一边被追得更凶。
转折 —— 当再也无处可藏
三枚碎片尽数归他的那一刻,梦不再让他逃。所有藏身点全部失效。 一座传送阵在中央大厅正中绽放,把他单独拉进一座竞技场,与心魔面对面。伙伴的台词落下:「已经无处可藏了。但你也不再需要藏身之处。走过去。」
屏幕顶端出现一条 Boss 血条——而它是个谎言,一件叙事道具,好让他有一段时间以为自己能赢,以为能像埋葬一切那样打倒这个东西。在三根发光的技能柱前,他一次一枚地释放碎片,每次释放都把它的锚定意象唤回——不是当作武器,而是当作一种明白:
- 那盏灯笼从来不是需要背负的愧疚,它是爱。我要再一次点亮它。
- 那本图鉴——我没有烧掉它,我只是把它藏起来瞒着自己。我要为它去攀爬,我还在追问。
- 每一顶镀金王冠都从不属于我,唯一合身的王座是你亲手雕的那一把。我要再一次坐上去。
每次释放都把心魔击倒、削掉三分之一的假血条——可它总会重新站起,而他周围的光也随之再暗一档,直到血条停在百分之一,再也掉不下去。就在这里,「战斗」暴露了它自身的徒劳:你无法打倒你自己。世界彻底陷入黑暗,只剩火把与伙伴。
结局 —— 直面、接纳、梦醒
心魔停住、嘲讽、冲锋——却在两米半外定格。镜头推近他的脸,迎来这一整夜所铺垫的顿悟:追猎他的东西,就是他自己,一直在等着被正视。 提示不是攻击,而是按住 E 走向它,以每秒一米的速度,接受最后一击。接触的刹那,屏幕炸开白光,心魔化作一团红色光球。那光球与光影伙伴——被埋葬的自己,与引他回到自己身边的勇气——相对盘旋,收拢相撞,融为一体。
然后他醒来。Awake.unity:一帧静止画面,一束温暖的晨光。两行字为故事收尾:
晨光不一样了。轻了。 那从来不是什么怪物。那只是我,一直在等着被正视。
他没有打败心魔;他只是不再躲它。碎片从来不是要赢取的战利品,而是要夺回、要带着前行的自己的碎块——同一座坟里的哀伤与喜悦,不求确定也依然伸手的勇气,一段活成自己、而非活在别人王冠里的生命。无处可藏,是那个终于让他无处可藏的梦——也让他看清,他其实从来都不需要藏。
Technical Highlights
🤖 Stealth AI
- Three-state FSM (Patrol → Investigate → Chase) driving the Shadow, with no heavyweight behaviour-tree dependency
- Sense model sampled on a fixed tick: a vision cone with
Physics.Raycastocclusion checks against an obstacle layer, plus a hearing check tied to the player’s dynamic noise radius (crouch / walk / sprint) - NavMesh navigation across an ~80×80m dungeon baked in a single pass, with
NavMeshLinkfallbacks stitching module seams and stairways - Dynamic difficulty — each collected fragment scales the demon’s speed, vision range and hearing radius
🕹️ Systems & Architecture
- Event-driven core — a static
GameEventsbus decouples systems; aGameManagerstate machine advances the dream from intro to final confrontation - New Input System throughout (WASD move · Ctrl sneak · Shift sprint · E interact / hold to face it), with a
CharacterController-driven player and camera-relative movement - Cinemachine angled top-down follow camera, with coroutine-driven sequencing for pickups, checkpoints and the multi-stage endgame confrontation
- Light Companion that pathfinds ahead of the player along the NavMesh — a diegetic guide replacing any minimap
🎨 Atmosphere & Presentation
- URP with three quality tiers (Low / Medium / High) sharing one renderer, so the horror atmosphere never degrades — only shadows and render scale scale down; the choice persists via
PlayerPrefs - Atmosphere controller that lerps fog colour, density, ambient light and vignette across five presets tied to fragment progress and the final hunt
- Reactive audio — a heartbeat that rises with proximity to the demon, plus an
AudioMixerwith Explore / Chase / Safe / Final snapshots switched by AI state - Synty low-poly dungeon and character art, dressed with deliberately “wrong” details — floating props, tilted furniture, repeating doors — to sell the dream logic
Technical Stack
- Engine: Unity 6 (URP)
- Language: C# (.NET Standard 2.1)
- AI / Navigation: Unity AI Navigation (NavMesh), custom FSM
- Camera: Cinemachine 3.x
- Input: Unity Input System
- Art & Audio: Synty POLYGON packs, Flat Kit, UGUI + TextMeshPro
- Platform: Windows Standalone