AX 爱鲜报

Untrusted 不可信:Dr. Eval 的元编程冒险

一款用 JavaScript 写成的元编程解谜游戏。玩家需在浏览器中直接编辑并重新执行游戏自身的 JS 代码,突破层层看似无解的关卡,帮助 Dr. Eval 逃离机器迷宫。

爱鲜报评分

0.0

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 值得一试。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。