下载 App

涌仙,天道模拟器

修改于10/2023 浏览
10 月 12 日 · 开发者日志 #6
---
哦,伙计们,我们又见面了。这是第六篇。
我知道你们在想什么。你们在想:"这位可怜的老兄今天又打算跟我们抱怨些什么呢?"好吧,好吧,我承认,抱怨确实是我的强项之一——但今天,今天有点不一样,我的意思是,今天确实发生了几件值得你停下来听一分钟的事。
先来杯咖啡的时间,看看今天到底攒下了多少家底:三百六十八次提交,其中十五次是今天;一百五十八个 Lua 源文件,六万两千九百五十二行;八十七种事件类型。至于那十三道门禁——十二盏是绿的,还有一盏不是。我们会谈到那一盏的。我保证我们会谈到。
---
【本期进展】
第一件,老天,先把昨天那笔债说清楚。
昨天,在这同一个位置,我用相当不要脸的大字号告诉你们:main.lua 涨到了一千四百七十七行。而我自己给它划的线是一千四百七十,并且那条规矩后面还写着"只许降不许升"。我把线踩碎了,踩得干干净净,一行不剩。
今天它是一千四百零一行。
不过请注意——我必须非常认真地请注意——我一个字的功能都没有删掉。 你知道删功能把行数降下来是什么玩意儿吗?那是这个行业里最便宜的化妆术,任何一个还没睡醒的家伙都会在三十秒内做到,而它证明不了任何东西。我做的其实是这样一件事:把那坨挤在入口文件里、"谁都能往里塞点东西"的注册代码,一块一块地,被搬进了三个新文件——LayoutProfiles,三百三十四行;InputRouter,五百八十七行;PlayerUiState,一百四十三行。东西全在,一个没少,只是终于不挤在门口了。
哦,那感觉可比修好一个 bug 爽快多了。我是说真的。可能是因为昨天我难受得实在太厉害了,你们都知道那种难受,对吧?
第二件,玩家操作界面:P0 到 P5,六层。
在相当长的一段时间里,这款游戏操作逻辑的样子是这样的:玩家点到哪儿,哪儿就算数。哦,那可真是聪明——在一个原型阶段。到了成品阶段,它有个更贴切的名字,我们内部一般叫它"事故现场"。
所以现在,分工变成了这样。
InputRouter 是唯一的那个独裁者——我指的是唯一,全部点击都得先排着队从它门前过一遍,由它抬头看一眼"这位可怜的玩家此刻究竟站在哪个界面上",然后才决定这条点击该给谁。而在以前,哦,以前是十一个面板各自趴在地上偷听全局点击事件,像十一个人同时听见了同一句话,然后一起开口互相打断。现在只剩下一个人听着了。安静得让人有点不习惯,我得承认。
LayoutProfiles 管的是屏幕。而手机世界真正刻薄的地方,不在于它有几种尺寸——不,不,那样反倒简单了——而在于它有十几种。 iPhone SE 那块可怜巴巴的三百二十乘五百六十八;Galaxy Z Fold 外屏那种三百四十乘八百的、像被门夹过的窄长条;一直到 iPad Pro 的一千零二十四乘一千三百六十六,那块富得流油的板砖。每一种该给按钮留多宽、玉简该贴在哪一边,全写在这里面了。于是今天,机型矩阵:十四款,全绿。 对一个孤零零的家伙来说,这个数字简直有点让人得意忘形了。
PlayerUiState 是一台小小的状态机,它回答的是一个上周没有任何人能回答的问题:这位玩家现在究竟是在看这个世界,还是在读某个人的履历。同样一颗星星,落在这两种状态之下,你点下去该发生的事是完全不同的——而在过去,它根本不知道自己面对的是哪一种。
第三件,哦,第三件才是我今天真正想拉着你的手聊的那一件。
宗门开始自己打架了。
我不愿意手写剧情。你们知道为什么吗?因为手写剧情这东西,玩家玩到第三遍就会闻出塑料味儿,而我又恰好是个懒惰到无可救药的人。所以我把全部的赌注,都押在了这次 Jam 那个词上——涌现。
今天,有两套自驱逻辑被接上了:宗门地缘政治,还有人间百态。八十五个文件,加了五千九百三十六行。
它们不读剧本,老天,它们压根儿不知道剧本是什么。它们读的是彼此的处境:谁家灵石堆得比邻居高出一截;谁家秘境就那么不巧,正好贴在别人家的山门外头;谁昨天刚死了第一位长老,于是继承的位子空了整整半年,而所有人都看见了那个空缺。你把它们放出去跑,然后——然后它们就会自己结仇、自己结盟、自己吞并,自己把彼此灭掉。
而我一行剧情都没有写。 我向上帝发誓。第一次看见两个宗门因为一件我完全没有安排过的事情真的动起手来的时候,我在椅子上愣了大概有五秒钟,手里那杯东西全凉了。
第四件,法宝:九档品级,九段精炼。
EquipmentSystem.lua,九百四十四行;EquipmentDefs.lua,七百六十四行。九个档,从最不入流的那一档一路排到头;九段精炼,每一段到底是涨一个数值还是掉出一条新词条——规则全部被写进了配置表里,我的意思是全部,代码里连一行零头都没剩下。
而这件事真正的回报,哦,真正的回报,根本不是"省了几百行"那种廉价东西。回报是:我在调数值的时候再也不用去碰代码了,于是我再也不会在改一个八百里外的掉落率时,顺手把另一个八百里外的东西踢进沟里。那玩意儿叫免费的安全网,朋友们,免费的。
跟它一块儿装上的是 HeritageSystem,四百五十五行,管传承;和 CelebritySystem,二百八十二行,管名人。因为它们本来就是同一枚硬币的两面:一件法宝总得有个人把它传下去,也总得有个人为它出点名。
第五件,地形它终于不是一张棋盘了。
改成了 Marching-Squares 的四十五度倒角。用大白话讲——我怕你们嫌我啰嗦——从前地图是一格一格的正方形,你要是斜着走,你走出来的是一条丑陋的楼梯;而现在方块的角被切掉了,斜线它终于是一条真正的斜线了。
代价?哦,代价是这一趟动了五百六十四个文件。全是坐标,全是朝向,全是那种你以为是 A 结果是 B 的连锁反应。到今天凌晨,我还没能完全原谅我自己,我猜明天也悬。
第六件,声音第一次有了"出处"这么一栏。
以前我加音效的方式是"诶,这个听起来不错,加上"。今天我为自己写了那份《世界音效来源与接线》,把每一个音效的事件来源,一条条落进了 AudioFeedbackDefs,然后派了一份叫 SpecAudioFeedback 的断言站在门口守着它。从今往后规矩是这么个规矩:你想加一个声音,先证明它是哪件事发出来的。 天雷落下的动静必须来自天雷——不能只是因为那段素材好听,见鬼,我以前就是这么干的。
第七件,也是最后一件:七个幽灵机制终于被超度了。
在此之前,有七个机制被声明了、然后被忘了,从来没有被接上过。它们就那么安静地躺在代码里,像七个不领工资却天天按时打卡的员工。今天,全部接完了。愿它们安息。
---
【问题与风险】
第一条,哦,我最偏爱的一条:我把十八个断言弄丢了。或者多出来了十八个。我至今还不知道究竟是哪一种。
run_spec.py 清了清嗓子,告诉我:通过一千七百一十五条。
而 run_main.py,那个内嵌着同一份 Spec 的家伙,转过头告诉我:通过一千七百三十三条。
同一个东西,两个数字,中间隔着十八条断言。这说明有一条链路在我们所有人的眼皮子底下,偷偷多跑了一段——而我不知道它跑了什么,我也不知道它为什么要跑。
而真正让我后背发凉的部分是,你们猜怎么着?这两处写的都是"失败 0"。 没有任何一盏灯为它变红,没有任何一个人会为它难受。绿灯是会上人停止提问的,我的朋友,这正是它最危险的地方。明天我就去逮它。
第二条,那个 TablePool 慢了整整三分之一。
一万次借还:昨天三千毫秒——好吧我指的是三点零零毫秒,昨天;今天四点零零毫秒。绝对数值依旧是每秒百万级的,玩家哪怕把耳朵贴在屏幕上也不可能听出来。但我盯着它。我必须盯着它。因为一个内存池忽然变慢,通常意味着有个家伙在"借"和"还"当中,偷偷夹带干了点别的什么私活。
第三条,也就是那盏红灯:SpecPresentation.lua 里的 redefined-local,基线三,现在五。
静态诊断基线只拦新增,而我偏偏在同一个测试文件里,把局部变量又重定义了两遍。它不会让游戏崩掉,当然不会——它只是那种你今晚可以假装看不见、明晚它会自己长出来的小东西。
不过最近我学到了一条挺有用的规律,今天把它送给同样孤军奋战的你:红灯不是失败,红灯是一张收据。 它清清楚楚记着今天我随手放过的那两件小事,而明天它会连本带利地上门来收。所以我把这张收据贴在这儿,我不藏,我发誓我不藏。
---
【下期计划】
一,把 SpecPresentation.lua 那两条重定义还清。
二,去逮那十八条断言——本周围案。我打算先给两条链路一边装一个计数器,让它们当面对质。
三,把宗门自驱逻辑放出去跑一次长局,看看它会不会把自己玩到崩溃。而如果它真的崩了——哦,老天,那可不是 bug,那就是我要卖给你们的那件东西。
四,试法宝九炼的手感。我怀疑数值铺得太开了,玩家会在第三档就彻底迷路。要是真那样,我会回来告诉你们的。
---
【数字屏:十三道门禁,十二绿一红】
提交:三百六十八次,今天十五次
体量:一百五十八个 Lua 源文件,六万两千九百五十二行,八十七种事件类型
语法:checked=158 failed=0
纯逻辑:通过 1715 / 失败 0
冒烟:共 66 步,失败 0 步
机型矩阵:十四款,全部通过
Maker 经典 Bug 扫描:0 缺陷;main.lua 1401 / 1470
图集:缺失 0,孤儿 0;显存 1024 KB,而移动端的预算是 25 MB——我们省得有点寒酸了
交付检查:0 错误、0 提醒
建设闭环:十个种子,十个跑通(十个种子 × 六百合游戏日)
  首个完工日 81—198 天,均值 117;成功搬运 4—43 趟,均值 15.6;累计工时均值 1349 tick
