一意孤行,也叫做 Dr. Eval 大冒险 是一个由 JavaScript 驱动的、刺激的冒险游戏。在游戏中,你需要利用一台可以信任的电脑和 JavaScript 的图灵完备能力,引导无畏和坚强的 Dr. Eval 穿越神秘的主机时空带。为了追求自由,他必须挑战现实!你需要在浏览器中编辑并执行游戏中的每个 JavaScript,将 Dr. Eval 从黑暗且混乱的现实中拯救出来!
你要在一个类似文字版龙与地下城的界面和一个控制台中进行游戏。每个关卡控制台都会生成一些 JavaScript 代码。所有关卡在开始的时候,都无法顺利通过,而多数 JavaScript 是不能编辑的。使用有限的工具,打开通向下一关的道路,极为具有挑战。
执行
make
会合并 JavaScript 文件到 scripts/build/untrusted.js
中(并且开启 Debug 模式)。
make release
会合并并且优化 JavaScript 文件到 scripts/build/untrusted.min.js
中(并且关闭 Debug 模式)。
在本地运行游戏,你需要为 index.html
建立一个本地服务器(由于 Access-Control-Allow-Origin 的限制,这个步骤不能省略)。
如果你还没有安装 http-server的话,首先需要:
sudo npm install http-server
然后执行:
make runlocal
构建在 mods
目录中的第三方 mod:
make mod=example_mod
在 /levels/bonus 中创建新的 jsx 文件,并且将该文件名添加到 game.js 中的 bonusLevels
数组里可以创建新的关卡。
如果需要添加任何新的命令让玩家使用,请确保它们都被添加到了 reference.js
中。
jsx 与一般的 JavaScript 文件类似,不过有一些扩展语法:
#BEGIN_EDITABLE#
和#END_EDITABLE#
包裹那些可以编辑的行#{#
和#}#
包裹可以编辑的片段(一行中的某部分)#BEGIN_PROPERTIES#
和#END_PROPERTIES#
在文件的开始封装了属性对象。可用的属性包括:commandsIntroduced
:关卡中引入的新命令的数组(参阅reference.js
)mapProperties
:可以包含以下任意内容:allowOverwrite
:如果为 true,允许其他对象重写竞态对象keyDelay
:指定了玩家按键之间的延迟,单位是毫秒(默认:0)quickValidateCallback
:为了保险期间加速回调方法的验证(对于拥有大量动态对象的关卡十分有用)refreshRate
:关卡的刷新时间,单位是毫秒(为了能正常工作,需要动态对象有interval
属性)showDrawingCanvas
:如果为 true,显示画布重绘区域showDummyDom
:如果为 ture,一个虚拟的 DOM 将会代替原有的地图进行显示
music
:关卡的背景音乐的名称(参阅music.js
)startingMessage
:在关卡开始的时候显示在屏幕下方的消息(如果有的话)version
:当更新了关卡以后需要增加版本
#START_OF_START_LEVEL#
和#END_OF_START_LEVEL#
应当分别是startLevel
方法的首行和末行
[待补充]
一意孤行是由 Alex Nisnevich 和 Greg Shuflin 开发的游戏。 汉化工作由 mikespook 完成。
我们要感谢:
- Dmitry Mazin 帮助设计和实现多行编辑器
- Jordan Arnesen 协助测试并设计了关卡 #17
- Natasha Hull-Richter 协助进行了大量的测试,以及对关卡设计给与的支持
- Alex Bolotov、Colin Curtin、Conrad Irwin、Devin C-R、Eugene Evans、Gilbert Hsyu、Jacob Nisnevich、James Silvey、Jason Jiang、Jimmy Hack、Philip Shao、Ryan Fitzgerald、Stephen Liu、Yayoi Ukai 和 Yuval Gnessin 协助测试并给与反馈
- Ondřej Žára 和他的 rot.js 库
- Marijn Haverbeke 和他的 CodeMirror 库
- Brian Harvey 允许我们在关卡 #19 使用了他的肖像
你可以在这里听到完整的音效.
一意孤行中出现的音乐,按照顺序有
- "绿之韵" - Jonathan Holliday (授权使用)
- "德米特里小事 #2" - Dmitry Mazin (为一意孤行撰写)
- "朦胧领域" - Revolution Void (CC-BY-NC-SA)
- "将至" - Fex (公共领域)
- "罪恶密布" - iNTRICATE (授权使用)
- "动态规则" - Dmitry Mazin (为一意孤行撰写)
- "Y" - Tortue Super Sonic (CC-BY-NC-SA)
- "猫头鹰" - Broke for Free (CC-BY)
- "永恒的呼唤" - Sycamore Drive (CC-BY-NC-SA)
- "来找我 - B 调混音" - Eric Skiff (CC-BY)
- "阴谋" - Mike and Alan (授权使用)
- "混乱" - RoccoW (CC-BY)
- "寻觅" - Eric Skiff (CC-BY)
- "芯之畏惧" - That Andy Guy (授权使用)
- "六十8" - Obsibilo (CC-BY-NC-SA)
- "午夜酸果(1、2 部)" - BLEO feat KeFF (CC-BY-NC-SA)
- "沙滩婚礼舞" - Rolemusic (CC-BY-NC-SA)
- "大王寻山 1" - Essa (免费使用)
- "厄运" - Seropard (免费使用)
- "风暴" - Obsibilo (CC-BY-NC-SA)
- "布里斯林科小路" - Vernon Lenoir (CC-BY-NC-SA),基于 Ary Barroso 的 "Aquarela do Brazil"
使用双许可证授权。
-
一意孤行以及一意孤行音效在 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License (CC-BY-NC-SA 3.0) 下授权。换句话说,建立在信任的基础上,你可以自由的使用、修改一意孤行用于非商业用途,而相关工作同样也需要在 CC-BY-NC-SA 授权下。
-
作为补充,一意孤行 没有音效 的代码需要进行商业授权。也就是说,在商业用途中使用一意孤行需要一些条款,并保证你不会使用任何相关音乐。请与我们联系了解更多信息。
-
一意孤行中文版将遵守英文版的许可证协议,请与我们联系了解更多信息。