首页 › games › 《soonfx-engine》让你上头的不是美术,是公式

《soonfx-engine》让你上头的不是美术,是公式

仓库档案

项目 信息
仓库 soonfx-engine/core
⭐ Star 700+(据仓库页面)
语言 TypeScript
定位 面向 RPG 与策略游戏的数值引擎:零依赖、类型安全的公式解析(据仓库描述)
协议/作者 本次调研未能抓取仓库页面核实,此处从略;从 owner 形态看是独立仓库,无大厂背景标识
更新状态 未核实

一句话定位:它不做画面、不管音效、没有一张地图,只干一件事——把“你砍我一刀掉多少血、升一级之后强多少、暴击了翻几倍”这套数字规则,做成一个可以直接调用的引擎。

在这个专栏里它是个异类:前面写过的仓库,tower_game 也好、2048 也好,都是“能玩的游戏”;这个是“能让游戏上头的底层零件”。但正因为它小到只做一件事,才更值得想搞副业的开发者认真看——皮好抄,骨架难抄。你换三套美术素材游戏还是那个游戏,可你把数值曲线换掉,同一个游戏就是三个游戏:一个三天弃坑,一个让人刷到凌晨两点。

这东西是什么:游戏的发动机舱

把任何一个上头的小游戏拆开,里面都藏着一个同构的循环:玩家做一个动作 → 系统按公式结算 → 数字跳出来给你看 → 数字汇入成长 → 成长跨过阈值解锁新东西 → 新东西让下一轮结算更爽。这个循环里,“按公式结算”那一格,就是 soonfx-engine 这类数值引擎的工位。

flowchart LR
    A["玩家行动<br>点一下/放个技能/收一次菜"] --> B["数值引擎结算<br>公式解析+暴击/掉落判定"]
    B --> C["即时反馈<br>伤害跳字/金币入账/进度条涨一格"]
    C --> D["成长入账<br>等级/资源/战力上涨"]
    D --> E{"跨过阈值?"}
    E -- "没跨过" --> A
    E -- "跨过" --> F["解锁新内容<br>新技能/新怪物/新乘区"]
    F --> G["曲线换挡<br>强度重新拉开差距"]
    G --> A

注意中间那个 B 节点:整条循环里所有让你“爽一下”的瞬间,都要从它这里过账。伤害跳字好不好看,是渲染问题;跳出来的数字让你想不想再点一下,是公式问题。玩家分不清这两者的区别,但身体很诚实——这就是为什么“数值”值得从游戏里单独拆出来、开一个专门的仓库。

对个人开发者来说,它的价值可以一句话说清:当你想做第二个、第三个游戏的时候,骨架不用重写。第一个游戏你把公式引擎调通了,第二个游戏只换题材皮和数值表。

为什么上头:六个钩子,全挂在数值上

把常见的“再来一局”机制逐个拆开看,你会发现钩子的尾端几乎都拴着一个公式:

1. 即时反馈,本质是结算公式够短。 你点一下,伤害数字 100 毫秒内跳出来。这个反馈环里没有美术什么事——同一张暴击图,跳 3 点伤害和跳 347 点伤害,爽感差一百倍。数值引擎的意义就是把结算做成了一个函数调用:进参数值,出结果事件,快到跟手。

2. 进度感,本质是成长曲线的形状。 前十级一小时升一级,后期一天升一级,中间靠什么续命?靠曲线在关键节点“换挡”——每次你以为到顶了,解锁一个新乘区,数字重新起飞。Cookie Clicker 为什么能让人点几万下?它的产量曲线被调成了永远“差一点就翻倍”。曲线形状就是留存曲线,这话不夸张。

3. 随机奖励,本质是概率公式加保底。 暴击、掉落、抽卡,全是“可变比率强化”——心理学上最耐斯的强化程序:奖励不确定时,行为消退得最慢。而工程上它就是几行代码:random() < 0.15 ? 伤害*2.5 : 伤害,再加一个防止脸黑劝退的伪随机保底。公式简单,调参是艺术。

4. 策略深度,本质是乘区的叠加方式。 一个游戏有没有构筑深度,看它的数值是加法还是乘法:全加法的游戏,堆数值就赢;有乘区的游戏(攻击×暴伤×元素克制×套装效果),不同乘区怎么组合,就是 build 的乐趣。Vampire Survivors 的武器合成为什么上头?合成出来的每件装备都在改你的乘区结构。

5. 收集欲,本质是货币分层。 金币、钻石、碎片、体力——每种货币一条产出公式、一条消耗公式,两条曲线的交点就是“想要”发生的时刻。多货币不是策划拍脑袋,是把一条大曲线拆成几条互相咬合的小曲线。

6. 社交攀比,本质是把一切压成一个战力数。 排行榜只需要一个数字,而这个数字是几十项属性加权求和的结果。战力公式怎么加权,玩家就会往哪里卷——你定的权重,就是玩家的行为准则。

