产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

盛大游戏黄炎中——"悍将传世"开发经验谈

  • 2013-01-04
  • 本文字数:3516 字

    阅读完需:约 12 分钟

此文是针对游戏开发领域系列采访中的第三篇,我们会采访到目前游戏开发比较热门的技术和公司来对问题进行解答,问题主要涉及游戏简介、开发中 5 件对的事情、5 件可以改进的事情、美工设计以及开发经验分享等。话题主要涵盖开发、发布、平台、开发工具和创新工具等展开。本文是针对盛大游戏技术团队成员黄炎中的采访,以下是采访的具体内容:

InfoQ:请首先做下自我介绍?

黄炎中:我是黄炎中,从小立志做游戏。曾自主创业。2005 年进入盛大,曾参与《疯狂赛车》,《英雄连》等项目研发。2008 年开始负责页游开发。先后负责《纵横天下》,《传世群英传 Web》版网页游戏的研发工作。目前工作重点在《悍将传世》项目。

InfoQ:盛大游戏的《悍将传世》在市面上很受欢迎,能否对产品理念做一下简单的介绍?

黄炎中:《悍将传世》是从 2011 年下半年开始做的项目。当时的 ARPG 游戏主要分两种,一种是强调 PK 的仿传奇类产品,这类游戏初步实现了 PK 玩法,但是画面相比端游有较大差距。还有一种是强调休闲玩法的 ARPG 游戏,画面比较精美,但是完全没有 PK 的感觉。所以通过市场调研,我们认为《悍将传世》这类可以同时满足两方面需求的页游应该会获得用户的认可。而 Flash 11 的推出,也为实现这一目标提供了底层技术保障。

InfoQ:在游戏的设计和开发过程中,请列举 4 件认为做的对的事情(4 “Rights”,请配以具体事例,分别说明)?

