Braid - 一个发人深思的游戏

我已经很久很久没有打游戏了(如果不算 Angry Birds 之类用来打发时间的游戏的话)。我的最后一个真正意义上的游戏机,是 PlayStation 1。在那上面,我真正欣赏的最后一个游戏,是 [Metal Gear Solid (1)]。

我曾经是一个游戏迷,可是进入了计算机专业的学习之后,我就开始失去对游戏的兴趣,基本上每玩一个都让我失望一次,不管别人把它吹的多么“经典”。不知道为什么,别人玩得津津有味的游戏,我玩一会儿就把它里面的“公式”都看透了。我清楚地知道这游戏的设计者是怎么在“耍我”,在如何想方设法浪费我的时间。同样的,别人看得津津有味的小说和电影,我经常一看开头就能猜到它要怎么发展,以至于一路猜到结局,索然无味。所以我基本上不去影院看最新的电影。我宁愿在网上看一些几十年前的老电影。我貌似只喜欢那些能让我“猜不透”的东西。

Braid,就是这样一个让我没猜得透的游戏。

这是一个同事推荐的。本来已经对电玩完全失望的我,破例的从 App Store 买了来。玩过之后觉得真的很不错,有一种所谓的“mind blowing”的感觉。以至于我花了两整天时间,废寝忘食,把它给打通关了。

Braid 的主体结构,和最古老的“超级玛丽”没什么两样。一个小人,可以跑,可以跳。一些小怪物,跑来跑去的。你可以跳起来踩它们。

最终的目标,是收集到所有的拼图,然后把它们组合成图片。组合图片是很容易的事情。游戏的难度其实在于如何拿到这些拼图。它们有可能被挂在很高的地方,或者被门挡住。

可是这有什么值得一提的呢?这游戏很不一样的地方是,它给你提供了几种绝无仅有的“超能力”,而且把它们与谜题结合得几乎天衣无缝。

你有三种超能力:

  1. 逆转时间的能力

在任何时候按下 Shift 键,游戏的时间就会逆转,“undo”之前的所有动作。即使你死了,都是可以复活的。死去的小怪物们也会复活。可是就算这样,有些拼图还是很难拿到。

值得一提的是,时间逆转的时候,画面是流畅无缺损的,连爆炸场面都会“收缩”。更令人赞叹的是,游戏的背景音乐也会同步逆转。如果在时间逆转的时候按“上”,“下”键,就可以调整时间“快退”和“快进”的速度。当然,此时的场景就像录像机在快退或者快进。

  1. 产生“多重现实”的能力

在某些章节,你可以实现“多重现实”。做一个动作,然后按 Shift 键让时间逆转,当你停止逆转的时候,你的影子就会开始“redo”刚才的那段“历史”。而这个时候你可以做一些不同于以前的事情。这就好像有两个世界,一新一旧,从“历史的分叉点”开始,同步交汇。

你必须掌握好时间才能跟影子合作,因为影子的行动速度是不受你的“现场控制”的,它只是按部就班的重演你 undo 掉的历史。

  1. 扭曲时间的指环

在某些章节,你会有机会使用一个魔法指环。把这个指环放在地上之后,它会在附近的球状空间中形成时间的“扭曲”。这有点像黑洞的原理。越是靠近指环的位置,时间流动越慢。而当你远离指环,时间就逐渐恢复正常。指环的巧妙使用,是解决这些章节谜题的关键。

同样的,音乐与指环的特异功能是完美配合的。当你靠近指环的时候,背景音乐就会出现相应程度的扭曲。有点像录音机卡带的感觉 :)

在解决了所有的谜题之后,我回味了一下,自己为什么欣赏 Braid。这也许是因为它符合一个优秀的,非低级趣味的游戏设计:屈指可数的简单规则,却可以组合起来,制造出许许多多的变化。

