下载 App
一个人做放置收集游戏:为了守住经济闸门,我写了 22 个门禁脚本
4 小时前2 次播放综合
《幻兽图鉴》是我一个人做的放置收集游戏,最近刚做完一轮经济重做。 想记录一下「数值改版」这件事在我这边实际长什么样,重点是防回退的那套工具, 不是玩法本身。
一、这次改了什么 · 道馆/联盟重复挑战:首通全额,重打联盟 2%、普通道馆 25%, 每日有效次数(联盟 5 / 道馆 20)之后归零。 · 野图金币按怪等级涨(最高 8 倍),越级碾压递减到 15%, 堵掉「回新手村刷低级反而最赚」的倒挂。 · 24 种进化道具从商店下架,收口到新系统「凌霄塔」的唯一出口:每日领取。 · 闪光基础概率从 1/500 下调到 1/13875(下调 28 倍), 另加每日硬上限平日 3 只 / 闪光日 6 只。 · 加速与经验加成不再收金币,改成广告额度(x2 一次 15 分钟 / 30 分钟)。
二、病根是「一个额度管两件事」 凌霄塔最早的设计是「每天免费推进 5 层」。有玩家反馈:我都这么强了, 为什么还不让我往上打?这条反馈是对的——旧额度同时管着「爬多高」和「拿多少」, 于是「变强」被奖励成了「今天不许再爬了」。 拆开后:爬层不限次数、每天 3 次挑战机会但只有失败才扣; 产出改成每天领 1 次、按历史最高层套档、并且必须封顶。 封顶的理由很实在:塔是无尽挑战,按层数线性给的话一天就能把刚下架的 24 种 进化道具各拿好几枚,下架当场作废。
三、为什么需要 22 个门禁脚本 数值方案不是拍出来的,是反推出来的。日锚是 DailyGoldIncome(): 野图 3600/60 × 342 金 × 6 小时有效在线 = 123,120
- 联盟 5 次有效 × 最高档 100 万 × 重打系数 2% = 100,000
- 每日任务与活跃宝箱 = 24,000 = 247,120 金币/天。所有新产出都要按这个锚反解占比: · 图扫荡一次 15 分钟 ≈ 5,130 金 = 日产出的 2.1%;每天 1 免费 + 3 广告共 4 次 = 20,520 金 ≈ 8.3% · 黑市回收封顶 108 幻晶/天 · 塔每日领取 8 枚进化道具封顶 · 熔金兑换每日销毁 500,000 金 ≈ 2 天收入 问题是:这些比例只要有人手一抖改一个常量,就会悄悄崩掉,而游戏不会报错。 所以我把它们写成断言。现在 dev-tools/ 下 22 个 verify_*.py,每次构建前全跑, 举几个例子: · 断言「只要有一件新手宠等着的进化道具不在塔里产出,就不允许下架」 · 断言「争锋台模块里出现 GrantReward 就直接红」——P0 试运营不许发奖 · 断言「塔内、PK 内不产生金币」 · 断言「每日领取档位表必须封顶」 · 断言「UI 几何必须走缩放函数」——之前三次踩过同一个坑: 裸写 390×844 设计像素,真机上变成「除了背景都在,UI 全挤在左上角」
四、踩过的坑,给做类似项目的人
- 「构建返回成功」不等于玩家跑的是这一版。我一开始双方都没有一个一眼可辨的 版本信号,白跑了十几轮排查。后来加了个 BuildTag:把 git 短哈希 + 时间打进 一个常量,显示在游戏内设置页左下角。这一条救的时间比任何功能都多。
- 假空态。排行榜列表只渲染第 4 名起,但空态判据写成了「这个切片为空」, 于是榜上只有 1~3 人时会报「还没有人上榜」——而同一屏领奖台挂着 #1、 页脚写着「共 1 人上榜」。判据要用被度量对象本身,不能用它的切片。
- 用「压暗美术」救可读性是一条死路。我给新背景加了 0.56 的羽化压暗去救三行 说明文字,按引擎同款字体实测最坏一行只有 2.38:1,要压到 20% 亮度才够—— 等于把美术最好看的部分抹掉。正解是给文字块加近乎不透明的底板, 对比度立刻变成确定值,美术一点没动。
- 工具吃掉交付物还报绿。打包脚本第一版开头是 rmtree(包目录), 于是「打包 → 写云端指令 → 改了行注释重打包」会把指令静默删掉, 而自检仍然报 GREEN(它只校验清单里登记过的文件)。 所以复核脚本必须独立于打包脚本,且「判据读不到」要报红而不是跳过。
五、现在的状态 1037 种幻兽(817 种已有获取途径)、异步 PK 争锋台试运营中、 凌霄塔无尽挑战、黑市回收、三榜排行榜。一周 1~2 版,每版都写更新日志。
TapTap 搜《幻兽图鉴》。做同类项目的欢迎交流数值口径, 我这套 verify 脚本的思路可以细说。














