Untrusted 不可信:Dr. Eval 的元编程冒险
一款用 JavaScript 写成的元编程解谜游戏。玩家需在浏览器中直接编辑并重新执行游戏自身的 JS 代码,突破层层看似无解的关卡,帮助 Dr. Eval 逃离机器迷宫。
爱鲜报评分
0 人评分
4.7k
星数
否
中文
JavaScript
主语言
是
活跃
111
贡献者
人工分析
EDITORIAL推荐理由
把「改代码」本身做成核心玩法的创意之作,关卡设计巧妙,能让人真正理解代码即规则。适合想通过游戏方式练习 JavaScript 阅读与调试能力的开发者,也是研究 JS 元编程与游戏架构的优质开源样本。
适用场景
- 学习 JavaScript 语法与调试技巧
- 编程教学与课堂趣味练习
- 研究浏览器端游戏架构与元编程
- 开发者休闲解谜娱乐
- 二次开发自制关卡与 Mod
优点
- 玩法独特,将代码编辑与解谜深度融合
- 纯前端实现,浏览器打开即可游玩
- 关卡与 Mod 体系开放,社区可扩展
- 代码结构清晰,适合学习 JS 游戏开发
缺点
- 需要一定 JavaScript 基础,否则容易卡关
- 本地运行需自行搭建静态服务器
- 音乐与代码采用双许可,商用需联系作者
- 部分关卡难度较高,提示较少
项目简介
Untrusted(全名 Untrusted —or— the Continuing Adventures of Dr. Eval)是一款由 Alex Nisnevich 与 Greg Shuflin 制作的「元 JavaScript」冒险解谜游戏。你将操控勇敢的 Dr. Eval,在神秘的机器迷宫中,仅凭一台电脑和 JavaScript 图灵完备的力量,直接改写现实来寻找自由。
游戏的核心机制非常特别:每一关都会在控制台窗口中展示生成该关卡的 JavaScript 代码,而关卡在初始状态下是无法通关的。你需要编辑并重新执行这些代码,打开通往下一关的道路。
玩法特色
- 代码即关卡:地图、敌人、门与钥匙都由 JS 代码生成,改代码就是改世界。
- 受限编辑:大部分代码被锁定,只能修改允许编辑的片段,考验对代码逻辑的理解。
- 类 Rogue 环境:带有随机与探索元素的关卡布局。
- 渐进式教学:随着关卡推进,逐步引入新的可用命令与语法能力。
技术实现
项目为纯前端 JavaScript 应用,主要依赖:
- rot.js:用于 Rogue 风格的地图与显示。
- CodeMirror:提供浏览器内的代码编辑器。
关卡文件采用自定义的 .jsx 格式,通过特殊标记区分可编辑区域,例如:
#BEGIN_EDITABLE#
// 玩家可以修改这里的代码
#END_EDITABLE#
本地运行与开发
项目使用 make 构建脚本合并源码:
make # 合并 JS 到 scripts/build/untrusted.js,开启调试功能
make release # 合并并压缩为 untrusted.min.js,关闭调试功能
由于浏览器的跨域限制,本地游玩需要启动一个静态服务器:
npm install http-server
make runlocal
还可以在 mods 目录中构建自己的 Mod:
make mod=example_mod
贡献关卡
想添加新关卡,可在 levels/bonus 目录创建 .jsx 文件,并把文件名加入 game.js 中的 bonusLevels 数组。若引入了新的玩家命令,记得同步更新 reference.js。
许可说明
项目采用双许可模式:
- 游戏本体与原声带基于 CC-BY-NC-SA 3.0,允许非商业使用与修改,需署名并以相同协议共享。
- 不含音乐部分的代码可申请商业许可,需联系作者。
适合谁
如果你喜欢解谜、想通过有趣的方式练习 JavaScript 阅读与调试,或者对「代码即游戏规则」这类元编程创意感兴趣,Untrusted 值得一试。
评论
- 暂无评论,来写第一条吧。