看明白了吗?这六个钩子里没有一个依赖引擎、美术或联机技术,全部只依赖“公式怎么写、参数怎么调”。所以才有 soonfx-engine 这样的仓库存在——上头是有工程解的,而且这个解小到一个人维护得过来。

技术拆解

先说能确定的:据仓库描述,它是 TypeScript 写的、零依赖、类型安全的公式解析,目标场景是 RPG 和策略游戏。围绕这个定位,我们把一个数值引擎要做的事摊开:

第一件事:公式怎么写(解析器)。 策划的数值表里全是 攻击*(1+暴伤)*克制系数 这样的式子,总不能每改一个公式就重发版。所以引擎需要一个公式解析器——把字符串或配置表达式解析成可求值的结构。这就是描述里"formula parser"的含义:数值表变成数据,改表不改码。“类型安全”则是在解析和求值阶段做类型约束,防止策划把百分比填成小数、把伤害填成字符串这种经典事故——在编译期或加载期就报错,而不是上线后玩家发现 Boss 一刀 999 兆。

第二件事:算得快不快(求值性能)。 一场战斗可能要算几百上千次公式,放置游戏挂机 8 小时还要离线结算。所以这类引擎通常把解析和求值分离:解析一次,缓存成中间结构,之后每次结算只走求值。零依赖的另一个好处在这就显出来了——没有重量级依赖,求值路径短,塞进网页、小程序、Electron 都不带包袱,对你做广告变现的小游戏尤其友好:包体每小 100KB,首屏加载就快一分。

flowchart LR
    A["公式引擎<br>管'怎么算'"] --> D["你的游戏<br>RPG/放置/策略"]
    B["大数库<br>管'算多大'<br>break_infinity.js 等"] --> D
    C["数值表与曲线模板<br>管'算成什么样'"] --> D
    D --> E["上头感 → 留存 → 变现"]

这张图是我对这条供应链的概括:公式引擎、大数库、数值表,三件套拼齐,任何放置或 RPG 的骨架就齐了,而且每一件都有开源轮子。如果你打算自己动手写一个简化版,四件套够了:公式解析器、成长曲线函数族(线性/指数/幂律/分段)、暴击与掉落的随机模型(含伪随机保底)、战力评分函数。这个量级,一个周末出原型,两周能打磨到能用的程度——正好是“个人 1-2 周 MVP”的标配套餐。

变现观察

先说行业层面一个不太被讲透的事实:F2P 游戏的变现设计,绝大部分长在数值曲线上。首充双倍为什么要放在前三级?因为那是成长曲线最陡的段落,数值增量带来的爽感最强,付费意愿也最强;限时礼包为什么永远卡在卡点之前?因为“卡点”本身就是消耗曲线追上产出曲线的时刻。买量游戏算 LTV,本质是拿数值曲线的留存积分做预测。所以“会调曲线”这门手艺,在游戏行业是有明确价目的岗位——数值策划。

品类案例也现成:放置/挂机品类是网页和小游戏广告变现的常青树,插屏加激励视频的跑法被验证了十几年;Vampire Survivors 证明了“数值构筑+买断制”个人开发也能爆;本专栏写过的 A Dark Room 和 Evolve 则证明纯文字加数值就能做出口碑付费双收的东西。这条路上没有一个环节依赖重资产。

给我的灵感

点子一:周末战力模拟器(工作量约 1 周,网页广告+打赏)。 公式引擎+一条成长曲线+五个怪物的数值表,做一个“挂机模拟器”:玩家输入自己的等级和装备,页面算出打每个怪的效率和预期掉落,一键生成带数值的分享图。没有画面压力,纯数字流,社交攀比钩子(晒战力)自带传播。这是检验你数值手感的最好练手项目,分享图上的链接就是你的广告位。

点子二:换皮放置游戏(工作量 2-3 周,广告为主+内购加速为辅)。 骨架完全用数值引擎,皮换成当下有话题的题材——算力矿场、直播间养成、AI 训练营都行。核心验收标准只有一条:前 30 分钟,玩家每分钟都要看到一个新的数字在变大(新货币、新乘区、首次暴击)。放置品类广告变现的门槛极低,接个广告 SDK 就能跑,数值曲线调好了自然有人挂机看广告。

点子三:卖铲子(持续投入,itch.io 付费或开源+收费模板)。 把“公式引擎+若干套调好的数值表模板(放置曲线/RPG 战斗/多货币经济)+一个曲线可视化调试面板”打包成“独立游戏数值工作台”,在 itch.io 上以几美元到十几美元的价位卖,或者核心开源、模板收费。附带收益是接外包:小团队最缺的就是能把留存曲线调顺的人,工具就是你的作品集。

上手

最后说句实在的:这个专栏写到现在,写过的每一个上头游戏,拆到最后都是一张公式表。美术决定玩家点不点进来,数值决定玩家留不留下——而留下,才是钱。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入