性能基准 5/5:地形笔刷 2.230 → 1.510 毫秒(−32.3%);实体遍历 79.00 毫秒 / 337.9 KB GC → 0.00 毫秒 / 2.0 KB GC;五千次分类索敌 4.00 毫秒,零次分配
唯一的那盏红灯:SpecPresentation.lua redefined-local,基线 3 → 现在 5
最后一件小事,哦,我最喜欢的一件。
那张建设闭环表里,有一栏的名字叫"作废"。十个种子,整栏全是零。 一座工地只要立起来了,就没有一座被放弃过。
而"阻塞原因"那一栏讲的才是人间:seed 8888 有十六次 no_path——人已经走到工地跟前了,路断了,就在最后那一格;seed 5150 有七十三次 worker_away——该开工的时候,全体工人统统在别处;而 8888 还额外贡献了三十三次 worker_lost。
我从没为这些写过一句台词。可是一个工人走了一整天,路在最后一格断了,他就站在断口前面——那个画面,朋友们,那才是玩家两小时之后还会记得的东西。
好啦,就说这些。感谢你们读到这里,我向上帝保证这不是一句客套话。我们下回见。
P.S. 那十八条断言。如果明天它变成了零差异,我会在下一篇里告诉你们为什么;如果它没变,那我就把它一直挂在标题上——一直挂着,挂到它脸红为止。
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
1 回复
仙涌·修仙模拟器开发者日志01截图
仙涌·修仙模拟器开发者日志01
《仙涌》开发日志 01|24 种事件类型,0 条手写剧情 其实已经做了几天了,但之前想做其他游戏的,在 2 号还是 3 号的时候改了方向,做了这个。目前只完成了股价,很多东西还没做,不过进展还挺快的这个其实是昨天的日子,现在已经好很多了。不过昨天忘发了,所以今天再补发一下吧现在的素材只是站位展示效果的素材而已,后续会上新做的素材,其实现在已经上了╮(¯▽¯)╭ 我在 TapTap 制造(UrhoX
2 赞
1 回复
【童谣镇】聚光灯第二次开发日志截图
【童谣镇】聚光灯第二次开发日志
开发进度: 美术 1、主角人物立绘已细化完成 2、所有NPC的QQ人形象与呼吸动画已设计完成 3、大部分UI界面已设计完成 4、面包房建模与树屋建模以及基础房屋、路灯、树木模型已完成。 5、制作过场动效,制作通用动效材质ing 6、广场资产替换、永续桥和植被的资产替换、房屋资产替换,河流制作 7、学校模型的材质完成 8、石墩子、小道具模型制作ing 9、NPC正比胸像绘制ing 策划 1、任务系统
11 赞
10 回复
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
6 回复
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?截图
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?
大家好啊,我是官方小编,一位还在学校的独自开发的苦逼带学生 这次算是第二次正式参加GameJam,而这回的比赛主题是【涌现】 嗯…老实说,一开始我还真只是从中文语义上来看,理解成“大量的出现”,直到询问ai哦哦哦我这就才想起来还有英文的“整体大于部分之和”意思来着 说起这个主题的意思,立马想起的类 吸血鬼幸存者 ,或者是 文明 系列的各种爆怪,爆兵的设计,即大量的出现敌人或者单位 而从第二个
4 赞
4 回复
00:30
《失心》游戏开发者日志01|游戏UI迭代及实机演示截图
《失心》游戏开发者日志01|游戏UI迭代及实机演示
进入《失心》之前,玩家首先看到的是我们工作室 UNLOOK 的标识。我们将原来的标识转成 SVG,并让其中的红色瞳点转动、观察,再逐步显露完整字形,希望这个短暂的开场能带出一点好奇和不安。 这次《失心》的开局 UI,我们围绕小灵通(因为游戏的主要交互道具就是小灵通)做了几轮调整,希望玩家从打开游戏开始,就能感受到故事里的年代和气氛(故事年代背景为2000s)。 早期版本先确定了一个方向:把菜单放进
15 赞
10 回复
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
18 赞
6 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
4 赞
1 回复
《涌仙·天道模拟器》开发日志 04 · 10/10|main.lua 今天冲到 1574 行,然后被拆回 1468

【本期进展】
57 条提交,累计 323。scripts 模块 101 → 118 个,32,388 → 38,315 行;事件类型 42 → 47。

1、营建闭环上线:建筑从"点一下就出现"改成 下单 → 搬料 → 到场工时 → 完工。新增 ConstructionS截图
《涌仙·天道模拟器》开发日志 04 · 10/10|main.lua 今天冲到 1574 行,然后被拆回 1468 【本期进展】 57 条提交,累计 323。scripts 模块 101 → 118 个,32,388 → 38,315 行;事件类型 42 → 47。 1、营建闭环上线:建筑从"点一下就出现"改成 下单 → 搬料 → 到场工时 → 完工。新增 ConstructionS
1 赞
00:07
雨天決行 开发者日志02-人工智能的自我修养截图
雨天決行 开发者日志02-人工智能的自我修养
又和大家见面啦!第二篇日志,说实话一开始不知道该怎么编排,但团队里惊喜的成果越来越多,我们已经迫不及待把更新的内容端上来给大家啦!那么事不宜迟,快来看看都有什么新情报吧ദ്ദി˶ー̀֊ー́ )✧ 一.美术(重磅升级) 以主美小为的生命力作为燃料(bushi)本次美术组取得了大进程!首先是各个ui界面的优化和细化,上次大家看到时还只是初具雏形的草稿,现在大多都完整起来了哦! 同时,随着配色的补全,手
43 赞
36 回复