你只有3种超能力,但是如何利用和“组合”这些超能力,却形成了解决谜题的关键。有些题目很有点难度,以至于你会希望有第4种超能力出现,或者希望捡到别的什么“法宝”。可是它们是不存在的。你必须使用那仅有的3种能力,加上巧妙的思索,细心的观察,才能达到目的。在解决了一个很难的谜题之后,你往往会一拍脑袋:哇,我怎么一开头没想到!

【转】Braid - 一个发人深思的游戏的更多相关文章

  1. 如何建立一个完整的游戏AI

    http://blog.friskit.me/2012/04/how-to-build-a-perfect-game-ai/ 人工智能(Artificial Intelligence)在游戏中使用已经 ...

  2. 在code.org上自己写一个flappy bird游戏

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在code.org上自己写一个flappy bird游戏.

  3. [译]终极塔防——运用HTML5从头创建一个塔防游戏

    翻译共享一篇CodeProject的高星力作,原文地址:http://www.codeproject.com/Articles/737238/Ultimate-Tower-Defense 下载演示项目 ...

  4. Cocos2d-x-Lua 开发一个简单的游戏(记数字步进白色块状)

    Cocos2d-x-Lua 开发一个简单的游戏(记数字步进白色块状) 本篇博客来给大家介绍怎样使用Lua这门语言来开发一个简单的小游戏-记数字踩白块. 游戏的流程是这种:在界面上生成5个数1~5字并显 ...

  5. 用Python设计一个经典小游戏

    这是关于Python的第9篇文章,介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习 ...

  6. JavaScript一个猜数字游戏

    效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载 ...

  7. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  8. 5、使用Libgdx设计一个简单的游戏------雨滴

    (原文:http://www.libgdx.cn/topic/49/5-%E4%BD%BF%E7%94%A8libgdx%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E7% ...

  9. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

随机推荐

  1. 曾经的超级明星类库jQuery未来也许不再会被前端程序猿追捧了!

    作为火了十多年的老牌明星类库jQuery, 相信做前端的小伙伴肯定都或多或少的使用和追捧过,当然我也不例外, 作为第一个学习的js类库,我曾经也觉得它是真正的唯一, 帮助你处理恶心的浏览器CSS/JS ...

  2. log4j.xml写入数据库,只有SQL和参数,无其他信息

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SY ...

  3. 获取oracle 随机数

    http://www.cnblogs.com/lgzslf/archive/2008/11/29/1343685.html select substr(dbms_random.random,2,2) ...

  4. Android studio 将 Module 打包成 Jar 包

    整理记录 AndroidStudio 把一个 module 项目打包成 jar 包. 一.默认自动生成的 jar 包 众所周知 android studio 会在library所依赖的 app运行 或 ...

  5. 树莓派通过GPIO控制步进电机

    一.接线方式与GPIO调用方法: 电源接入+5v和GND In1-4分别接GPIO1-4 正转时,GPIO1-4分次传入:[1,0,0,0],[sleep],[0,1,0,0],[sleep],[0, ...

  6. github使用入门

    连接地址 github使用入门 连接地址: https://zhuanlan.zhihu.com/p/21193604?refer=passer

  7. Python标准库:内置函数bytes([source[, encoding[, errors]]])

    返回一个新的数组对象,这个数组对象不能对数组元素进行改动.每一个元素值范围: 0 <= x < 256.bytes函数与bytearray函数主要差别是bytes函数产生的对象的元素不能改 ...

  8. excel查找和替换

    快捷键:ctrl+f或者ctrl+h组合键 1.该功能经常会用到,但是需要注意的是“选项”功能,可以确定查找范围,区分大小写等. 2.如何控制查找范围? 1)设置范围--确定是查找工作表还是工作薄,同 ...

  9. 利用组策略API 编辑GPO(Group Policy Object)

    用windows自带的GPO Editor编辑修改,然后利用注册表监控器regFromApp监视注册表的改动,就知道某个策略修改了注册表的哪个字段了. 下面是禁止U盘访问的例子:   #include ...

  10. 【centos6】给php命令设置全局变量三种方式

    方法一:直接运行命令export PATH=$PATH:/usr/local/webserver/php/bin 和 export PATH=$PATH:/usr/local/webserver/my ...