Seize the Day
从《Dear Esther》和《Journey》看当今游戏发展
标题: 从《Dear Esther》和《Journey》看当今游戏发展 译者: 游戏邦
原文: Visioning games – what we can learn from games like Dear Esther and Journey 作者: Adrian Tingstad Husby
这是一篇转载的文章,已获得译者许可。原文发表于2012年5月8日,前段时间体验完Dear Esther,无意中看到了这篇译文,恰巧 Journey被评为IGN 2012年度最佳游戏。文章讲得很有道理,“除了少数一些例外,大多数游戏都只是围绕着一些幼稚的故事和呆板的竞争游戏机制展开。”
游戏所具有的程序,互动和(潜在的)非线型属性让它们能够更好地处理一些人类心智问题(比起其它静态且线型媒体来说)。但是通常情况下,因为游戏总是会受到一些条条框框和人们无尽期望的束缚,所以很难体现出同等艺术媒体所具有的情感或故事。
我既是一名游戏玩家也是游戏开发者,但是纵观今天的游戏,我们看到的却只是一些“有趣的”骗人玩意儿。除了少数一些例外,大多数游戏都只是围绕着一些幼稚的故事和呆板的竞争游戏机制展开。引用Scott Brodie的话来说就是“比起其它受欢迎的艺术形式,游戏产业从整体来看显得更加平庸与幼稚。”尽管觉得遗憾,但是我真的非常同意Scott的说法。
我认为我们有必要在此讨论一些重要的问题。即是否能够创造一款不是通过进度条或高分而推动奖励的电子游戏?这是一种与趣味情感相互协调的机制,但是它们是否能够与其它复杂且相对严肃的情感结合在一起?是否正是因为玩家对于外部奖励的狂热追求才促使游戏区别于浪漫的戏剧和纪录片?
最近我到gameosphere网站玩了《Journey》和新版的《Dear Esther》,并发现这两款游戏在设计方面有许多共同点。这些共同点都遵循着一种发展趋势——尽管都是基于独立场景而言。我个人认为这类型的游戏不仅能够让我对未来的游戏媒体发展充满期待,同时它们也完美地体现出我对于游戏的一些想法。
真心希望当前的游戏领域现状能够发生改变。而我们也同时在当前的游戏身上找到了许多值得讨论和学习之处。
Less is more : Dear Esther 简评
Less is more,是现代主义建筑大师路德维希·密斯·凡德罗提倡简单,反对过度装饰的设计理念,也是极简主义的经典表述。在AAA级游戏制作成本及规模不断攀升的同时,一些独立游戏开发者则朝着这个方向发展,简约的风格带来一种与众不同的清新和震撼。
Dear Esther 由独立游戏工作室 The Chinese Room [室] 制作, 起初是作为Source引擎的Mod作品在2008年发布,2012年在Steam平台发售商业版。游戏没有复杂的操作,玩家所能做的只有前后左右(WSAD) 和放大(Zoom),采用Source引擎,游戏画面渲染的很不错,诸如水面的反射,水流的折射等物理效果让人印象深刻。简单的操作,极少的交互凸显了叙事的重要性,让整个游戏的情节成为了该游戏的核心。
游戏以一个废弃的海岛为场景,玩家可自由探索地区,并在途中某些地点触发画外音。叙述者自称“我”,即主角,也可指代为玩家自己。言语多以 “Dear Esther”开始,很像书信的开头,内容都是主角写给Esther的信件节选。玩家通过不断地探索来获得更多的叙述,以及结合游戏场景中的物件,从而获得零星的故事片段。随着探索区域的逐渐深入,获得的线索也越来越多,原本散乱的记忆拼图最终成为了一个整体。
…Flash Player 11.5 Beta & AIR 3.5 Beta 特性
在 Flash Player 中显示GIF动画
之前遇到这个需求,本人坚持”不重复发明轮子”的原则,弘扬”积极的偷懒不算偷懒”的精神,找到了两个解决方案。因为之前研究了GIF格式和LWZ算法,所以理解起来,没有太大的问题。
方案一:as3gif
作者:Thibault Imbert 项目地址:http://code.google.com/p/as3gif/
2007年Thibault 在他的Blog里介绍了这个方法,从java GIF encoder 移植而来,可以实现gif的编码、解码和显示。调用也很简单,代码如下:
// we create the GIFPlayer, it plays automatically by default
var myGIFPlayer:GIFPlayer = new GIFPlayer();
// we show it
addChild ( myGIFPlayer );
// we load a gif file
myGIFPlayer.load ( new URLRequest ("animation.gif") );
// you can also load any valid GIF stream (ByteArray) with the loadBytes method (version 0.2)
myGIFPlayer.loadBytes ( gifStream );
// listen for the IOErrorEvent.IO_ERROR event, dispatched when the GIF fails to load
myGIFPlayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );
// listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded
myGIFPlayer.addEventListener ( GIFPlayerEvent.COMPLETE, onCompleteGIFLoad );
// listen for the FrameEvent.FRAME_RENDERED event, dispatched when a GIF frame is rendered on screen
myGIFPlayer.addEventListener ( FrameEvent.FRAME_RENDERED, onFrameRendered );
// listen for the FileTypeEvent.INVALID event, dispatched when an invalid file is loaded
myGIFPlayer.addEventListener ( FileTypeEvent.INVALID, onInvalidFileLoaded );
// get total frames
myGIFPlayer.totalFrames;
// standard methods
myGIFPlayer.play();
myGIFPlayer.stop();
myGIFPlayer.gotoAndStop(3);
myGIFPlayer.gotoAndPlay(3);
优点:简单易用,接口丰富,满足一般应用。具备GIF编码类,可将位图数据添加至GIF动画帧中。
缺点:解码和播放的性能不太理想。在加载大的文件时耗时太长,动画帧控制不准确。
…GIF 格式及LZW算法浅析
前段时间得知一个产品需求,需要在Flash Player中显示gif动画图片。虽然Flash支持gif图像的载入,但无法播放动画。
花了不少时间去了解GIF格式,虽然顺利解决了问题,但是知其然也知其所以然,了解了这些知识,对理解编码/解码的过程和解决问题有非常大的帮助。
GIF概述
Graphics Interchange Format(GIF,图形交换格式)是一种位图的图形文件格式,以8位色(即256种颜色)重现真彩色的图像。它实际上是一种压缩文档,采用LZW压缩算法进行编码,有效地减少了图像文件在网络上传输的时间。是目前广泛应用于网络传输的图像格式之一。
GIF主要分为两个版本,即GIF 87a和GIF 89a:
GIF 87a:是在1987年制定的版本; GIF 89a:是在1989年制定的版本。在这个版本中,为GIF文档扩充了图形控制区块、备注、说明、应用程序接口等四个区块,并提供了对透明色和多帧动画的支持。
GIF格式结构
GIF文件由文件头,描述块,彩色表,数据块,扩展块和结束符构成,GIF87a和GIF89a的区别在于:后者较前者增加了扩展块,从功能上看即提供了对透明色和多帧动画的支持。
结构组成
结构如下表所示:
Header | Header | Header |
Logical Screen Descriptor | Screen Descriptor Block | GIF Data Stream |
Global Color Table | Global Color Table(optional) | |
Application Extension | Extension Blocks(optional, repeated) | |
Graphic Control Extension* | ||
… | ||
Image Descriptor | Image Blocks(repeated) | |
Local Color Table | ||
Table Based Image Data | ||
… | Extension Blocks(optional, repeated) | |
Trailer | Trailer | Trailer |
Adobe® ActionScript® Compiler 2.0 (ASC2.0)版本说明
伴随着Flash Builder 4.7 beta的发布,正如Adobe所承诺的那样,新的编译器也浮出水面。全新的编译器到底有哪些改进和新特性,想必是大多数ActionScript开发比较关心的问题。简单翻译了下ASC2.0官方发布说明,希望能对同行们有一点帮助。
如果要了解Flash Builder 4.7,可以参看zrong的这篇文章。
** August 2012 – Adobe® ActionScript® Compiler 2.0 (Build 2.0.0.345083) ** Welcome to the Adobe ActionScript Compiler 2.0 (ASC 2.0) Preview.
ASC 2.0 是一个新的ActionScript® 3.0 (AS3)编译器。相比之前版本更遵循AS3语言规范,编译性能方面有了很大改善。在内存压力下更稳定,并包含一些演示性的优化选项(内联,无用代码删除),这些选项可以有选择地启用。
这个编译器已经包含在刚发布的 Flash Builder® 4.7 预览版中。其单独版本已经同AIR SDK 3.4 一起打包发布。
注意:ASC 2.0支持编译AS3应用,虽然留有熟悉的mxmlc和compc命令行入口,但是不支持Flex应用的编译。
当有更多信息时,该文档可能会不定期更新。
版本说明 – August 2012
- 这是新编译器ASC 2.0 的第一个公开预览版;
- Flash Builder 4.7 and the ASC 2.0 command-line compiler now share the same code model. This avoids duplicate representations of a program and means the IDE has an accurate representation of the language – matching the compiler. (没看懂,不清楚code model,representation的定义)
- 全新多线程架构,支持多文件同时编译,减少编译时间;
- 更佳的常数合并和常数传播带来运行时更佳性能的代码;
- 通过移除不必要的活动记录减少函数开销;
- 包含内联和无用代码删除相关的字节码优化;
- 加入新关键字”goto”,实现AS3的非线性控制流;
- 现在支持SWF 13的LZMA压缩了。
- 新的符号管理系统,意味着包含Flash 和 AIR项目的Flash Builder 4.7 AS工作空间,编译起来应该会快多了;
- fontswf, optimizer,swfdump和swcdepends ,基于ASC 2.0的新版本可以用了;
- Asdoc,fdb的旧版本依然包括在内;
- 字体转码已经从[Embed]语法中移除,现在字体需要先预转码并作为SWF嵌入,可以通过工具(如fontswf或Flash Professional CS6)来完成。
- 源代码中的相对路径([Embed] assets, includes, etc…)将从其包含文件相对解析。要指定一个相对于源文件根目录的路径,需要在你的路径前加”/”;
- 英文编译器错误信息已经翻译成法文,日文,中文,区域取决于JVM的设置,并可以通过 -tools-locale 设置项改写。