黄炎中:我分享几个重点在做的事情给大家吧。

  1. 在非常早的时候就开始评估 Flash11,做各种技术储备。
    例如游戏开发比较关心的每秒 Fps 是否能够达到 60 以保证流畅性;以及在 Fps 为 60 的状态下,每秒能够绘制多少次多边形。包括使用了 GPU 加速,需要把贴图从内存传输到现存,这个过程中有多少开销,会不会卡等,都属于测试范围。 在前期的时候,测试结果非常不理想,非常卡。一个是 Fps 上不去,或者半途中会突然出现卡顿的情况。这甚至让我们对 Flash11 平台产生了怀疑。经过团队深入研究后发现,虽然用户主动上传到 GPU 的内容渲染起来速度还是可以保证的。但是 Flash 会进行合成操作,也就是把原来非 GPU 的 2D 内容,和 GPU 渲染后的内容进行合成。其过程是先将 2D 内容进行拍照然后作为贴图传输到 GPU 里,再次合成渲染。这个过程造成了几乎 50% 以上的开销,其触发机制几乎是不可控的。

    如果用户的图片上传比较密集的话,最直接的结果就是直接卡个 1、2 秒。导致游戏无法进行。发现这个问题后,我们也找了很多解决方案,在内部机制无法改变的情况下,对游戏能够使用的资源以及加载策略进行了大幅删减和优化。这种情况才得以好转。当然 Flash 11 在后续的几个版本上对此进行了优化,现在的版本已经基本解决这些问题。也幸亏在早些时候就发现了这些问题,否则贸然使用 Flash 11 既是对项目不负责了。

  2. 保持和 Adobe 方面的紧密沟通。
    为了使用 Flash 11,而且当时世面上基本没有可参照的产品,所以为了拿到第一手信息。保持和 Adobe 进行有效沟通是必须的。 Adobe 有一个非常专业的传教士团队。而负责游戏方面马鉴( @7Yue )和黄峻( @Peter )是我的经常联系的。他们非常资深,对 Flash 极其了解。甚至 Flash 里有一部分代码是 7Yue 编写的。我去年底告诉他们决定使用 Flash 11 开发项目。他们非常兴奋,之后我们几乎每 2 周都要电话会议一次。我把我们发现的问题,可以通过这个快速渠道直接反馈给 Adobe,并且尽快加到他们的版本里去。而 Adobe 确认的修改项也会通过他们直接反馈给我。

    有一次我一口气和 Adobe 反应了几个亟待解决的问题,其中有一个就是对 GPU 支持不完整的问题。当时 ATF 格式只支持 DXT1,这个格式是不能带 Alpha 通道的。随后,他们告诉我,很快就能支持 DXT5 了,这是种能够带 Alpha 通道的格式。果然在今年 8 月份发布的 Flash 11.4 版本里就带上了这个功能。Peter 后来说,原来他们早就有这个计划了,但是为了完整测试保证万无一失,所以直到 8 月份才对外公布。这也体现了 Adobe 作为 IT 界巨头,不但小心谨慎而且对游戏开发非常了解,让人非常放心。到现在为止,我们仍然保持着紧密沟通。这也为整个开发过程提供了保障。

  3. 谨慎使用新技术进行产品开发。
    Flash 11 本身是一个网页中的插件,那么做过网页开发的同学都应该知道,兼容性是摆在每个 Web 开发者面前的问题,很有可能在不同的浏览器下面看到的内容是完全不一样的。虽然 Flash 本身已经屏蔽了很多这样的问题,但是数据显示直到 2012 上半年为止,全国仍然有 20% 的玩家无法使用 GPU 加速。各种原因都有,例如某些浏览器捆绑了 Flash 10 的版本,或者浏览器强制无法使用 GPU 加速,或者用户本机显卡过旧导致无法打开 GPU 加速。 对于这种情况,一旦玩家无法使用 GPU 那么就无法正常进行游戏了。出于谨慎考虑,我们利用了以前客户端的经验,在资源流程上修改美术导图工具,原始图片在导出的最后一步分别导出成 Flash 10 的 Png 格式以及 Flash 11 的 ATF 格式。在程序上分成了 Flash 10 版本和 Flash 11 版本。在程序启动的时候检查是否能启动 GPU 加速,如果不行的话,直接使用 Flash 10 的渲染器和 Png 格式。事实上做这样改进虽然工作量几乎翻了一倍,但是挽留到不少用户。

  4. 使用 Monical 不断优化代码,增强游戏运行时的体验。
    Flash 是在 2007 年加入了 Avm2 才能够实现大型项目开发。而到现在为止,Avm 的性能一直为人诟病。但是你真要找到其性能低下的地方,还真不容易。除了要在代码上精心设计,而且需要不断在资源动画上精雕细琢。这是件非常花费时间的事情。 在今年 7 月份,Adobe 发布了全新的调试工具 Monical 能够以图形化的形式精确查看程序运行时的状态,实在是雪中送炭。在早期的测试版本里,最核心的功能,就是能够将 Flash 内部运行的几大块,AS 代码,内存对象使用,Native 代码,GC 机制用颜色进行明确区分。最厉害的还能够在每一帧,对运行了多少代码进行精确评估排序。我们可以直接的定位那些调用次数较多,并且跑的比较慢的代码。在这种机制保证下,程序运行几乎是透明的。大大节省了我们找问题的时间。这个工具目前已经随着 Adobe 的 GAMING Tools 一起打包发布了,并且换了个更时髦的名字 Adobe Scott,强烈推荐大家使用。

InfoQ:请列举在开发过程中,您认为还值得改进或提升的 3 件事情?

黄炎中:Adobe 要把 Flash 打造成互联网的游戏机,那么我认为以下几个事情是必须做的。

  1. 提升 ActionScript 的运行速度
    Flash 和传统游戏相比,AS3 的速度要比 C++ 慢上几乎 1000 倍,这样的速度的运行速度已经严重影响了大型游戏登陆的可能性。目前已经有 C++ 登陆 Flash 的解决方案,比如 FLACC。这得以让一部分传统游戏开发者上 Flash 开发。但是我必须指出的是,目前 Flash 开发者还是希望 AS 能够运行的更快一些。

  2. GPU 方面需要增加对失量图形的支持
    现在矢量图形的渲染,仍然是 CPU 完成的。特别大部分 2D 动画是使用 FlashCS 制作的 SWF 文件尤其需要这个特性。如果能够做到的话,那么不但能借助 GPU 大幅提高游戏流畅性,而且由于内容产生流程的完整,将对产业产生深远影响。我们期待这个功能的尽早实现。

  3. 投入更多资源,做好 Flash 的推广工作
    目前卡在使用 Flash 11 进行游戏开发的问题上,Flash 的市场保有率仍然是头等大事。Flash 一个新版本发布到市场覆盖率达到 60% 有大约 8 个月时间。而达到 90% 以上至少需要 1 年。其中还存在哪些浏览器捆绑 FLASH 老版本的情况出现。这些兼容性问题都会导致游戏运行异常。开发商必须花费更多精力去解决兼容性问题。所以希望 Adobe 尽可能保证 Flash 版本更新后的推送工作。

  4. 走过的弯路
    在最初期的时候,我们本来希望做一个版本,能够解决所有兼容性问题。但前面也说了,Flash 11 的普及率没有我们想象中的那么高,大约比普通页游底 10 来个点。为此,项目组也承受了很大的压力。 经过多次评估之后,我们不得不从头开始把美术导出流水线重新进行改造,一套专门导出 Flash 11 版本的,一套专门给 Flash 10 版本使用的。当用户打开游戏的时候自动检查版本号,并且使用对应的资源。

    转换成 Flash 10 版本后,所有东西都保存在内存中,无法使用显存的任何资源。而原来的内存是不够用的。这个转换工作花费了很长时间。美术制作规范几乎推翻重来,我们不得不把角色进行缩小,因为角色是最吃内存的,每个方向,每个动作,每一个画面,都是相乘的关系,人一多,内存使用直接上升。 所以必须进行调整,此外在策划玩法上也做了一定限制,比如某些战场地图,所有玩家的衣服都是和本行会的服装一致的。这样如果只有 2 个行会进行战斗的话,只要用男女各两套,一共 4 套衣服就可以了。这也是可以分享给大家的经验,以后美术上得悠着点用。

