毕业半年,生活总算平稳,以此文记录过去一年和最近对游戏设计的想法。
1 上半年
对听华没有留恋,略。
2 下半年
23 年末时求职,拒掉了腾讯,选了另一份工作,主要原因是被安排入职的腾讯工作室品味很烂。尽管少了很多薪资,但换来远程办公、技术研发、几乎不用开会的环境完全值得,还能多少维护我的游戏审美。习惯远程工作的时间安排后,每周健身三四次,力量增长迅速,卧推到了 110kg,硬拉到了 150kg,深蹲到了 170kg(体重和毕业前一致,还是 83kg 左右)。
大量的业余时间几乎都是思考我理想中的游戏,如下。
游戏内所有的物体都可以像橡皮泥一样被塑造。 六年前有了这个简单的想法,但当时完全不懂图形学,也没有对游戏设计思考过,只觉得这样就会很酷。最初觉得彩虹六号的墙体破坏就差不多了,也复现了技术。然而在复现时接触到了更多图形技术,意识到现有的技术可以支持更丰富的 "塑造"。另外,很多生存建造游戏早就实现了这种玩法,所以这个点子单独看并不新颖,那时也没有意识到。
幸运的是,不久游戏 "Claybook" 就发售了,它简直就是我幻想中的作品!它还有详细的 GDC 技术分享。当时几乎完全看不懂其中的技术,这也促使我学习了渲染、物理模拟、性能优化等,多年以后终于能彻底看懂这篇技术分享了。后来在大二复现了 SDF 生成和一部分渲染管线,大三入门流体模拟并实现了实时的 mlsmpm(Claybook 用的是 sph,但我认为 mlsmpm 更适合实时),可以说大部分技术难点得到了验证。接下来只要解决 SDF 动画系统和音效模拟,后者我打算靠成熟的库解决。
听起来很顺利?并不,接下来我就遇到了两大难题:
- Claybook 的技术非常强,但无人问津,因为它 不 好 玩。此前忙于技术复现逃避了这个问题,现在有必要反思这个点子,我是不是只是想秀图形技术?这部作品对游戏行业的意义在哪里?
- SDF 动画是个很困难的课题,比如如何制作、压缩存储、播放、交互?既然我希望所有物体都可以被塑造,角色自然也应该可以被塑造,玩家可以捏出奇形怪状的角色,该怎么动起来?假设有一种动画表达可以自适应所有可能的角色形态,该怎么制作?制作后每一帧应该都是对三维场的输运,信息量太大了,怎么压缩存储?这些问题都需要被定义并解决。
游戏的状态图理论 在思考第一个问题时,我同时在想 "游戏是什么?"。为了娱乐?我们有严肃作品。为了图形和音频反馈?我们有重文本作品。实际上这个问题十分主观,设想:我们一点点删除一部游戏全部的交互和反馈时,不同人认为它不是游戏的界限显然应该是不同的。目前我认为一个 "系统" 成为游戏的充分条件是:
- 可交互:系统能够对输入产生反馈,无论是通过视觉、听觉或其他感官。
- 能让玩家觉得有一个或多个目标:目标是指,使得该系统到达某些特定状态,比如要击败某个敌人,使角色到达某个区域。但是重点是,我们(开发者)没必要真的显式地提供一个目标。设想,我们可以用地图设计和运镜暗示玩家达成某个目标;或者参考现有的沙盒游戏,玩家会自发地寻找挑战目标(自发地尝试使系统到达某个状态)。
第二个条件是我去年才想到的,同时有一个理论:目前一部游戏的全部状态可以用一个特殊的有向图表达,图节点是所有时刻所有可能的游戏状态,边则是可能的状态转移,可以来自输入也可以是游戏自行更新。
因为绝大多数游戏目前可以运行在图灵机上,我们可以直接将二进制表达作为状态,那么这个理论显然可以成立。当然这样没有应用价值,绝大多数二进制状态对大多数人来讲可以规约,而这又涉及到人的主观。所以我们还需要一个距离度量描述两个状态给人的差异度,逻辑上一致的游戏可以因玩家的先验知识或画面表现有不一样的体验。接下来 状态图 指代这个有向图和距离度量的元组。
泊文(一位社团的同学):音乐符号理论也经历过这个过程,可惜当时还没有现在这么发达的图工具,到当代严肃音乐学和音乐生产之间又脱节了。"什么更像什么" 和 "什么不是什么"(就是节点间 "距离" 的计算
具体来讲:游戏中每个小机制对应一个小的连通度较高的子图;多个小子图通过一些清晰的连接关系成为大些的子图,对应一个关卡;再往上就是一个大区域等等;从中我们再选择几族状态作为游戏的目标。还有状态距离,休闲游戏每次状态转移时距离较小,棋牌游戏通常转移距离大。这种图结构带来了不同的游戏流程节奏。再举个例子,一些视错觉游戏有个独特的图结构,就是可以在几个局部结构类似的状态节点间转移。另外即使设计出了一个状态图,每位玩家意识到的子图和距离度量是不一样的。
我觉得现有的设计因为人的能力限制,在可能的图结构里探索的不够多。比如行为树、节点化剧情编辑等就是规范化的设计,且结构简单。人类目前在最微观的图结构里探索得够多了,而对更宏观的图结构中探索较少,大家都在墨守成规地设计不同尺度的图结构,且结构规律太简单。
为了应用这个理论,先看一个现有的设计中难以解决的问题:一旦设计思路被玩家看穿,开发量和游戏内容量便难以超过线性关系。有人会说排列组合不就是超线性的吗?比如卡牌游戏、Roguelike 游戏。然而它们实际上也没有解决这个问题,比如当玩家熟悉一款卡牌游戏的资源类别设计理念和资源间的交互规则后,玩家从新牌张得到的游戏体验不会超过开发者时设计的内容(假设这是个正常的开发者,知道自己在设计什么,会考虑新牌和老牌的互动)。当然很多玩家意识不到这些,这是因为现有的作品的解决方案几乎都同时利用了人性:随机性、强烈的画面音效反馈、色情内容等。
那能否不利用人性呢?我认为一种方法是,设计一个复杂到难以被绝大多数玩家理解的宏观图结构,让条件不成立,即使有玩家详细逆向了设计理念,也难以被大众理解。如果可以做到,我们可以尝试结合组合等传统设计思路,得到真正超线性的游戏体验。理想地,可以靠数据驱动的方法得到这种设计,但目前因为技术和硬件的限制,应该还差得远。我需要一个实际一点的方法。
回到我的作品 我希望保持一点神秘感,略。
玩笑而已,实际是因为还没自信称完全解决了上文中的问题,不如看看 SDF 动画的进度。在尝试各种方法后,基本确定了求解三维最优传输问题的思路最合适,或者说 Monge Kantovich 问题(MKP)。然后看了几篇论文发现线性优化的思路居多,所以学了些线性优化。又注意到 MKP 里的一些重要引理推导涉及到泛函,可能新一年就先学这个了。最终动画算法流程如下:
- 求解 MKP 输运当前角色姿态至目标姿态:复杂度高,需要实时化,缺少参考实现。
- 求解物理约束,角色的每个身体部位可能是不同的材料:成熟算法,性能应该无压力。
- 生成新的 SDF 供其他模块交互:用 JFA, PBA, 求解程函方程等方法计算小规模稠密 SDF 都很快。
希望能尽早解决技术难题,而设计则需要一点灵感。
其他 2024 年还有好多事,比如见 yb 家人/带 yb 见家人,逛了几处博物馆,重要的还是做游戏就不多记录了。
另外希望万智牌能回到以前精美的油画画风,与其出几千张画工低劣的填充物,不如用扩画大画重印老图。如 Chase Stone(打光仙人), Jaime Jones(巨兽仙人), John Avon(地仙人), Jonas De Ro, Rob Alexander, Randy Vargas, Volkan Baga, Izzy, Chippy, Nils Hamm, Johaness Voss, Kev Walker, Mark Poole, Mark Tedin, Rebecca Guay, Svetlin Velinov, Seb Mckinnon 等一众画师确定了万智牌的风格,而现在很多老画师停止供稿或供稿数量质量下降,我很失望。幸运的是新画师里还有 Kelogsloops, Rovina Cai, Wylie Beckert 等个人风格独特且精美的画师。
Chase Stone 是 jk 和 yb 最喜欢的画师,Zhalfirin Void, Kefnet, 手工次表面散射, Eluge,这几张卡图难以想象威视智只付了 1000 刀稿费。(实际上 90 年代到 2023 年都是 1000 刀一张,好在画师可以无限制印刷出版或拍卖原画)
不过按孩之宝的德行,大概是不可能的,那也可以省不少时间和钱。