写点什么

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

评论

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

毕业总结

孙强

#架构实战营

丰富多彩的管理端—主题功能介绍

中原银行

前端 中原银行 主题 管理端工程

一文掌握 Docker 技术体系

博文视点Broadview

IOS技术分享| ARCallPlus 开源项目(二)

anyRTC开发者

ios 开源 音视频 移动开发 呼叫邀请

为什么 Rust 是 Stack Overflow 最受欢迎语言?

非凸科技

c++ rust 性能 Stack Overflow 内存安全

【直播回顾】OpenHarmony知识赋能第五期第一课——精益开源

OpenHarmony开发者

OpenHarmony 成长计划

资讯|WebRTC M99 更新

网易云信

WebRTC

分享一个JDK批量异步任务工具Completion Service,超好用

华为云开发者联盟

jdk 线程 异步 CompletionService 批量异步任务工具

TiFlash 源码阅读(一) TiFlash 存储层概览

PingCAP

Spring Data MongoDB 使用示例

Java mongodb 4月月更

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

阿里云大数据AI技术

深度学习 nlp 开源技术

得物技术浅谈深入浅出的Redis分布式锁

得物技术

redis 分布式 分布式锁 CAP 一致性

深入微服务-SpringCloud调用组件Feign

janyxe

spring Spring Cloud Feign OpenFegin

vue2.x版本中Object.defineProperty对象属性监听和关联

程序猿布欧

JavaScript Vue vuejs 数据响应式原理 Javascript框架

帮助文档——助客户快速了解您的产品如何使用

小炮

帮助文档

把pinpoint编译环境做成Docker镜像文件

程序员欣宸

4月月更

【建议收藏】整理Golang面试第二篇干货13问

利志分享

golang golang 面试

如何写好B端产品的技术方案?

AI架构师汤师爷

SaaS 架构设计 技术方案 B端产品

基于场景文字的多模态融合的图像分类

华为云开发者联盟

计算机视觉 图像分类 场景文本 图像视觉 多模态融合分析

考试试卷存储方案

小虾米

架构实战营

STM32+华为云IOT制作酒驾监控系统:上车就监控

华为云开发者联盟

mqtt stm32 华为云IoT 酒驾 酒驾监控系统

活动报名|OpenHarmony 战“码”先锋,PR征集令

OpenHarmony开发者

OpenHarmony

TiDB 查询优化及调优系列(二)TiDB 查询计划简介

PingCAP

OpenHarmony技术日全面解读3.1 Release版本 系统基础能力再升级

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release

解析数仓OLAP函数:ROLLUP、CUBE、GROUPING SETS

华为云开发者联盟

Rollup GaussDB(DWS) cube GROUPING SETS OLAP函数

如何完成与龙蜥操作系统的兼容验证,看这里! | 一周动态

OpenAnolis小助手

操作系统 龙蜥社区 一周动态

C语言总结_数组知识

DS小龙哥

4月月更

圈重点!一图读懂OpenHarmony技术日

OpenHarmony开发者

OpenHarmony 技术日

稳定性领导者!阿里云获得信通院多项系统稳定性最高级认证

阿里巴巴云原生

阿里云 云原生 可观测 性能压测 获奖

好的每日站会,应该这么开 | 敏捷开发落地指南

阿里云云效

云计算 阿里云 敏捷开发 研发敏捷 每日站会

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