← 返回项目列表

Dreams Don't Die《不想死的游戏人》

“I see blue in your eyes, but I also see the light.” 一款围绕独立游戏开发者心理历程的沉浸式情绪叙事游戏:4 个玩法关卡与 5 个叙事场景交替推进,用空间、光影、漂浮文字和音乐带玩家走过迷茫、困境、焦虑、崩溃到希望。我的本科毕业设计。

时间
2024.05 起 · 2025.05 完成毕业设计
团队
个人项目 · 两位同学协助美术
引擎
Unity · HDRP · Shader Graph
我的角色
发起者 · 游戏设计 · 场景与渲染 · 玩法程序 · UI
Dreams Don't Die:游戏机墓地
Dreams Don't Die:游戏机墓地

项目概述

灵感来自 B 站纪录片《不想死的游戏人》——独立开发者在资金、市场和自我怀疑中挣扎的真实处境。我想把开发者的压力源(创作挫败、过劳、焦虑)编码成可以走进去的空间和可以破解的谜题,让从业者在游玩中完成一次象征性的释放,也让圈外人通过亲身体验理解创作的复杂。

这是我发起并主导的项目:整体设计、全部场景的设计与制作、玩法都由我完成,两位同学帮忙制作了部分美术资产。项目最初作为课程小组作业开始,之后由我继续完善,成为我的本科毕业设计《面向情感氛围营造的沉浸式游戏设计与开发》(北京工业大学,2025 年 5 月)。

游戏采用 Unity + HDRP 开发,发布于 Windows PC。第一人称视角,4 个玩法关卡与 5 个叙事场景交替穿插,按“寻找 — 追逐 — 释怀”的心理节奏排列:每个关卡之后接一个情绪场景,形成“行为体验 → 内心共鸣 → 情绪转折”的三段式循环。

游戏结构与流程:关卡与叙事场景交替(论文图 4.1)
游戏结构与流程:关卡与叙事场景交替(论文图 4.1)

设计:一条情绪曲线

整个游戏的策划核心是“情绪递进与氛围营造”。我先定下一条情绪曲线,再为每一段分配一种玩法或一个场景,并用场景关键词约束美术与音乐:

顺序类型情绪阶段设计关键词
关卡 1第一人称迷宫迷茫寻找 / 方向感缺失 / 遗迹感
场景 1游戏机墓地(幻想)失落失败记忆 / 荒凉沙滩 / 沉寂感
关卡 2倾斜玩具迷宫困境无力操控 / 微调失败 / 精疲力竭
场景 2昏暗办公室(现实)压力窒息空间 / 独白文字 / 重复性
关卡 3井字格追逐焦虑节奏紧迫 / 控制反应 / 紧张感
场景 3医院走廊(现实)崩溃线性空间 / 微光 / 病态感
场景 3.5海上车站(过渡)重启安静车站 / 列车鸣笛 / 梦境转折
关卡 4飞行收集光球希望飞行自由 / 空旷空间 / 光感流动
场景 4回到海滩(幻想)愈合开阔视野 / 阳光海滩 / 明朗色彩

每一段都用四类符号协同工作:物理符号决定玩家“在哪儿”感受情绪(场景构造、道具);角色符号决定“以谁的身份”感受(第一人称、角色状态——例如医院里失去奔跑与跳跃);视听符号决定“如何感觉”(色调光影、音乐、雾效);叙事符号决定“感受到什么”(漂浮文字)。

五个叙事场景

  • 游戏机墓地:荒凉海滩上散落着锈蚀、屏幕破裂、倾倒的复古街机——梦想崩塌的墓碑。傍晚斜照 + HDRP 体积雾压低视野;没有任务提示,玩家靠地面触发点推进,漂浮文字像回忆碎片一样逐字升起。
  • 昏暗办公室:窄长的开放式办公室,只有尽头一盏吊灯亮着。进入后玩家失去跳跃与奔跑、移速下降,模拟“心理迟滞”;文字悬浮在桌椅、投影幕和键盘上方——“为何没有人给予反馈”“我逐渐开始讨厌点开评论区”。
  • 医院:抽象化的手术台与走廊,没有窗户与自然光。这是全游戏控制力最弱的一段:移速再降、镜头有轻微延迟、路径线性、没有选择,让玩家代入“无力反抗现实”。文字出现在高空、墙角、地面甚至前进路径上,带漂移动画。
  • 海上车站:走到医院走廊尽头,一扇门缓缓打开——门后不是走廊,而是海面上的木质站台和驶来的列车。两段在同一个 Unity Scene 里,靠后处理体积切换、音乐淡入淡出和控制变化完成从“压抑”到“重启”的跳变,不加载新场景。文字从“你的身体正在死去”变成反问“它们还是你的梦魇吗?”。
  • 希望的海滩:与第一个场景同样的地形与构图,但换成明亮的沙粒贴图、晴空天空盒和带波纹反射的海面;游戏机墓碑整齐安静地留在沙丘里——失败被接纳,成为记忆的一部分。首尾呼应成一个圆环。

游戏机墓地 → 办公室 → 医院醒来 → 走廊尽头的门 → 海上车站 → 希望的海滩。

