2026-09-18 15:28:47
关注 Caves of Qud(卡德洞窟)很久了,之前一直没下决心玩。最近发现它更新了多语言支持分支,在 steam 创意工坊里有了一个初步的中文 mod ,便试了试,果真很有趣。
我玩传统 Roguelike 很久了。最早是在 GBA 上用干电池玩特鲁尼克大冒险(以及后来风来的西林系列)。在 2008 年的时候就试过 NetHack 还尝试过做汉化 。ps. 现在已经有针对最新 5.0 版 NetHack 的中文版本了,在 AI 翻译的加持下,体验很不错。后来沉迷过很长时间(600+ 小时)的 Rogue's Tale,甚至它的官方中文一开始就是我翻译的。还玩过一点 CDDA , Cogmind ,以及关注过 RogueBasin 上很多很多的 Roguelike 。
除了在游戏机上被彻底改造过的不可思议迷宫系列,很少见针对手柄交互改造的特别好的 Roguelike 。这或许是 Roguelike 天然的系统复杂性吧,毕竟不可思议迷宫也大刀阔斧了砍掉了不少东西。但 Qud 让我改变了这个看法,它用手柄玩太舒适了,看来还是得有人好好设计。交互做得好加上适当的本地化,就可以极大降低体验 Roguelike 的门槛,只是这类游戏最大的门槛还在于玩家不知道该在游戏世界里做什么,现代游戏把饭都端起来直接往玩家嘴里送的做法已经大大削弱了玩家自己探索游戏的能力。
传统 Roguelike 有两大方向:
一是地牢远征。让玩家一直琢磨怎么战斗,挑战更难的地牢。但是它又不像传统的战斗 RPG ,让玩家去想什么 Build 最强,而是偏重于让玩家探索游戏世界的规则:找到大量系统间的交互。物品可以有隐藏属性、药水不只一种用途、怪物和环境会互动、宠物能影响游戏、物品存在意想不到的用途来解决完全不同的问题、永久死亡在带来挫折感的同时也在教会玩家:原来还有这样的系统存在。玩这种游戏,玩家的乐趣往往不在于“我的角色”又变强了,而是玩家本身发现了新的游戏规则:“我”变强了。
二是世界沙盒模拟。它更接近现代游戏中的开放世界:作者设定好世界、城镇、NPC 阵营、主线任务、加上一些随机生成的迷宫和支线,把玩家扔在里面体验这个世界。追求战力更强往往不是唯一重要的,处理好玩家角色和世界的关系往往也同样有意义。玩游戏不是一个个地牢打到底,而且揭开作者设定好的迷雾,体验人为设计的剧情。特别是永久死亡的经典设定,可以让玩家更为投入去体验角色和世界的互动。
每个 Roguelike 在创作时,并非固执上述单一方向,可以把它们融合起来,也可以往其中一个方向专精。这篇 Blog 不是一篇针对 Roguelike 谱系的范范而谈,我就不逐一列举游戏了。但有一点:几乎所有 Roguelike 的创作都不是商业驱动的,每个长期维护的 Roguelike 都有它独特的魅力和不一样的游戏体验,玩过一个就去类别另一个的好坏很容易带来偏见。由于 Roguelike 大多基于复古的画面,极低成本的美术,全靠玩家脑补。作者就可以把更多的精力拿出来创作奇特的游戏机制,这是商业游戏做不到的:如果设计一个独特的玩法就需要连带制作大量的动画以及交互,不仅制作工期无法保障,尚且不能保证玩法真的好玩;保守的做法就只能是在已普遍被大多数玩家认可的玩家上雕花。
我这两天大约玩了 20 个小时 Qud ,体验很好,但只能算是刚刚迈出新手区。在玩的过程中,记录了一些自己的体验,感觉对以后设计游戏有帮助,写这篇 Blog 也是做个汇总小结。
玩家玩游戏,游戏一定要有一些东西符合玩家在游戏之外的体验,两者共鸣方才投入到游戏中去。
游戏是不是一定要有叙事?当然不是。但“叙事”是一个很好的共鸣点,它可以将玩家在游戏之外文艺作品(历史、小说、电影等等)中获得的体验转化为游戏体验。一旦激发了玩家大脑中的想象力,视觉冲击或是操作反馈都比不上“脑补”的威力。Qud 是一个强叙事的游戏,游戏世界和主线情节都是人为设计的。如果玩家喜欢那种未来复古主义风格,就能很好的融进游戏:它不是 fallout 那种末日废土,玩家不必去关注当初世界如何毁灭,更多的是体验那种科技发展为魔法一般无法解释的东西后,文明在如何运作。那些旧世界的遗物变成了一种古怪的东西:一部机器可以同时存在技术意义、历史意义以及宗教背景,当然还有游戏机制供玩家学习。
玩家能感受到 Dune 对 Qud 世界无处不在的影响:所有对话都以 Live and Drink (长生共饮)结束。淡水变成了游戏世界中的通用货币,这不仅仅是一个文字上的设定,还深刻的塑造了游戏中独特的经济系统。游戏里没有钱,只有淡水。和 NPC 交易时,如果价值不对等,差的部分需要从玩家背包里取出淡水补上,多的部分 NPC 总能从异空间变成等值的淡水补上,但玩家的负重要能承担。
玩家没有仓库和银行(至少我还没有接触到),只能增加自己的负重能力,才能带更多的“钱”。所以游戏可以不限制玩家去 Grinding (刷),因为你刷了也带不走,没地方积累。高价值东西还是无法从 NPC 那里交易到。淡水这个通用货币还设计成相对不轻,不可找零。基本弹药、食材的交易价只有百分数,为了平衡交易(不亏钱)最后都是用这些消耗品补上。这让我联想到,(据说)津巴布韦当年经济崩溃后人们普遍使用美元,但美分却不接受,最小面额就是一美元。在商场买东西尽量凑整,不足的部分用糖果找零。
和大多数 Roguelike 不同,玩家不用刻意在身上保存淡水解决口渴状态。游戏定期从背包里扣除淡水,扣完就死。但只要找到任意 NPC 都可以交易到淡水,游戏世界中并不缺水,不需要专门去找水。经济和生存结合在一起是个很有趣的设定。
那么,如何交易高价值物品?游戏中设定的贸易品很特殊,通常是贵金属,它在交易中价值是恒定的,买卖同价,而单位重量很小。玩家可以尽可能把有价值的东西都折算成贵金属携带在身上,这样才能在需要时交易到单位价值很高的物品。但贵金属在世界中却很稀少,所以我在玩的时候,往往还需要再交易回来。和贸易品不同的是普通商品,往往有很高的买卖折损,也就是卖价很低,买入很贵(同时受玩家属性技能影响)。很多商品本身却很轻,方便携带,只是你只能做一次性交易。典型的商品就是书,有价值的书读过就把里面的信息提取出来了,书本身可以用很高的价格卖掉。但书很轻,比起直接带淡水,携带量可以大很多。
Qud 的经典模式是永久死亡的。即角色死了就必须重零开始,没有存档可供重来,没有遗产可以继承到下一局(没有 meta 成长),成长的只有玩家对游戏世界的认识。这种设计带来的游戏体验和传统 RPG 相比是截然不同的:玩家需要小心翼翼,做高难度任务被迫做充分的准备,尽可能的收集游戏世界中的信息。这所营造出的那种在末世挣扎求生的体验无可取代。
但角色终有一死,永久死亡带给玩家带来的挫折感该如何缓解?Qud 的答案是:打败敌人或许很难,但逃跑总是相对容易的。无论你选什么初始 build 开局,总是默认给你一个“疾驰”的技能,新手区几乎没有可以跑得过你的敌人。再强的怪也很难秒杀你,留给玩家打不过就跑的机会。加上是回合制,玩家可以从容的想办法,只要不故意作死,还是有反悔的机会。游戏经验带来的区别是:是否过量的使用消耗品,开局送的那些药剂撑过新手村肯定是够用了。懂得正确的衡量局势,你可以用的更节省一点。慢慢的学会利用环境高效战斗,乐趣也能不断涌现。
这种不给反悔机会的机制,让我在玩 Bey Lah 的 Kith and Kin 任务时,体验到了和玩一般推理游戏的差异。因为知道选错了就不能反悔,所以我非常仔细的调查了所有的线索、推敲每个村名的对话、观察每个鹿人的外观。甚至,我在玩游戏时用了一大张草稿纸,画出人物关系图,把获得线索一一标注在 NPC 上。最后一次性做出正确的推理结论时,成就感慢慢。时候我查了攻略才知道,这个任务是专门设计的,作者编排了所有人犯罪的可能性,枚举了每种情况的线索和证据,然后打乱随机出现在游戏里。可能是设计成本太高,整个游戏里似乎没有设计其它类似的任务;亦或是这种游戏体验有一次就够玩家回味了,不适合把它(本格推理)做成游戏的核心玩法。
btw,我在玩的时候想到一个点子:构架一个虚拟世界,比如围绕武侠世界的世界观设定各方势力,但把终局阴谋利用随机性隐藏起来。比如,每次创建世界,武当或少林的掌门都可能是阴谋家也可能代表正义,或者两者皆是。玩家在游戏世界里会永久死亡,但玩家可以在同一个世界里重新再玩,玩家本身可以知道这个世界里的阴谋的一部分:武穆遗书藏在西湖水底,武当掌门是带头大哥…… 玩家可以利用这些知识在新的 run 中更高效的玩游戏。但重新构筑一个世界这些则会重新被打乱。采用怎样的随机算法、程序化构建可以做到什么程度、人工的设计量到底有多大,这些还没有细想。
Qud 的地图采用的双层结构:大地图加每一格的展开(小图),看起来是半随机的。地图西边永远是盐滩,中央是峡谷,东边是丛林,怪物分布从西至东逐步危险。新手村 Joppa 永远在地图西边盐滩周围,第一个城镇六水镇一定在西北方的盐滩中间。但随机的遗迹和小地图布局则是随机程序化生成的。Qud 极大的弱化了食物和饮水方面的生存压力,这可以让玩家摆脱很多 Roguelike 中的食物焦虑。一直不进食也不会饿死,最多只会顶着一个速度下降的 buf (增加恶战中逃脱的难度)。而只要在安全地带扎营煮饭,就可以无消耗回复饱腹状态,烹饪技能和食材消耗属于锦上添花:给第二天提供一个正面 buf 。饮水前面也提到了:水的消耗变成了经济系统的一部分,理论上玩家很难陷入脱水而亡的境地。更多的是减少玩家远征的经济收益。
两级地图设计的很恰当:玩家在大地图上可以非常高效的移动,很快(相当于压缩了游戏时间)就能完成长途旅行(得益于弱化食物饮水的设计),也可以主动进入小地图探索。在大地图上移动有一定几率触发迷路,在迷路时,玩家强制进入小地图行动,但玩家地表很少有迷宫,玩家朝着大体的方向走就不会走冤枉路,只不过要应付路途上的怪物。如果碰到 NPC ,交谈就能解除迷路状态,在周遭无敌人时就可回到大地图。如果在无人区,走足够多的路(一般不超过大体图上的两格)也能摆脱迷路状态,这种大小地图的无缝衔接对开放世界的体验很好。小地图及地牢的程序化生成向玩家提供了每个 run 的新鲜感。配合地形及怪物搭配,有足够多的战斗内容供玩家学习。
很多游戏在地图设计时设计一些软屏障,典型如魔兽世界,在地图间放一些高等级的怪阻止不够等级的玩家探索高等级区域。Qud 不是这样做的,它不阻止玩家在大地图上高效旅行。因为故事主线放在地牢中,地图旅行不为难玩家。它需要让玩家更容易脱离高风险环境,避免永久死亡带来的挫折感。有技巧的逃离死亡威胁也可以和战斗一样带来优秀的游戏体验。在故事主线中,新手阶段的 Grit Gate 那里接到的任务,就是去一个充满地下管道的地城取回报废的机器人。游戏鼓励玩家在 12 级以下完成这个任务(获得更高报酬),我是在 10 级去做的,也没有事先查攻略,攻略整个地牢的过程惊心动魄。这里首次面对单向通道(只能从通气口往下跳,无法原路返回),所有的怪都打不过,只能一路狂奔,猛打治疗针,身上有什么药就吃什么,哪怕顶着各种负面 buf 。永久死亡带来的恐惧在整个过程中挥之不去,最后一层中,哪怕眼前不远处就能看见及其吸引人的物品也不敢去捡。
我在玩 Qud 时,能确切的感受到,硬刷等级的收益不大。除了开局在新手村附近稍微刷刷等级可以提升初期的存活率外,出了新手村就不用刻意升级了。反正后面靠打怪升级需要的经验值会指数级上升,而提升的角色能力却非常有限。最主要也就是血条长一点,更不容易死掉,打败怪物的能力却没有对应成长。升级送的 SP 倒是可以直接购买任意技能,只不过靠这个一定是不够用的,就好比学了烹饪,战斗技能就没 SP 可用了。最有效的方法还是四处游历和各地 NPC 阵营结下水盟(只需要消耗一单位的淡水),用阵营好感度去换技能。这里游戏留给玩家的选择就是:阵营好感度是此消彼长的,见人就拉上喝水大体没错,只是不小心得罪了远方的怪物就得留到以后去解决了。很多游戏中的装备和物品也并不增加战斗数值,但装备上就能拉高或降低对某个阵营的评价,占着负重让收集癖左右为难。提升对特定怪的好感度可以极大的改善在游戏中生存率。最安全的活法自然就是让怪物不攻击你。
对大部分 Roguelike 来说,在游戏中变强并不是堆砌数值,寻找更强的 Build ;而是发现了游戏中的新机制。在 Qud 中,学会了如何破墙等于在嵌入绝境时多一条路逃跑;学会了飞行,前面那个单向通道就能变成可以回撤的双向通道;学会用爱情针魅惑敌人,不仅可以避免和 boss 交战,还能一起喝水换得世界的秘密(通向极品装备的捷径)…… 所以没有遗产继承的永久死亡固然可怕,但角色死了,玩家真的可以感受到“我”(通过了解世界的机制)变强了。
最后是吐槽 AI/LLM 时间。
目前我最长的一个 run (十个小时以上)终结在主线任务去 Bethesda Susa 。在这个节点上玩的有点飘,觉得游戏给的容错性足够,已经不太会死了。但在下这个主线地牢前,我特地和 Gemini 讨论了许久:我问现在 12 级去是否安全,LLM 说把冰抗加到 40 以上肯定没问题。我凑了一身防寒装就去了,但没等冻死就先死在了中间的巨人三巨头处。事后我仔细读了好几篇 Reddit 上的帖子,老玩家总结说,做这个任务最低 20 级就相当极限了(HP 长度不会被秒杀),至少推荐 28 级以后去。虽然有不少邪典玩法避免战斗,但那些需要的筹备工作,不看攻略的我肯定无法制备周全。
想想也是:AI/LLM 一定不会亲自玩游戏,只能道听途说。试想一个没玩过游戏的人教你玩这样风险极大的游戏,你肯定不会信任他;那又怎么能轻信 AI 呢?多半还是因为 LLM 把语言组织的太动听。
2026-09-09 14:53:21
对云豆来说,这个暑假特别长。
他小学毕业了,6 月中就已放暑假,9 月 1 日方开学进入初中。自然没有学校布置的暑假作业。我不想他整个假期都沉迷在短视频和蛋仔派对中,所以每天给他安排了英语学习。
7 月初,我记录过对孩子之前的英文辅导。先前,我用的《英语在用:剑桥初级英语语法》给他补习基础语法。学习的效果还可以,原本以为可以在暑假过渡到中级本。但读了两天后就发现完全进行不下去。倒不是中级语法难度大了很多,而是他本身的阅读能力跟不上。
阅读不仅仅是 “英文” 语言的问题,换成中文也一样。所以,我换了一套书:《Basic Reading 1200 Key Words》
我的想法是这样的:首先应该通过阅读扩大他的单词量;其次他真的需要增加“阅读”了。他的中文阅读太少,无法静心读书。看起来,这套书的内容如果对应成中文读物,似乎更低年龄一些(感觉是 7-8 岁左右)。但对云豆来说正合适。从单词量来说,也比较契合他现在的英语水平。他虽然已经小学毕业,但难以静心读下长篇章节书,阅读这件事还是得循序渐进。
这个假期,雷打不动的每天坚持读一篇,差不多刚好在假期读完了全部三本。每篇文章只有十几句话,我原本以为可以半个小时读完。但实际上,一句句陪着精读,做完后面的练习,每天都要花掉整个上午的时间。早上九点左右早餐后倒中午十二点午餐结束。
我感觉通过这个暑假,他在英文上的阅读量已经超过了过去两年中文阅读量。阅读能力至少可以独立读完一小篇文章,真的理解文字传达的意思了。
这个暑假我还发现,其实云豆的英文单词量非常匮乏。只要是偏抽象的词就几乎不认识。比如, move / most / even / include / each / expect / only / just 等等这些我以为他早就应该认识的单词尽然完全不懂。即使在暑假中每日阅读见到,也要经过几周,反复见过 5,6 次以后才记得。
他理解英文的方式一直是将一个句子中认识的单词在脑中不断排列组合,拼凑出大致合理的句子。从英文的短句变成长句后,这个方法就完全失效。而阅读能力的缺失导致差不多摸到意思了也表达不出来。这个暑假,我教给他最重要的一课是:英文单词和中文绝不是一一对应的映射关系,要理解单词的含义,不可以“背”中文译词。
可可是另一种情况。
她暑假过后上四年级,学校的英语学习会从纯口语过渡到书面语。我之前关注她的英语学习情况较少,她在学校里英语成绩还凑合(考试成绩一般在 95 左右)。
但这个暑假一开始,我就发现了问题:她只能勉强背诵英语课本,实际上看到陌生的英语句子就完全读不下来,更比说运用英文了。甚至,26 个字母打乱了后识别都有困难。在这个水平,只能从头开始教。
上次 blog 下,网友推荐了《典范英语》Good English ,我查了一下,其实对应的《牛津阅读树》(Oxford Reading Tree)。我就选了这个从头带着可可学习。这个暑假读完了《典范英语》的 1 和 2 。每天在午休过后读一个小时,然后在晚上睡前复习一个小时。
从零开始学习的效果还是比较明显的。一个暑假之后,可可大致可以看到单词猜到读音了。(我刻意教了一些自然拼读的法则)我完全把她当成零英文基础来教,她在读《典范英语》第一册刚开始时非常吃力,虽然只有几个简单句子,但读完就忘。需要不断的回滚跟读练习。大约一个月后情况才好转。因为第一本每篇故事内容比较短,比较低幼,所以一天能读 3-4 篇,主要还是练习口语发音为主。
第二册开始句子要复杂一些,一天就只读 1-2 篇了。感觉按这个进度,今年是可以读完第 4 册的。
总得来说,学习贵在坚持。我感觉用什么方式什么教材去学也没那么重要,重要的是保证每天一个小时以上的投入时间。其实也挺考验我自己。陪着阅读学习也是很花时间挺累的。驱动我一直做这个事情的就是把它变成每日日常,用惯性来推动。
2026-08-20 20:01:10
银河竞逐是我最喜欢的桌游之一。我曾经为它写过两篇 blog :银河竞逐的设计 及 如何教人玩银河竞逐 。
最近我教会了小孩玩这个游戏,我自己也在电脑上玩了 200 多盘。主要是在 BGA 上和人对战,以及在官方授权的电子版 中挑战最高难度的 AI 。和过去喜欢多人混战不同,这段时间我主要玩双人规则。虽然在线下,我玩这个游戏的水平超过一般桌游玩家,但在线上,我只有略高于 40% 的胜率。说明这个游戏的策略还有很高的天花板我没能摸到。和最高难度的 AI 相比,我的胜率超过了 50% 。
这是为数不多有着极深的策略,却又超快节奏的桌游。在 BGA 上默认只给两个选手各 3 分钟的总时间,通常在 5~6 分钟就可以完成一局游戏。应了它名字里的 Race ,玩起来颇有竞速的感觉。我在游戏过程中总是觉得思考时间不够,如果纯凭借经验(感觉)打牌,很容易输掉。特别在最后两个回合,往往需要精算自己和对手的各种可能性,找到取胜的可能。胜负比分通常差距非常小,运气成分虽然存在,但总有希望通过计算挽回。而判断上的一个小的失误却会迅速落下对手一大截。
这个游戏核心目标就是:在触碰结束条件的那一刻,比对手拿到更多的 VP 。新手则往往理解成单一的如何更高效的获取 VP 。这两者是有区别的。因为比拼获取 VP 的效率往往会减少 PvP 游戏的对抗性,变成埋头干自己的事情。初玩 RFTG 的时候,我也一度觉得这是个对抗性不强的游戏。但在实战中却发现,必须时刻关注对手在做什么。首先是通过判断对手的行动,帮助自己更高效的获取 VP ,其次是根据对手的节奏,扭转游戏结束的时间,做到在结束那一刻超过对手的 VP (而不是追求获得更多 VP)。
所以在高手对决时,尤其是最后,需要仔细计算游戏会在几轮结束,以及对手希望在什么时候结束。自己有什么方法维持几轮,是需要拖延多一轮、还是抢先减少一轮。而轮次最终又是双方一同决定的,这就存在很多博弈空间。需要提前估算每种情况的胜率和最佳对策。游戏规则给玩家提供了大量的选择。VP 可以通过铺在桌面的卡牌积累,也可以用场上的牌组持续生产。游戏终止条件依此分成了两个:任意玩家在桌面铺了 12 张卡牌,或耗尽 12 倍玩家数量的 VP token 。
在引擎构建方面,主流又能分为主导开发设施、军事占领、生产消费流派。细分还可以更多。这让玩家无论抽到什么手牌,总有办法构筑出有效的组合。而不同的流派决定了玩家每轮的行动倾向性,影响游戏的节奏。对手的流派影响着自己的流派的推进节奏。这种影响,可以让人可以预测对手的行动。正确预测对手的行动可以让自己获利,而这个游戏的胜利的本质是找到比对手快一点的路线。这就提供了博弈空间。这就有点像打(德州?)扑克,玩家的思考会有多个层次:第一层是计算如何行动构筑一个最强大的引擎,让自己的利益最大化;第二层则是猜测对手想做什么,怎么利用对手的行动产生优势(对自己构筑引擎,未必是最优的,但只需要比对手好);第三层是,去思考对手在第二层上猜测自己,从而避免让对手取得优势;第四层是,分析对手在前三个层面做决策,制定对自己的最优策略。
游戏(尤其是双人模式)节奏非常快,以我的经验,通常在 6-8 轮就会结束。而牌库空间相比较而言非常大,抽到什么卡几乎无法预测。假设所有人都对牌库及其熟悉,那么在前期就必须做好多手准备,中期随时转型。而游戏规则也提供了大量中途转型的可能,玩家几乎不会一门心思的贯彻刚开始的计划,都是随机应变。除了根据自己抽的新卡做调整,更会根据对手的情况而变化。毕竟,要想胜利,不在于你是否完美的执行了计划,取得了高分,而是在最后一轮超过了对手(提前冲线)。在这种思路下,最后一轮的行动选择往往是决胜一手。怎样让自己的利益和对手潜在的利益差最大。因为随机性的存在,这反映为估算哪个选择让自己击败对手的概率更大。在胜券在握时,减少黑天鹅事件事件(对手低概率摸到扭转胜负的牌并有机会打出来);在形势不利时,去博一个翻盘的可能性;在机会对等时,精算哪怕是一张手牌数量的差异……
银河竞逐很早就有人为它制作 AI 。这是个开源项目,以人工智能网络驱动的 AI 。代码其实挺好读的,因为它几乎不包含任何人为输入的策略,就存粹是以训练出来的网络指导 AI 做决策。所有 AI 的策略都是涌现出来的。但在我随意的浏览代码后,我感觉其实它还有许多的改进空间。比如,这段开源代码看起来只考虑了当前盘面的自己和对手的桌面,自己的手牌,以此来训练和推理做为行动判断。但以我的游戏经验来看,其实是不够的。因为我在玩游戏时,还要根据过往局面,推算抽牌堆可能有哪些牌,不可能有哪些牌,来做决策参考。我相信有丰富经验的玩家都会考虑这些。不过,这个 AI 的原作者 Keldon Jones 后来参加了官方授权的电子版制作。我相信他其后做了进一步的改进(包括我提到的这一点)。这里有一篇文章 介绍了后面这个版本的 AI 的思路。其中在神经网络的 input 里,专门列出了 Cards in deck, hand, discard 。
但另一方面,我感觉即使是新的版本也没有做到的,就是根据对手调整策略。因为这和围棋不一样,是一个有大量不公开信息的游戏。猜测对手的行动非常重要。如果非常了解对手,更容易找到对手的模式,猜中对手的行动更准确。而正确的预测在实战中的确可以大大提高胜率。对手会做什么,并不总能从历史中学习。如果要以此为网络的输入,我认为需要一定程度的加入当前局的历史,而不只有当前的局面。在文章中也提到,他们分叉了许多个模型,分别针对双人、多人、不同的扩展包规则。因为这样比把规则集作为参数输入同一个模型效率更高。在决策时,也不完全是一股脑把游戏的状态输入,而是把判断局面和猜测对手行动分为了两个独立部分,再用传统的搜索法整合起来:根据对手行动的不同预测结果和概率,参考局面胜率的判定,搜索最优策略。
我感觉还能细化更多:根据初始星球分开不同的开局策略、中盘和终局也可以分成不同的决策网络、甚至给对手的模式进行分类(保守还是激进)。尤其是对终局的处理,以我有限的游戏经验判断,最后是需要精算的,这有点类似围棋的收官,但又不完全相同。固然一个超大的统一模型或许可以涌现出人类需要在不同阶段分而治之的策略模式。但这同时也是个成本问题。从开源代码看,它也对最后一轮前的桌面状态做了一点区别对待(比如不再关心手牌保留了什么)。
无论如何,这是个高质量 AI 。我和 AI 对战也能获得不少乐趣。无法碾压 AI ,当然 AI 更无法碾压我。它能极大的帮助新手学习游戏,充当一个优秀的陪练。
不过,我感觉和人玩(哪怕是和线上完全不认识的人玩)还是更有趣一些。
2026-08-09 09:17:32
今天读到 redblobgames 写的关于如何改进寻路算法中启发式函数的文章 ,感觉很棒。我们可以用很简单的方法改进 A star 算法中的传统计算欧氏距离的方式实现启发函数的方法。
这意味着,可以直接利用之前写好的寻路模块 改变一下启发函数,就可以大幅提升性能。
A star 寻路算法,本质上是对 Dijkstra 算法的一种改进:即从一个端点扩展节点时不盲目的向外扩展,而是利用一个启发函数优先尝试最可能在最短路径上的邻接节点。启发函数设计的越好,每一步的估计都和正确路径一致,那么就越快。依靠启发函数的结果就能避开所有不必要的节点。
但是,启发函数的复杂度不能太高,最好是 O(1) 的。因为每一步都要调用一次,时间复杂度乘在整个运算过程中。这使得启发函数不能去探测远方的状态。通常我们用当前位置到目标点的直线距离作为启发值,这个值一定小于实际路径距离,这样才能保证按启发值得到的路径一定不会比真实路径更糟糕。但在有墙和复杂迷宫的地图中,它几乎难以起到正确的引导作用。
例如,当起点在一个房间中,目标点在东边,而房间的门在西边。采用这种启发函数,算法一定会向东尝试完几乎所有路径后,才会从西边的门出去。毕竟启发函数感知不到门的位置,房间内部的东侧距离目标点的直线距离一定更近。如果房间是密闭的那就更糟了,算法会尝试完房间内的每个位置才会停下来。
有没有什么简单的方法可以改进启发函数,让它可以识别出墙,却不增加时间复杂度呢?最简单的方法是用一个地标。
在现实里,如果一个人要从北京出发去广州某地,他肯定不会从出发点地开始用 A 星算法寻路。而是先去到广州再说,北京到广州的路径是事前就已知的。到了广州再找怎么去特定地点。广州作为一个区域比较抽象,但我们可以预算计算出到广州某距离地点(例如广州塔)的路线图。对于固定目的地,可以用 Dijkstra 算法计算出到地图每个点的最短路径图( 流图 ),全部缓存下来。这样从任意点都可以用 O(1) 查询到如何去广州塔的当前移动方向。
当目的地离地标很近且当前位置离目的地很远时(从北京出发,还没进广州),按着去地标点的预设路径走一段肯定没错。直到离目的地比较近了(已经到了广州),就没必要按预设路径(去广州塔)行进了。
问题在于怎么确定离目标点比较近了?还是计算欧氏距离。
假设当前位置是 S(北京某地) ,目标点为 E (广州某地),地标点为 L (广州塔) 。这三个点可以构成一个三角形。因为三角形的任意两条边之和大于等于第三边,所以有 SE + EL >= SL 。也就是说在估价函数中,我们判断 SE 是不是大于等于 SL - EL ,即北京某地到广州某地的直线距离是不是小于等于出发地到广州塔的已知距离减去广州塔到目的地的已知距离。如果是,说明直线距离太短了,不值得按直线方向行进,应该遵循直接计算好的去广州塔的路径行进。反之,直线路径指向的方向可能是更有效的。
再看前面的房间例子:如果起点和东边的目的地之隔着一堵墙,直线距离为 1 ,但实际路径必须先绕向西侧的墙。而如果我们在目的地附近有一个预设的地标,距离目的地路程为 2,而当前位置到地标点的路程为 10 ;那么显然,从当前位置去目的地的最短路程不可能小于 10 - 2 = 8 。因为假设目的地就在去地标点的路径上,那么我们向地标行进,在剩下路程还有 2 的时候,就能抵达终点。这已经是最短路径,如果目的地偏离了这条路径,路程只能更远。
用地标的预设路程,可以更容易的排除目的地不可达的情况:如果我们可以去到地标,而地标到目的地不可达,那么目的地就不可达;同样,如果地标到目的地可达,而我们无法去到地标,目的地也不可达。如果目的地和当前位置都可以抵达地标,路径一定是存在的。只有当前位置和目的地都无法通向地标试,可达性才是未知的。
所以,我们在估价函数中,只要利用预算计算好的地标流图,就可以 O(1) 计算出是否可以复用到地标的流图给出预设方向,或是退化成传统以直线方向给出的估价值。
我们还可以多计算几个地标,比较它们哪个更有效:SL - EL 中较小的那个,决定采用到哪个地标的预设路径。地标可以是提前计算的,也可以是在多次寻路中生成的。可以想象成,如果我们没有去过广州,那么就先以一个离广州比较近的去过的地标,比如深圳为地标导引路径,一旦抵达目的地,就把新的这个目的地广州为地标记录下来,方便后续的寻路。
2026-07-24 22:03:34
最近比较难找到人一起开桌游,所以我玩了不少人对抗系统规则的游戏。
桌游中人和人对抗的比较常见,设计一套规则、让玩家在这套规则下博弈;但需要找到(足够水平的)人一起玩。虽然很多桌游也会设计 solo 模式,但大多是设计一个自动机来模拟对手。这会损失相当的博弈性,要么变成了可预测的系统行为,要么沦为半随机事件。而游戏规则的原始设计中通常都会有相当部分依赖人之间的博弈才有趣。例如,我最喜欢的桌游《银河竞逐》在第一个扩展包中就加入了自动机,允许 solo ,但我觉得远没有和人玩有趣。
也有设计得不错的自动机。例如之前介绍过的《Star Trek : Captain's Chair》在玩家社区中就公认单人模式非常有趣,我也只一个人玩过。还有我前段超喜欢的《deep future》也是一个多人对抗游戏,但很多玩家包括我也喜欢一个人玩。我甚至还制作了 solo 模式的电子版本 。
如果一开始就围绕玩家对抗系统规则去设计,去掉人和人之间的博弈,那么游戏会有不太一样的体验。关于这种 PvE 游戏,去年我在整理卡牌构筑类桌游规则时提过不少:Legendary 系列、Aeon's End 系列(以及后续的 Astro Knights )、XenoShyft 、Legacy of Yu、Kingdom Legacy,等等。还有今年我玩过的 voidfall 和 spirit island 。
这类游戏一般除了可以单人游戏外,一般还会设计多人合作模式。刚接触这类合作破解系统的游戏时,许多人会自然有一个疑问:如果几个人可以合作完成游戏,那和我自己一个人操作多个角色有什么区别?这其实是合作类游戏中的经典“指挥官问题”。有一类经验丰富的玩家系统称为 alpha player :指那种控制欲很强,喜欢替合作玩家做决定,主导整个局势。过去很多此类游戏会在机制上加一些限制,最著名的是《瘟疫危机 Pandemic》禁止玩家亮出手牌(但不禁止玩家描述自己的牌),这会加大 Alpha 玩家的决策成本:他无法在制定策略时纵览全局。像 Arkham Horror 卡牌版规则上明确规定不准交流手牌的精确信息。
但近年的合作类游戏,通常会设计多个玩法差异很大的角色。鉴于桌游玩家不会常年玩同一款游戏,熟悉一个角色的玩法就有很大的学习成本了,同时精通合作伙伴的角色玩法就更加困难。同时、规则上还会增加长期运营的复杂度,玩家需要记住更多的信息并作更长远的规划。这些高复杂度导致了 alpha player 难以同时计算所有人的最优解。以我前段玩得最多得 spirit island 为例,单操一个角色就很累了,同时控制两个甚至更多角色过于烧脑,游戏的乐趣都被烧没了。
这类游戏,玩得是什么呢?设计师给出一套规则,建立一个自动运作的系统,系统在这套规则下不断恶化。而玩家则通过主动行为反过来建立一个可以稳定这个系统的引擎。
这在电子游戏中更常见,也作得更深远。典型如《缺氧》,就有一个精巧的沙盒模拟器,不断的熵增趋向热寂。玩家本质上就在对抗这种无序化。没有生存压力的异星工厂,我认为也是一样的:虽然它没有用混乱给玩家制造生存压力,但它的沙盒也复杂到玩家在不断推进游戏的同时,也必定制造着混乱。例如在原版中的吞吐量问题,大多需要等到玩家看到模拟结果时再着手解决;在 Factorio 的很多玩法改造 Mod 中,还会见到更多问题:Nullius 中的副产品堆积、Ultracube 中的 Cube 时序调度、Space Exploration 中的跨区域调度、等等。
在桌游中,难以实现电子游戏的沙盒复杂度,所以转而变成某种形式的 Puzzle :在更为精简(适合人来推演)的规则下,给出不同的目标命题,让玩家构建一个引擎去解决它。在这个自动系统中,通常会加入一点(但不太多)的随机元素,让玩家无法在大脑中精确推演,但又可以大致遇见未来几个回合的局面。玩家的乐趣来源于:我预测了后面发生的事情,提前作了规划,在一步步搭建自己的引擎,最终完成了计划。
“预测、规划、实施和应变”是系统对抗类游戏的核心乐趣。
这类游戏要有趣,需要设计出两套规则:系统自动演化的规则和玩家可以用来构建对抗它的引擎的运作规则。两者都需要相当的复杂度。如果系统演化规则过于简单,玩家要么容易做出完美预测,要么过于随机而无法预测;玩家的规划就无从谈起;如果玩家引擎的规则过于简单,就容易出现最优解,或是沦为数值堆砌。实施过程也就千篇一律,更谈不上随机应变。
Sid Meier 有一句广为流传的话:"A game is a series of interesting decisions." 游戏需要尽可能让玩家在每一步作真正的取舍,而不是寻找唯一的正确答案。如果在游戏过程中,看起来可以作很多不同的行动,但其中一个(经过推理后)明显比其它好,就等于没有决策了。比如在 spirit island 中,玩家的成长必须在获得新能力卡、收回用过的能力卡、获得能量(使用更多更强的卡)、扩展在版图上的势力(为未来铺路)中选择;能力卡又分为立刻生效和延迟收益、聚拢敌人和消灭敌人。这些选择相互竞争互斥,代表着当前收益和未来成长之争。而系统的恶化无法完全预测,也不能简化为某种数值关系。成长的收益无法量化后和当前收益直接比较,所以没有绝对正确的答案。
自动化系统被设计为:永远无法解决全部问题。某些“简单的”策略游戏会设计成“着火了,快去灭火”;而像 spirit island 这种现代游戏变成了:每个回合都有很多新问题出现,玩家只能处理其中一小部分。所以,玩家必须考虑要放弃解决哪个问题。当玩家永远面临资源不足时,每个选择就都有代价。规划不仅仅是搭建解决问题的引擎的过程,也是随时调整的待作事情的优先级。
这里特别想介绍一下最近在我玩的最多的《Deckers 2025》,它是 Renegade (2018) 的改良版本。今年 (2026) 曾经众筹过中文版,名为《骇客潜行》,不过现在无论是英文版还是中文版在国内都很难买到。所以我也只是在桌面模拟器上玩了十几盘单人模式。
其游戏内核和 Spirit island 非常相似。也是有区域控制、版图移动机制的卡牌/引擎构筑游戏。玩家扮演的是对抗系统的黑客,每局游戏会选择一个有不同演化规则的 boss 对抗,并选择 3~5 个目标。除了最终目标必须完成外,中间目标可选,但中间目标成功和失败会影响中途的奖励和惩罚,这个设计非常像我很喜欢的电子游戏 dotage 。在我玩的若干盘游戏中,几乎不会放弃中间目标,因为对于新手来说,达成最终目标总是很难,中间多一次惩罚会让胜利变得更不可能。
系统会(根据不同 boss 有不同的规则)不断演化,在棋盘上生成更多的敌对物(类似 deepfuture)。玩家需要在局面不可收拾前,在棋盘上作合理的对抗性布局:玩家可以制造四种造物,在游戏术语中被称为 program 。红色用来消灭敌对物,黄色用来将敌对物转换为 program ,通常红色消灭敌人的效率高于黄色;蓝色用来移动自身,绿色用来推动敌人以及友方 program 。游戏中的 token 是有限的,program 用完就无法产生新的,且红黄一体两面,蓝绿一体两面,共享总量,并可以相互转换;敌对物产生达到上限后,玩家就会立刻失败。
目标则通常是要求玩家将盘面演化为符合特定要求:例如,必须在某些格子里安装特定 program ,或清除特定格子中的敌对物,亦或让玩家的 avatar 处于特定位置。中间目标达成或失败后,会让盘面产生一些特定的变化。
根据系统 boss 和目标卡的不同,系统的演化路径每局游戏之间差异很大,而阶段性目标和最终目标在游戏一开始就展示给玩家,所以游戏更像是一个个谜题。玩家在开局时就需要根据目标想好怎样利用游戏规则提供的有限手段,在有限回合内达成。游戏的回合数,以及可以使用的卡牌总次数,开局就已确定。这让玩家必须在规划中有所取舍,行动中始终面临压力。
我特别喜欢游戏的卡牌机制设计:简洁又有丰富的组合变化。
每个玩家只有 15 张基础卡,四种不同侧重点角色(每种两个能力略有不同的版本)的其中 12 张基础卡是完全相同的,3 张不同的卡也只是颜色不同,对应着不同的能力侧重点。这些基础卡只由(一个或两个) 5 类颜色符号组成,红黄蓝绿加上紫色百搭。玩家的基础行动是用卡牌上的三个同色符号在版图上生成 program ,或是用红色牌配合红色 program 攻击版图上的敌人,黄色牌配合黄色 program 同化敌人,蓝色牌配合蓝色 program 在版图上移动 avatar,绿色牌配合绿色 program 移动版图上的物件。
游戏设计了 54 张(30 种)合作玩家公用的升级卡堆,可以在游戏过程中升级构筑更强的引擎。我很欣赏这个游戏的升级机制:用卡牌上的符号去替换升级区的高级卡。在基础行动中,这些颜色符号是行动的费用,同时也可以用于支付升级费用。高级卡同样可以当基础行动卡用,但会额外有效果文字,可以单独作为特殊功能卡打出。由于每局游戏不会太长,所以并没有设计明显的多次升级路径。所有的高级卡都各有用途,最高也不过四费。
在玩过几局游戏后,我重新理解了卡牌升级的意义。升级区本质上是手牌区的延申。在这个游戏中,升级是让高级卡直接进入手牌,可以当回合立刻使用,而不像大多数类似游戏的处理方式:让新购买的卡进入弃牌堆,等待卡堆轮转。而且,除了一开始的弃牌堆会移出游戏外,如果用高级卡去购买升级区的另一张高级卡,是替换而不是移出。这让升级区的四张高级卡更像手牌的暂存处了。游戏中,每个玩家的牌堆永远是 15 张(因为升级必须 1 vs 1 兑换,如果用多张卡购买一张升级卡,多余的牌进入弃牌区,下一大轮会洗回),每轮抽 5 张用于行动,没有任何技能可以抽卡。玩家可以充分规划每个 cycle 的 3 个 turn 共 15 张卡怎么使用。每个 cycle 结算一个目标,要么成功要么失败;cycle 中分为 3 个 turn 的意义在于把系统的自动推演穿插其间。整局游戏根据 boss 的不同,会进行 3 到 5 个 cycle ,在桌面模拟器中,大约需要一个多小时完成游戏。
我的游戏感受是:每局游戏必须一开始就仔细研究每个 cycle 的目标。因为规则上分为金银铜三类目标,铜目标一定是先解决的,非常容易达成。但如果不未雨绸缪提前为银目标布局的话,进入银色阶段的那个 cycle 行动次数往往不够。每个目标卡都有不同的解法,这和当局游戏升级区见到的卡牌息息相关(升级卡堆是随机的)。不同的高级卡能力组合会引出不同的解法。同时,不同的 boss 带来不同的系统演化规则,以不同的形式干扰玩家。我十几盘玩下来,没有两盘采用相同的策略。在我目前的水平下,游戏的胜率只有一半,还未尝试升级版 boss 关卡。也没有把所有 boss 和目标卡一一尝试(更别说它们的组合),就玩到的部分,有点像在求解作者设下的谜题。应该还有很多设计者预设的奇妙解法没接触到。
2026-07-10 11:16:55
我在 2024 年底左脚大拇指根部曾肿痛一周 ,结合多年体检高尿酸结果,怀疑是痛风。但后来没有什么症状,身体也一直很好,就没去医院看。
最近一年多一直通过跑步降低体重 ,减少了 9~10kg 体重。攀岩保持在一周两到三次。自己在家查血尿酸,一直在 500~600 之间,偶尔在 480 左右。虽然戒掉了含糖饮料,也无饮酒,作息规律,精神放松(不用工作了)。但尿酸一直降不下来。
上周去岩馆爬高墙。休息时岩友帮我按摩了手臂和肩背放松肌肉。可能和这有一点关系,我一周来手柄肘关节处和肩膀都有些酸疼。类似平常攀岩后乳酸堆积的那种感觉。但和之前不同,一般这种酸疼不会超过 24 小时,但这次恢复得特别慢,一周过后依然没有完全好。
和 Gemini 讨论了一番,高度怀疑是痛风导致。结合我的手指关节也总有刺疼,恢复也比一般岩友慢,似乎也不完全是运动造成的正常损伤。Gemini 建议我去医院做个检查。
昨天挂了今天早上的风湿免疫科的专家号,一大早就去做了检查。除了验血,另外给左手肘部做了彩超。主要看看酸痛是运动损伤还是高尿酸导致的。
结果不出意料,果然是左侧肘关节软骨面“双轨”征。医生说这的确高尿酸引发的无菌性炎症,可以起到决定性诊断意义。血尿酸 496 , 其它指标均正常。(其中血脂略微偏高,但应该是吃早餐引起的,理论上我应该空腹验血)
医生开了两盒非布司他片,先吃一个月再复诊。目标是先将尿酸降到 300 以下。
ps. 今天出门步行去医院,面诊、检查、等结果、开药,然后步行回家,一共花了三个小时。还是挺高效率的。