你好 👋
我是 EvanWong
游戏客户端程序,Unity 方向。我是《宫廷理发师》的唯一程序,这里有它的开发手记,也有我在计算机图形学、游戏设计路上的学习笔记,和一些自己做的小游戏。
《宫廷理发师》从立项起就有 AI 参与:最早是在网页上聊天、复制粘贴,后来是能自己读代码、跑测试、写提交的编程助手。这篇记录这一路的变化、我现在怎么和它分工,以及它犯过的那些错。
《宫廷理发师》的安装包一度有 2.2 GB,其中 97.5% 是贴图;第一次进理发近景时会卡一秒七。这篇记录我们怎么找到这些问题真正的原因,以及怎么让它们别再回来。
这一年里最贵的问题,不是检查失败了,而是检查通过了,验的却是另一样东西。这篇把《宫廷理发师》开发中踩过的十几个这样的坑归成几种形状,以及最后留下来的两个习惯。
三天、九组客人、五个结局,换词让剧情不断分叉。这篇记录我们怎么用两样东西验证整局游戏:一个在纯逻辑层穷举所有路线的推演器,一个在真实场景里从新游戏玩到结局的机器人——以及它们怎么互相纠错。
《宫廷理发师》的存档最早只能回到「第几天第几组客人」的开头。这篇记录它怎么变成能恢复到对话中的某一句,「继续」和「回溯」为什么是两件相反的事,以及存档里那些不显眼的坑。
《宫廷理发师》的剧情一开始是策划写表格、我照着改代码。这篇记录它怎么变成一条内容管线和一个策划能自己用的编辑器:中间为什么从表格换成了 JSON,编辑器能做什么,以及三次「加一天」的测试暴露了什么。
剪下来的词要摆在笔记本的纸页上:不能出框、不能重叠、要像随手贴上去的,内容一改还不能乱。这篇记录词语摆放从手摆点位、到算法自动排、再到美术定稿加规则兜底的三版做法。
《宫廷理发师》的核心玩法是换词:把客人说过的词剪下来,换进别人的句子里,改写剧情。这篇记录它是怎么实现的,换进去的词怎么影响结局,以及设计上始终没完全解决的取舍。
《宫廷理发师》的剧情系统写过两遍。第一版是每个客人一台状态机,在换词机制面前一路膨胀;第二版改成内容驱动的纯逻辑架构,并且是在游戏一直能玩的前提下一组客人一组客人换过去的。
《宫廷理发师》里的头发可以用剪刀任意剪开。这篇记录它的实现:为什么最后把头发当成多边形,一刀是怎么剪开的,剪得好不好怎么算,以及手感上踩过的坑。