【51CTO外电头条】你是不是想知道为Facebook开发《愤怒的小鸟》的首席Flash程序员究竟是何方神圣?不妨会一会来自《愤怒的小鸟》游戏开发商芬兰Rovio公司的Ville Koskela。他在这篇独家采访中披露了Rovio的开发团队幕后采用的一些开发技巧。
问:Ville,你好!看到Facebook版《愤怒的小鸟》拥有种种新颖而出色的社交功能,真是让人惊叹。
Ville:确实如此!过去的几周忙得不可开交,因为对于像《愤怒的小鸟》这样广受欢迎的品牌,我们确实不得不确保第一个版本极其稳定。
问:这款游戏使用了Flash Player 11中新的Stage3D应用编程接口(API),之前你为这款游戏使用的是哪种2D框架?
Ville:我们现在使用Starling框架,它既提供了界面等Flash显示对象,又提供了相当好的性能。
问:你是Starling直接就拿来使用吗?还是说针对具体的使用场合,对某些方面进行了调整?
Ville::我们一开始使用的初始版Starling的性能不如我们想象的那么好,但是由于它是采用简化的BSD许可证来发行的,所有源文件都随时可供使用,因而我们得以在诸多方面对它进行了优化。我一直在自己的博客中撰写这些优化方面的文章;现在大多数优化包含在最新版的Starling中。Daniel也添加了另外几处调整。
问:软件渲染方面又怎么样?能不能透露几招,以便开发人员可以充分发挥软件渲染的功能?
Ville:从我们的游戏收集而来的性能数据表明,就软件渲染而言,最大帧速率预计只有硬件渲染的三分之一。这意味着,如果你的游戏要求很高的帧速率,那么使用软件渲染时,可能会丢失一些图形细部。就Facebook版本的《愤怒的小鸟》而言,我们现在丢弃了最后面的背景层,还调整了渲染质量,如果游戏使用软件渲染来运行的话。
问:你是否为每一个元素使用不同的图像,或者精灵图(sprite sheet)?为什么?
Ville::我们使用自己实施的精灵图,我们在同一张图上合并尽可能多的精灵:2048×2048像素纹理大小方面的限制允许可以使用多少个精灵,我们就使用多少个精灵。这加快了Stage3D渲染速度,因为之后,共享同一基本纹理的Starling精灵就可以成批渲染。
Ari(Rovio高级Flash程序员)和我在Rovio公司总部
问:你是否把DisplayList元素覆盖到Stage3D上,还是说整个游戏就用Stage3D?如果这样,你覆盖什么?
Ville:只有游戏界本身才使用Stage3D图形。我们决定使用传统的Flash显示对象来开发用户界面的所有元素,因为使用我们的图形设计师们熟悉的Flash集成开发环境(IDE),就很容易为它们赋予动画效果。Flash 11也能很好地处理显示对象覆盖,它们其实并不影响帧速率。
问:你如何处理设备丢失(借助Stage3D来处理)?这是否意味着,如果有人玩游戏时去吃午饭,PC就会锁住屏幕?
Ville:我们为这个事件实施了自己的处理程序,因为Starling本身在默认情况下并不支持。渲染设备丢失后,Context3D的driverInfo字符串就会变成“Disposed”(释放),那样针对每次帧更新,我们就能进行这方面的检查。要是设备丢失了,我们可以立即从渲染返回。当Flash能够创建新的渲染上下文时,就会发送 Event.CONTEXT3D_CREATE事件。我们只要侦听这个事件,然后下一次渲染调用时,对所有当前的纹理及其顶点和索引缓冲器进行重新初始化。幸好,即将发布的Starling版本也可以处理设备丢失问题,那样开发人员再也不需要自行实施这种检查机制了。
问:你能不能对我们讲讲你与Starling结合使用的粒子引擎?
Ville:我们使用的是经过调优的Starling粒子引擎扩展。眼下,它用于“Suft and Turf”这一集中的海浪动画。粒子引擎本身结合了操作脚本代码和基于图形处理器(GPU)的Stage3D渲染。
问:你使用哪种物理引擎?你使用默认的设置还是某些特别的设置?
Ville:与其他所有版本的《愤怒的小鸟》一样,Facebook版《愤怒的小鸟》同样使用Box2D,只是某些方面作了细微调整。
问:你是否用某种代码混淆软件为最终的SWF文件确保安全?
Ville:是的,的确如此。
问:你在开发这款游戏时,是不是要考虑到Facebook的某些独特方面?
Ville:首先,就Flash 11和Stage3D而言,你必须使用窗口模式(wmode)为“direct”,这意味着在一些浏览器上,HTML覆盖会在Flash内容下面可以得到渲染。为了处理这个问题,Facebook提供了javascript API,我们把Flash内容换成了在网页上屏幕截取。我们还想让初始游戏下载的速度尽可能快,以确保用户不至于还没有运行游戏、就关闭了游戏。为此,只有在需要时,我们才为关卡实时下载额外的游戏资产。
问:你总体上觉得Facebook版《愤怒的小鸟》如何?有没有计划为游戏增添新的功能特性?
Ville:我认为,这个项目取得了很大的成功,我们从Adobe和Facebook都得到了大力支持,这给我们的这个项目帮了大忙。在最终用户看来,连初始版都没有太多的软件缺陷(bug);就算那些软件缺陷现在大部分也得到了修复。说到将来,其他的我确实讲不出太多,只能每周至少一两次回过头来关注游戏,看看有没有新的功能。
原文:http://www.flashrealtime.com/interview-angry-birds-rovio-ville-koskela/
【编辑推荐】