我逆向工程了恐怖游戏的逻辑,构建了一个开源结局计算器(Astro + Tailwind)
Source: Dev.to
问题:隐藏的游戏机制 🕵️♂️
我最近沉迷于独立恐怖 RPG Dead Plate(作者 RachelDrawsThis)。这是一款关于为食人厨师工作的服务员的精彩游戏,但它有一个主要的挫折感:不透明的随机数。
游戏依赖于隐藏的属性,如 Suspicion(怀疑)和 Affinity(亲和)。在前 10 分钟里做出一次错误的对话选择,随后一个小时内你就会被锁定在真实结局之外。
我厌倦了 Alt‑Tab 去阅读 50 页的文字攻略,这些攻略会剧透剧情。我想要一个能够实时追踪我的属性的工具。于是,我自己做了一个。
HorrorHub – 交互式结局计算器 & 角色数据库
我逆向工程了游戏的决策树,并构建了 HorrorHub,一个交互式结局计算器和角色数据库。
UI 采用与游戏暗黑、粗糙的美术风格相匹配的设计,并针对在 PC 上玩游戏时的移动端使用进行了优化。
技术栈
框架 – Astro
我选择 Astro 是因为它的 Island Architecture(岛屿架构)。站点的大部分内容(剧情页面、角色简介)都是静态 HTML(零 JS),因此性能极佳。
样式 – Tailwind CSS v4
Tailwind 让我们能够快速原型化 “机密档案” 的美学,支持复杂的渐变和暗模式逻辑。
状态管理
在计算器部分,我仅在需要的地方注入了简单的原生 JS 逻辑。
数据结构
我没有对每条路径进行硬编码,而是将游戏逻辑映射为 JSON 结构。下面是一个简化的片段:
{
"event_id": "day_3_fridge",
"choices": [
{
"text": "Check the freezer",
"effect": { "suspicion": +10, "item": "key_fragment" }
},
{
"text": "Ignore it",
"effect": { "suspicion": -5 }
}
]
}
计算器遍历此 JSON 树,累计怀疑值,以预测玩家将获得的四种结局中的哪一种。
开源数据 🤝
我相信游戏数据应该是可获取的。Dead Plate 的完整 JSON 数据集已在 GitHub 上开源。欢迎将其用于维基、AI 代理或其他项目。
接下来计划?
我计划将其扩展为其他机制繁重的恐怖游戏的中心(例如 The Freak Circus)。
如果你是 Astro 开发者或独立恐怖游戏的粉丝,欢迎就 UI 或代码结构提供反馈。
感谢阅读! 💀
如果您发现结局计算中的错误,请在 GitHub 上打开 issue。
Tags: #astro #javascript #opensource #gamedev