QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

基于 AS3 显示列表的 2D 游戏渲染优化

  • 2012-11-01
  • 本文字数:2153 字

    阅读完需:约 7 分钟

【编者按】《博文共赏》是 InfoQ 中文站新推出的一个专栏,精选来自国内外技术社区和个人博客上的技术文章,让更多的读者朋友受益,本栏目转载的内容都经过原作者授权。文章推荐可以发送邮件到 editors@cn.infoq.com。


9RIA 天地会小编:龚先生您好,这次您在西南游戏开发者大会上的演讲题目是如何快速开发 Flash 2D 横版游戏有关,为什么要单独讲 2D 横版呢?

龚书:现在页游来看,主流还是 2D,其中横版相对来说更受玩家亲睐,移动端也不例外,当然好游戏跟表现形式无关,3D 游戏也越来越多,抛开游戏内容,就表现形式而言,个人认为 2D 游戏还会是主流,既然是主流,作为开发者不论在工作中,还是在生活中都会面对如何做好 2D 游戏这个问题。出于这个考虑,我就选了这个题目。

9RIA 天地会小编:您有丰富的开发经验,在您看来 2D 横版游戏开发核心是什么呢?

龚书:2D 游戏,渲染是一块核心,首选要讲的是使用什么样的渲染模型,大家都知道的 flash 自身的显示列表,当然还有各种位图渲染引擎。选择什么样的引擎非常重要,重要到什么程度呢?我个人认为跟男入行,女嫁郎一样重要(笑)。其实真的就是这么重要,不同的渲染模型,开发者将会准备不同的技术去支撑与扩展。

我这次主要讲的如何就基于显示列表来开发 2D 游戏,很多开发者认为 FlashPlayer 显示列表机制过于“肥胖”导致渲染效率低下,于是各种位图引擎纷来沓至,其设计核心都如出一辙:用一张或者多张 Bitmap 拷贝其他显示资源的像素。实际上位图引擎有诸多缺陷和使用代价,例如:大面积的拷贝像素效率也会下降,有时图形变化,例如旋转、伸缩、变色还不得不使用 draw()、colorTransform() 等方法效率下降更快,没有鼠标事件,需要完善一套显示对象管理机制,其实 adobe 已经做了。还是让我们回过头来看看 adobe 精心设计的“显示列表”机制吧,其实他真的如你所知的那样好用,但是有着你可能不知道的高效!

所以主要会讲到如何优化你的显示列表以及如何混搭使用 BitmapData,在渲染效率上让开发者满意。

9RIA 天地会小编:请您根据在端游页游两个不同产品领域的经验,为开发者们分享一下从端游开发者过渡到页游开发,有哪些方面需要继承和改变?

龚书:端游整个开发流程和工具都是可以沿用的,更多的应该是开发的思路的转变。页游区别于端游的最大的地方就是快,发展快、开发快、用户进入快。市场机会稍纵即逝,因此在最短时间内开发出最适合市场的产品。

9RIA 天地会小编:对于开发 2D 游戏方面,能不能给开发者分享一下经验?

龚书:要开发 2D 游戏有许多东西要讲,比如不论是页游还是端游都非常重要的资源管理,不过这块经验我的朋友张真在去年成都的会议上与大家分享了,这次呢我会着重讲下 2D 游戏开发中其他必不可少的一些技巧吧,例如多图层以及多图层景深,Avatar,动画等机制建立,我想有了这些经验,开发者能够非常快速的开发效率让人满意的 2D 横版游戏。

可能朋友们会觉得这些东西都在做了,也都会做了,讲这个毫无价值,或许吧,但我认为做技术就是事无巨细。你的横版游戏是否能动态管理图层以及分配不同的景深,场景是一段代码还是一个机制?是否在渲染面积大、元素多时一样保证流畅?你的 Avatar 是否从 OOP 设计出发的?是否同样灵活?渲染是否高效?你的动画是否跟你的显示绑得死死的?还是可以动态的去指定?

当然,对于以上的经验,或许我个人也做得并不完美,不过拿出来跟大家探讨,相互学习进步才是目的。

9RIA 天地会小编:开发者或许更关心实战技巧,龚先生能否以自己的作品为例给大家介绍一下整个开发过程?

龚书:我最近的游戏项目是《忍影堂》,是一个类似弹弹堂的游戏,不过有许多创新点,这个游戏是国内首个动漫横版场景游戏,里面有像愤怒小鸟一样的二段技能而且实现了操作零延迟,非常丰富的 Avatar 等等,但最终这个游戏没能存活,我个人创业也因此失败,流云网络也在鲨鱼哥的《发钱狂》旗下,所以我很想跟广大开发者说,会技术跟做游戏还差好大一步呢,需要完善每个细节。