四个玩法关卡

  • 关卡 1 · 第一人称迷宫(迷茫):多层交错的圆形迷宫,中心有一道垂直光柱——目标清晰、路径混沌。左下角有实时小地图辅助定位;路边陈列着倾倒的办公桌、游戏机外壳、被踩踏的开发文档。
  • 关卡 2 · 玩具迷宫(困境):玩家不控制角色,而是用鼠标拖拽或 WASD 倾斜整个迷宫底板,让小球滚到终点。小球有加速度与惯性,需要不断微调、反复尝试;没有背景音乐,只有滚动与碰撞声。
  • 关卡 3 · 井字格追逐(焦虑):九宫格场地里追一颗会逃的光球。光球只能前后左右移动、优先往玩家反方向逃、在外圈按逆时针规则绕圈;唯一的通关方法是先走到光球对侧最远处,再沿直线逼它进出口。场景是办公地毯 + 玻璃隔断 + 办公桌——在现实框架里追逐梦想。
  • 关卡 4 · 飞行收集(希望):操控飞行器穿越一座上下颠倒的梦境城市,收集空中的光球。没有敌人、没有时限,只有飞向、收集、再飞向。

实现:HDRP 渲染与情绪过渡

  • 室外:Physically Based Sky + Volume Fog,按场景调太阳角度、雾密度与散射色——墓地压低曝光、加浓雾;希望海滩降雾提曝光。Screen Space Reflection 强化水面与湿沙反射,Contact / Micro Shadows 补细节阴影。
  • 室内:主光源 + 局部点光源(台灯、吊灯、手术灯)分区照明;Light Probe / Reflection Probe + 静态物体 Baked GI,既保证间接光质量又降低运行时开销;局部后处理体积调低曝光、冷却色温、降饱和。
  • 情绪过渡:在医院与车站的交界处放两个基于世界空间的后处理体积,玩家进入触发区时自动切换 Color Grading / Exposure / Bloom / Fog——雾降、曝光升、色调转亮——不加载场景就完成情绪跳变。飞行关卡里不同高度的体积再做雾与色调的微调。
两个基于世界空间的后处理体积
两个基于世界空间的后处理体积
同一场景的两种渲染:医院走廊与海上车站
同一场景的两种渲染:医院走廊与海上车站
Sky and Fog Global Volume
Sky and Fog Global Volume
烘焙光照与反射探针
烘焙光照与反射探针

实现:漂浮文字、溶解光球与各关卡系统

  • 空间文字系统(SentenceController):自制特效文字预制体,脚本获取子节点的所有 TextMeshPro,用协程逐字渐现、绕 Y 轴旋转(速度按动画曲线从快到慢)、达到旋转次数上限后缩放淡出并禁用;SetStartWithEffect() 可按场景触发或重启,让叙事节点与玩家进度同步。
  • 光球溶解(Shader Graph):Simple Noise + Step 做遮罩,Alpha Clip Threshold 输出剔除,脚本在收集事件时缓慢推高 Clip 值;保留自发光通道,溶解中仍有微光。海滩与飞行关卡的光球共用。
  • 小地图:迷宫上方一台正交摄像机只渲染 UI 层,输出到 RenderTexture 绑定到 RawImage;玩家头顶一个跟随 Sphere 作为位置标记。
  • 玩具迷宫:鼠标拖拽或 WASD 累加旋转增量,X / Z 轴钳制在 ±23°,灵敏度参数可调。
  • 井字格追逐:Pos1–Pos9 九个碰撞盒记录玩家所在格;光球 Target 脚本在玩家进入触发器时调用 GameManager.MoveTarget(),按逃逸规则算下一格并用 Lerp 平滑移动;玩家在 Pos1、光球在 Pos9 时判定通关,播放逃逸音效并切换场景。
  • 飞行关卡:基于 Asset Store 的飞行工具包搭建,接入项目自己的拾取判定与 UI 计数;收集完毕触发结局。
漂浮文字:渐现、旋转、淡出
漂浮文字:渐现、旋转、淡出
光球溶解的 Shader Graph
光球溶解的 Shader Graph
溶解过程(Clip 值变化)
溶解过程(Clip 值变化)
小地图:正交摄像机与迷宫重合放置
小地图:正交摄像机与迷宫重合放置
井字格:Pos1–Pos9 检测点与 Target
井字格:Pos1–Pos9 检测点与 Target
飞行工具包的接入
飞行工具包的接入

成果

按游玩顺序:迷宫 → 游戏机墓地 → 玩具迷宫 → 办公室 → 井字格追逐 → 医院 → 海上车站 → 飞行 → 回到海滩。

回顾

功能测试覆盖了小地图同步、迷宫旋转手感、光球逃逸逻辑、飞行拾取、音乐过渡、文字特效与关卡切换,均达到预期。后续想做的:丰富局部美术细节、给迷宫加时限或给追逐加光球分裂等可选挑战、给小地图加朝向标识。

这个项目让我真正学会了 HDRP,也让我第一次系统地用“情绪曲线”来组织一整款游戏的玩法与场景。它也让我意识到视觉叙事和玩法之间需要平衡——后来在 Grey Waves 里我把更多精力放在了“玩法如何推动叙事”上。