相关内容

访谈:人人游戏高级总监顾雷谈游戏设计与开发

谈谈哥们网的游戏开发理念

2013-01-04 20:302649
用户头像

发布了 156 篇内容, 共 51.2 次阅读, 收获喜欢 7 次。

关注

评论

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

【并发编程的艺术】详解单例模式的实现方式(Java)

程序员架构进阶

设计模式 Java内存模型 七日更 28天写作 2月春节不断更

机器学习·笔记之:Matrices and Vectors

Nydia

第三章:产品解决方案作业

让时间说真话

产品经理

【WOW.js】Animate.css的黄金搭档

德育处主任

CSS 动画 js 28天写作 2月春节不断更

高性能缓存 Caffeine 原理及实战

vivo互联网技术

Java Caffeine 本地缓存

创业失败启示录|样茶里的商机

阿萌

28天写作 创业失败启示录 青城 2月春节不断更

Python 中 sorted 如何自定义比较逻辑

zikcheng

Python sorted cmp

大背景 (28天写作 Day25/28)

mtfelix

28天写作 新能源汽车 新能源革命 碳中和

持续交付

lidaobing

持续交付 28天写作

产品经理训练营作业 02

KingSwim

第三章:产品解决方案作业

让时间说真话

产品经理

图解计算机结构与体系分类!!

冰河

编程 程序员 高并发 计算机结构 操作系统原理

持续进步的不二法宝-PDCA

Ian哥

28天写作

时间约束帮助我写作

Justin

方法论 创意 习惯养成 28天写作

ModelArts AI Gallery与HiLens Kit联合开发丨行人社交距离风险提示Demo

华为云开发者联盟

华为云 modelarts hilens 行人 社交距离

python爬虫入门-通过茅台脚本讲些爬虫知识,应用和价值

大佬sam

Python python 爬虫 2月春节不断更

第五周作业

oooh-la

就算知道了答案,真的会改变吗?「幻想短篇 25/28」

道伟

28天写作

话题讨论|过年回家你带电脑吗?

熊斌

话题讨论 28天写作

安卓开发交流!一线互联网移动架构师筑基必备技能之Java篇,Android岗

欢喜学安卓

android 程序员 面试 移动开发

第三章: 产品解决方案作业

让时间说真话

产品经理 产品经理训练营

史上最清晰的Tarjan算法详解

华为云开发者联盟

算法 静态分析 语法树 Tarjan 数据流

开发质量提升系列:标准模板(中)

罗小龙

最佳实践 方法论 28天写作

产品训练营第二章作业(二)

Arnold

第十周 模块分解作业

简简单单

传统线程同步通信技术

武哥聊编程

Java 多线程 28天写作

不要在nodejs中阻塞event loop

程序那些事

node.js Event 事件循环 程序那些事 nodejs event

第十周 学习总结

简简单单

安卓开发软件有哪些?分析Android未来几年的发展前景,吐血整理

欢喜学安卓

android 程序员 面试 移动开发

云原生动态周报 | Google推出VM Manager

华为云原生团队

Docker 开源 云原生 华为云

OpenAI将k8s扩展至7500个节点以支持机器学习;Graph Diffusion Network提升交通流量预测精度

京东科技开发者

区块链 开源

盛大游戏黄炎中——"悍将传世"开发经验谈_C++_贾国清_InfoQ精选文章