到时候大家看到的是一个业内的技术会议,我们还是谈技术,谈实战,对于实战过程,其实大家可能真的不想关心,经历过的都知道,非常残酷,三天小改一周大改,结合这些实际情况,我会认真的跟大家讲讲如果设计好自己的代码,做到最有勇气的去面对你的策划,不怕“乱来”,策划朋友别误解,没有你们的乱来就不会有打磨光亮的游戏。

9RIA 天地会小编:除了技术之外,龚先生有什么想对开发者说的呢?

龚书:我个人觉得,不论作为游戏开发者还是应用开发者,技术是个问题,也不是问题,矛盾在于你的项目立项取胜点是什么?是表现取胜?那么你可能还真得回头看看自己的技术。如果是内容取胜,或许你可以把技术问题暂时抛开,好好跟你的策划讨论讨论。

大家都说做技术苦,其实大部分原因可能是只看到了技术本身,很多事物只看本质都会枯燥无聊,就例如看书,看文字真的很无聊,但是当你认知到文字带来的信息会给自己增加阅历时,真的是一件很美妙的事情。所以我希望广大技术人员,出去走走看看,多与各行各业的人沟通,多些爱好,你接触的越多,你的技术就越可能改变世界。

要想现场听取龚书演讲并与他深度交流的朋友请参加西南游戏开发者大会,更多关于本次大会的讲师和精彩内容介绍,请关注:西南游戏开发者大会

查看原文:天地行讲师龚书专访——基于 AS3 显示列表的 2D 游戏渲染优化

2012-11-01 13:072837

评论

发布
暂无评论
发现更多内容

2022年汽车智能座舱市场分析

易观分析

汽车 智能座舱

Sophon AutoCV Q&A大放送:如何加速视觉模型生产和落地(上篇)

星环科技

ODC 3.4.0 现已上线,让数据库开发更简单

OceanBase 数据库

如何让用户用好你的在线设计协作工具?帮助中心来解决

Baklib

为企业产品实现随时随地的客户服务

Baklib

产品 企业 客户服务 帮助中心 降低成本

热烈祝贺致欧家居获2022 IDC中国未来企业大奖「未来数字基础架构领军者优秀奖」

OceanBase 数据库

软件测试 | 测试开发 | 记一次connection-reset-by-peer问题定位

测吧(北京)科技有限公司

测试

禅道的Bug管理流程介绍

禅道项目管理

测试 禅道 bug管理

关于iPhone 14 Pro 的灵动岛设计的思考

宇宙之一粟

iphone 思考 设计 9月月更

星环科技发布工业互联网解决方案,场景化赋能制造业转型升级

星环科技

SQL 改写系列十:半连接转内连接

OceanBase 数据库

自动化测试如何区分用例集合

老张

自动化测试 测试用例

5 大核心能力+1 套全局防护策略,星环科技 Defensor 构建企业数据安全护城河

星环科技

星环科技多模型数据统一存储的大数据分布式存储平台方案分享

星环科技

软件测试 | 测试开发 | web自动化测试-文件上传与弹框处理

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Android动态权限详解

测吧(北京)科技有限公司

测试

出海人反脆弱,那些遭遇「刺客」突袭的虐心瞬间

融云 RongCloud

白皮书 程序员、

原生实现异步处理利器 —— Observable

掘金安东尼

前端 9月月更

软件测试 | 测试开发 | 测试人生 | 双非院校,从外包到外企涨薪85%,他的涨薪秘籍全公开

测吧(北京)科技有限公司

测试

JavaScript之面向对象

楠羽

JavaScript 笔记 9月月更

软件测试 | 测试开发 | 测试人生 | 资深外包逆袭大厂测试开发:面试官的“歧视”表情深深刺痛了我

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Real Distributed APEX

测吧(北京)科技有限公司

测试

【9.9-9.16】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

Sophon AutoCV Q&A大放送:如何加速视觉模型生产和落地(下篇)

星环科技

如何做有价值的企业知识管理?

Baklib

创业 知识管理 企业 知识库

软件测试 | 测试开发 | 使用 adb 对 Android 声音控制全面适配

测吧(北京)科技有限公司

测试

设计模式简要介绍

六月的雨在InfoQ

Java 设计模式 单例模式 23种设计模式 9月月更

Elasticsearch安全又双叒叕出问题? 搜索引擎该怎么选

星环科技

高效的知识管理应具备的元素

Baklib

知识管理 高效 知识库

软件测试 | 测试开发 | 前端代码优化小技巧

测吧(北京)科技有限公司

测试

团队难带测试管理太难做?十多位名企测试专家带你成为优秀管理!

测吧(北京)科技有限公司

测试

基于AS3显示列表的2D游戏渲染优化_语言 & 开发_龚书_InfoQ精选文章