在我最初学习键盘打字时,曾今为看似随机的键盘字母排列困惑不已。当时为找到一个字母就需要看半天键盘,我觉得键盘按字母表次序排列不好吗?当时流行的解释是:机械键盘在输入时,一些常用的字母组合的连杆,在快速连续击打时容易卡在一起。所以,现在的 QWERTY 排列“旨在降低打字速度”。这个说法至今广为流传,而我最近读了一篇 Koichi Yasuoka 和 Motoko Yasuoka 写的论文《 On the Prehistory of QWERTY 》,更清晰的描述了 QWERTY 键盘的发展脉络,我觉得可信度更高。
我最近重新玩了两百小时的《Dotage 点老救世记》,对这个游戏有了很多新的认识。之前是在今年初玩了一百多小时,对这款一个人花了十年以上时间做的游戏相当佩服。经过近 400 小时的游戏时间,我对这个游戏的理解慢慢发生了变化。有不少游戏设计方面的东西值得研究,但却很难说清楚,需要用文字整理一下。 这是一款关于规划和选择的游戏。它固定了回合数(标准模式下,共 310 回合),所以玩家实际上需要规划整个游戏过程,无法通过控制游戏发展节奏来决定是速通(注:实际上有手段更快结束并赢得游戏)还是慢慢发展。但玩家可以选择怎样规划
关注 Caves of Qud(卡德洞窟)很久了,之前一直没下决心玩。最近发现它更新了多语言支持分支,在 steam 创意工坊里有了一个初步的中文 mod ,便试了试,果真很有趣。 我玩传统 Roguelike 很久了。最早是在 GBA 上用干电池玩特鲁尼克大冒险(以及后来风来的西林系列)。在 2008 年的时候就试过 NetHack 还尝试过做汉化 。ps. 现在已经有针对最新 5.0 版 NetHack 的中文版本了,在 AI 翻译的加持下,体验很不错。后来沉迷过很长时间(600+ 小时)的 Rogue's T
对云豆来说,这个暑假特别长。 他小学毕业了,6 月中就已放暑假,9 月 1 日方开学进入初中。自然没有学校布置的暑假作业。我不想他整个假期都沉迷在短视频和蛋仔派对中,所以每天给他安排了英语学习。 7 月初,我记录过对孩子之前的英文辅导。先前,我用的《英语在用:剑桥初级英语语法》给他补习基础语法。学习的效果还可以,原本以为可以在暑假过渡到中级本。但读了两天后就发现完全进行不下去。倒不是中级语法难度大了很多,而是他本身的阅读能力跟不上。 阅读不仅仅是 “英文” 语言的问题,换成中文也一样。所以,我换了一套书:《Basi
银河竞逐是我最喜欢的桌游之一。我曾经为它写过两篇 blog :银河竞逐的设计 及 如何教人玩银河竞逐 。 最近我教会了小孩玩这个游戏,我自己也在电脑上玩了 200 多盘。主要是在 BGA 上和人对战,以及在官方授权的电子版 中挑战最高难度的 AI 。和过去喜欢多人混战不同,这段时间我主要玩双人规则。虽然在线下,我玩这个游戏的水平超过一般桌游玩家,但在线上,我只有略高于 40% 的胜率。说明这个游戏的策略还有很高的天花板我没能摸到。和最高难度的 AI 相比,我的胜率超过了 50% 。 这是为数不多有着极深的策略,却又
今天读到 redblobgames 写的关于如何改进寻路算法中启发式函数的文章 ,感觉很棒。我们可以用很简单的方法改进 A star 算法中的传统计算欧氏距离的方式实现启发函数的方法。 这意味着,可以直接利用之前写好的寻路模块 改变一下启发函数,就可以大幅提升性能。...
最近比较难找到人一起开桌游,所以我玩了不少人对抗系统规则的游戏。 桌游中人和人对抗的比较常见,设计一套规则、让玩家在这套规则下博弈;但需要找到(足够水平的)人一起玩。虽然很多桌游也会设计 solo 模式,但大多是设计一个自动机来模拟对手。这会损失相当的博弈性,要么变成了可预测的系统行为,要么沦为半随机事件。而游戏规则的原始设计中通常都会有相当部分依赖人之间的博弈才有趣。例如,我最喜欢的桌游《银河竞逐》在第一个扩展包中就加入了自动机,允许 solo ,但我觉得远没有和人玩有趣。 也有设计得不错的自动机。例如之前介绍过
我在 2024 年底左脚大拇指根部曾肿痛一周 ,结合多年体检高尿酸结果,怀疑是痛风。但后来没有什么症状,身体也一直很好,就没去医院看。 最近一年多一直通过跑步降低体重 ,减少了 9~10kg 体重。攀岩保持在一周两到三次。自己在家查血尿酸,一直在 500~600 之间,偶尔在 480 左右。虽然戒掉了含糖饮料,也无饮酒,作息规律,精神放松(不用工作了)。但尿酸一直降不下来。...
今年花了很多时间给云豆补习英语。 他今年小学毕业了,我意识到他在英语学习方面遇到了障碍需要额外介入,是在今年过年期间。云豆在很小的时候,直到三岁还不太会说话。长点的句子都说不下来,但是英文字母认得却很快,似乎对英文有点兴趣,就给他报了个英语兴趣班,一周上两小时的课。但很快就遇到了疫情,几乎都在上无效网课,也就停了。从三年级开始,我督促他在多邻国上每日打卡。有一段时间他特别着迷于在多邻国上冲击钻石等级,每天甚至能刷上近两小时的积分。要说多邻国上学英文到底有没有用,我也说不上来,不过至少能培养一点基本的语感,看见单词即
每个经典电子游戏的游戏设计都多少有一些之前作品的痕迹。我认为原因有二:成功的玩法必须有大量玩家实际游戏体验的打磨证明其有效,在经典玩法上培养出来的玩家习惯可以极大的减少游戏的学习门槛,一个新玩法如果门槛过高就无法吸引足够的玩家去玩,也就得不到打磨。 我一直想搞清楚一款吸引我的游戏的核心规则部分到底是怎么设计出来的。为什么我可以玩成百上千小时还可以发掘出新乐趣,而开发者在看似不算太长的时间就设计出了它们。当我这两年有足够的时间,我开始用一种慢方法弄清楚这点:玩一些更古老的游戏,找到它们和现代游戏之间的发展脉络。 St
quicksort 是基于比较的排序中表现最好的算法,它在大多数情况下都能接近时间复杂度 O(n log n) ,所以 qsort() 也是 C 标准库中排序的默认实现。但是,quicksort 是非稳定排序,即当原始序列中出现相同的元素时,经过 qsort ,这些相同元素的次序可能被调整。即两个 key 相同的元素,经过排序可能调换次序。 在某些场合,我们希望排序是稳定 stable 的。因为元素的 key 相同,但元素本身可以不相同。这些有着相同 key 的元素一开始以某种次序放入序列,我们不希望对 key 排
缺氧(Oxygen Not Included, ONI)和异星工厂(Factorio)都是自动化领域的神作,它们在 Steam 上都有自动化、基地建设、资源管理的标签,可见游戏体验上有相当多的相似之处。玩家群体也高度重合。但是什么造就了它们的独特性?而不会像 Satisfactory 或戴森球计划之于异星工厂那样,有着深深的同类基因。 从游戏核心上看: 缺氧把玩家放在一个有限资源的环境下,一切都是资源转换。玩家玩游戏是一个熵治理过程,把无序变为有序。除了玩家的主动行为,还有丰富的、半随机的、环境自然推演。缺氧的物理
又玩了半个月的缺氧,目前累积游戏时间已达 645 小时,感觉对这个游戏有了更多理解。 我重新开了一盘,尝试用纯仿生人开局,依旧是保持 3 个初始小人开荒。仿生人不用吃食物,三个周期集中做一次呼吸,只要解决了能源问题,玩起来还是很舒服的。但仿生人需要定期上油,基本的方案是用排泄的残渣油做成润滑膏自循环。但我在查配方表的时候发现:润滑膏其实可以裂解成石油,而润滑则可以用菌泥榨成植物油替代。这样,似乎就多了一种方法在游戏初期拿到石油。 在我的理解中,缺氧的石油在开荒期的主要用途是做精炼金属的冷却剂,配合蒸汽机可以做到净增
最近一个月,我一直在玩《缺氧》(Oxygen Not Included) 。前几年玩过 100 多小时,算是比较熟悉了。但这个月又高强度的玩了 300 多小时,目前总游戏时长为 485 小时,感觉对这款游戏有了一些新的理解。 最初喜欢上这个游戏,是想找一个类似《异星工厂》的以自动化为核心玩法的基地建设类游戏。Factorio 是我最喜欢的游戏之一,游戏总时长达 2905 小时,是放置类游戏之外我花的时间最多的游戏。我很想看看类似游戏还能向什么不同方向发展。这两个游戏的目标都非常类似:在无人星球上殖民,建设一个基地发
可可已经在三年级下学期了,数学似乎还是有点问题。这个阶段考试成绩其实都不会太差,但一旦作业或考卷上的错题并非粗心大意就值得警惕。乘除法是二年级学的,三年级已经在学两位数除一位数的除法。但会计算并不难,计算只是一项机械性技能,难的是理解乘除法的意义。理解乘除比理解加减法困难的多。 我翻出几个月前的一篇 blog,发现过了 4 个月,她的问题依旧:乘除法作为一项计算技能和其背后的意义是割裂的。这导致了很多问题到底如何解决一筹莫展。固然多作练习就能开悟,毕竟几乎没有成人回头看小学数学会觉得难以理解的。但我还是想尽力搞清楚
soluna 集成了 lua 虚拟机,但默认构建方式是将 lua 库静态链接到唯一的执行文件中。这将导致无法以动态库的形式外挂 Lua 的 C 扩展。 这是因为,如果独立编译 Lua 的 C 扩展库,通常需要链接 Lua 的 C API 。标准的方法是动态链接 lua 实现,如果静态链接 liblua.a ,会导致进程中有多份 lua 的实现。在 Lua 的历史版本中,这将导致运行期错误。 这是因为,Lua 的实现中有一个静态的“空”对象,所有的 nil 都指向这个对象。如果进程空间中有多份 Lua 实现,就会出现
今年过年,我沉迷于 Star Trek : Captain's Chair 这款 2025 年的桌游。暂时还没有中文版,如果直译的话,名为《星际迷航:船长之椅》。这是一款以卡牌构筑为核心玩法的桌游,在游戏过程中,不断完善自己的牌堆,构筑一个高效的得分引擎。如果能比对手获得更多的 VP 就可以获得游戏胜利,但也要避免突然死亡。这是一款新游戏,但作者 Nigel Buckle 和 David Turczi 之前已经用类似的系统出过 Imperium (帝国)三部曲。其中《帝国:经典版》和《帝国:传奇版》有中文版,在淘宝