two tarantino films · made into a galgame · in three weeks
很多年前,我在一家二手书店里翻到一本边角发黄的语言学小册子。书里写到一个早已死掉的希腊字母——Digamma(Ϝ)。它在公元前八世纪以前发 "w" 的音;后来希腊人决定不再需要这个声音,就把它从字母表里删掉了。
但它没有彻底消失:希腊人继续用它当做数字 "6" 的记号,于是它在文字里被淘汰,却继续在数字里活着。
我从那时候起开始用 DgA 做创作的署名。它对我意味着两件事:被语言抛下也无所谓,作品自己会找到它的位置;真正重要的从来不是字母,而是数字。
但说穿了名字只是一个壳。东西做出来才是答案。
那是 2026 年春天的某个失眠夜。我重看了一遍《Pulp Fiction》。看到 Jules 念以西结书 25 章 17 节那一段,我突然意识到这部电影的非线性结构,本来就长得像 galgame。
三段独立的故事,三组人物,一个会重新撞回来的早晨。每个观众的脑子里其实都在做"路线选择"——只不过电影规定了顺序。
那要是把顺序的权力还给玩家呢?
写完第一版对话引擎。从零开始,只有一个 #dialogue-text 和一个打字机循环。台词数据用 JS 对象。引擎一晚上就跑通。
把电影的 22 段关键场景拆出来序章餐厅、Royale with Cheese、Brett 的"Say what again"、米娅的肾上腺素针、Butch 的金表、当铺的"把皮人放出来"、最后的"Bad Motherfucker"钱包。每一段都按章节切开,做成 4 条主线 + 1 条隐藏真路线。
用 Gemini 2.5 的图像模型做了 13 张人物立绘和 14 张场景背景。最先做的是 Vincent 长长的黑发、黑西装、垂着的眉。最后一张做的是 Captain Koons,那个在 1972 年的客厅里向七岁的 Butch 讲述金表的男人。
关键段落必须有原声。Misirlou 不能放在标题屏,必须放在 Pumpkin 喊出 "Everybody be cool" 那一秒;Son of a Preacher Man 必须在 Mia 赤脚下楼梯的时候起;You Never Can Tell 必须在跳扭扭舞那两分钟无缝衔接。
我写了一个简单的 BGM 引擎。每首歌带 fade-in 时长(毫秒)、crossfade 时长(让上一首叠着淡出),所有切换都不会硬断。Misirlou 是个例外它必须硬切,因为电影里就是硬切。
有一天我在重看《Kill Bill》,看到 Bride 的"死亡名单五人"——名单天然就是路线。第二部电影几乎是顺手做出来的,因为引擎已经写好。Vernita / O-Ren / Budd / Elle / Bill。蓝叶居酒屋砍 88 个人那段,玩家要划屏 24 次才能过。雪庭对决那场戏要等 O-Ren 先动你点早了就死。
五雷正心拳那段我做成了一个迷你 QTE:你按一下"迈一步"按钮,屏幕走一步一步,两步,三步,四步,五步。心脏就停了。
昆汀的电影有一种节奏感平静的对话被拉到极限,然后突然爆破。我管它叫 橡皮筋。
放进 galgame 里,要怎么做?
我加了三种行类型:
pause ——强制玩家停留 N 秒。屏幕中央会浮出一个慢慢呼吸的省略号。
silence ——瞬间杀掉所有 BGM 和环境音。dead air。
noskip ——这一行你不能跳过。哪怕按住空格也得等。
然后我把它们用在了:Brett 的眼睛闭上前 1.6 秒;Vincent 扣下扳机前那一瞬间汽车颠簸;Mia 倒下那一刻所有声音瞬间消失只剩一道心跳;Bride 的第五步之前那段空白。
这是 galgame 比电影多出来的力量电影按帧走,你坐着看。游戏可以让你真的等。
有一些台词是不能翻译的。
"Royale with Cheese" 翻成"皇家芝士",丢了一半的笑点。"Bad Motherfucker" 没办法翻。"Zed's dead, baby. Zed's dead." 用任何中文说都软。
所以我做了双语对照每一行中文台词下面,都有一行小字英文原文。切换语言只是上下交换 + 字体改变。中文用思源宋体(小说报刊感)、英文用 Special Elite(打字机字体,正是 Pulp Fiction 海报字体的家族)。
最初的枪声是 Web Audio API 合成的。Brett 那场十二声枪响,听起来像有人在敲玻璃罐子。
后来我把 Counter-Strike 1.6 的 USP / Glock / Deagle / M4A1 的 wav 偷过来那些音效比我合成的好十倍。十二声枪响现在是真的十二声,三种枪交替响,有微小的随机抖动。听起来像是一间公寓里真的发生了一件事。
三周。两部电影。22 + 12 章。23 + 17 张 AI 生成图。23 段原声。一个橡皮筋引擎。一个会让你输入身体动作(划屏、连点、走步)的 QTE 系统。
没有人付钱让我做。
但做完之后我大概想通了一件事:"galgame" 这个词不重要。重要的是我把一个我喜欢的电影,变成了一个我可以反复打开、反复进入、随便选哪条线的东西。
电影会结束。这个不会。
暂时没定。Memento 的失忆机制做成游戏会比电影还狠。Rashomon 是 galgame 路线的祖宗,做出来对懂的人有特别意义。In the Mood for Love 的 23 件旗袍可以做服装系统。Reservoir Dogs 七个色名是天然的七张路线卡。
但说不定下一个根本不是电影。说不定是一首歌、一本书、一段我自己梦见的东西。