写点什么

基于 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:073234

评论

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

同城双活与异地多活架构分析

vivo互联网技术

架构 高可用 架构设计 高可用系统的架构

一定要写点什么?!

基于electron桌面级脚手架的设计

久违

设计 大前端 全栈

将DevOps视为哲学——实施DevOps的绝佳方式

禅道项目管理

DevOps 测试 开发 持续交付

碰撞率下降75%!Mobileye与所托瑞安宣布双方合作重大进展

最新动态

案例解析丨Spark Hive自定义函数应用

华为云开发者联盟

spark UDF

中国云计算的云栖“坐标”

脑极体

看动画学算法之:排序-快速排序

程序那些事

排序 快速排序 数据结构和算法 看动画学算法

从linux源码看epoll

无毁的湖光

Linux TCP Linux Kenel

Docker映射详解,没问题了!

程序员的时光

Docker

想学习数据结构和算法,推荐给你 10 本优质书单

沉默王二

数据结构 算法 书单推荐

实践案例丨基于Raft协议的分布式数据库系统应用

华为云开发者联盟

raft 华为云

Python中的with是测试常用到的资源打开利器

陈磊@Criss

程序员快乐器之JAVA代码生成工具

Philips

敏捷开发 程序设计 软件架构 开发工具

5分钟带你掌握Makefile分析

华为云开发者联盟

makefile 脚本

记一次node项目重构改进

华为云开发者联盟

Java 项目 方案

TNFE-Weekly[第七十二周已更新]

莹姐🙈

小程序 大前端 周刊

不想码代码,你还能做什么?(一)

研发管理Jojo

项目管理 技术管理 PMO

东方证券企业架构之技术架构转型实践

BoCloud博云

云计算 容器 微服务 PaaS 博云

使用Valgrind调试Linux C++程序

Simon

c++ gdb Valgrind memcheck 内存泄漏

docker 安装consul

云辰

USDT承兑商支付系统搭建,区块链支付平台开发

什么是云服务器,ECS它能干什么?

德胜网络-阳

区块链永续合约交易所搭建,永续合约系统开发

图计算黑科技:打开中文词嵌入训练实践新模式

腾讯云大数据

大数据

java中实现List集合中对象元素按其属性的中文拼音排序

云辰

创建spring boot starter

曾彪彪

Java spring Boot Starter

中途转行学Java,如何赛过科班生?你只需要做到这几点

小Q

Java 程序员 架构 技术 基础

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Learun

敏捷开发 软件开发

【写作群星榜】9.1~9.13写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 文章

LeetCode题解:1. 两数之和,Map+队列+双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

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