HTML5游戏遇阻之后,大家又是怎样的反应?

HTML5游戏遇阻之后,大家又是怎样的反应?

《程序员》:大家都看到了HTML5的好处,那么HTML5游戏遇到障碍后大家的反应如何呢?

罗志宇:分三种情况。 第一种是最常见的,就是观望,等待整个行业改善后再继续跟进。 第二种是基于现状的妥协,比如不做重度网游,只做休闲游戏; 不做Android版本,只做iOS版本。 因为在性能方面,苹果拥有所有厂商中最好的图形,这反过来可以抵消一些浏览器游戏显示能力的短板。 三是毫不妥协,积极寻求可行方案。 这类团队认为,他们在HTML5游戏上花费了大量的精力,并且取得了一些成功。 他们不想在用户体验上妥协,所以想寻求突破。 在这一点上,他们制作Sphinx的初衷与OPEN非常吻合。

《程序员》:所以你想到了制作Sphinx?

推荐引擎架构_引擎构筑在桌游里什么意思_游戏引擎架构在线阅读

罗志宇:可以这么说。 我们的出发点非常简单。 作为浏览器平台厂商,自然要做HTML5。 如果游戏厂商想要使用HTML5但又失望的话,该平台很容易衰落。 所以我们要解决HTML5游戏的问题。

经过分析,我们发现HTML5性能瓶颈的主要原因是HTML5与底层硬件之间存在一个浏览器,而浏览器的首要任务是显示网页,而不是游戏。

由于我有渲染技术背景,所以我很清楚游戏通常会卡在两个地方:一是CPU性能,二是GPU性能。 CPU性能大部分是通过JavaScript发挥出来的,想要真正显着提升游戏性能,就必须充分利用GPU性能。

引擎构筑在桌游里什么意思_游戏引擎架构在线阅读_推荐引擎架构

其实早在2007年,当我还在Opera总部时,我就验证过Sphinx引擎相关的渲染技术。 第一个版本用于Opera移动浏览器,Sphinx是第二个版本。 由于渲染技术显着提升了浏览器性能,因此 Opera Mobile 9 直接从 Opera Mobile 10 跳过,发布了 Opera Mobile 11。 同时期的浏览器在滚动页面时会出现马赛克般的方块,然后慢慢地清晰地填充它们。 不过,采用渲染技术的Opera Mobile 11没有马赛克。 这可以说是硬件加速方面的首次尝试。 因此,Sphinx的发展并不是一朝一夕的事情程序开发,经历了长期的技术沉淀。

《程序员》:Sphinx的架构是怎样的? 为什么叫全硬件加速引擎呢?

罗志宇:一开始我们以为JavaScript引擎会有很多问题,但后来发现好像没有那么多。 更多的原因是开发者本身没有做好优化工作。 只要进行优化,帧率可以从10帧提高到35帧。 但如果想从35帧提高到70帧,就得改进渲染引擎。

引擎构筑在桌游里什么意思_推荐引擎架构_游戏引擎架构在线阅读

过去,网页渲染引擎偏向于文本渲染精度,经常出现网格对齐等问题。 游戏更多的是速度。 因此,这两种渲染引擎的架构是完全不同的。 在Sphinx中,整个浏览器分为前端和后端。 前端主要执行页面、JavaScript和CSS,后端是严肃的图形渲染引擎。 因此游戏引擎架构在线阅读,Sphinx的结构非常简单,就是一个标准的HTML5前端加上强大的游戏级图形渲染引擎。

说起来容易,但做起来却不那么容易。 因为之前的图形引擎不是为游戏设计的,所以我们要做的狮身人面像要复杂得多,需要非常精确的调整。 事实上,硬件加速GPU的演变只与游戏有关。 整个GPU最初是为游戏而发明的。 游戏和GPU是一个相互促进、共同进化的过程。 所以,游戏引擎对GPU的使用是最狠、最恰当的。 整个过程中,游戏引擎和图形引擎是最好的。 浏览器很晚才开始使用GPU,因此无法产生游戏引擎的效果。 我们所做的就是把游戏引擎的所有设计模式和工作方法放到浏览器中,打造一个真正的全硬件加速的游戏引擎Sphinx。

《程序员》:Sphinx研发团队是如何组建的?

引擎构筑在桌游里什么意思_游戏引擎架构在线阅读_推荐引擎架构

罗志宇:这个团队很小硬件设备,只有9个人。 他们曾经为联发科定制浏览器。 因为内核非常复杂,人越多,通信成本就越高,迭代速度就会降低。 我们通常会梳理整个系统框架和原型,然后根据工作量考虑人员调整。 如果从一开始就有很多黑暗,每个人都会不知道自己要做什么,甚至会议也会变得像打酱油一样。

OPEN的工程师是一群奇怪的人。 我们对它们没有任何特殊要求,但它们都是通用的。 我们不会给每个人贴上固定的标签,因为一旦被贴上,就会极大地限制他的职业发展或者知识。 在同一客户内,所有工作都是交织在一起的。

《程序员》:Sphinx的开发过程中遇到了哪些困难?

游戏引擎架构在线阅读_推荐引擎架构_引擎构筑在桌游里什么意思

罗志宇:Sphinx的研发是一个大工程。 为了保证每个环节的正确性,我们在技术和人员方面做了大量的工作。

在技​​术层面上,为了确定插入游戏渲染引擎的东西是否会破坏浏览器的整体性能,我们在内部进行了大量的回归测试。 整个 Opera 有 140,000 个测试用例,每次更改都重新运行。

在人类层面上,我们面临的挑战更大。 由于他们是一个全新的团队,对于打造如此高性能的游戏引擎并没有信心,反而很容易满足于小小的成就。 为了解决这个问题,我会给他们设定一个理性的、高远的目标,然后推动他们挑战自我。 这个过程经历了两大困难。 首先,项目初期,游戏渲染帧数大多在10帧以下。 当时,大家都很沮丧。 他们只会选择一款游戏,如果它提高了 5 到 6 帧,他们就会很高兴。 后来我说我们不要追求这种表面的东西。 我们应该从结构上分析问题出在哪里游戏引擎架构在线阅读,保证整个结构在逻辑上、数学上是合理的。 这个循环使他们能够设定自己的路线并继续前进。 其次,Sphinx beta版本正式发布。 众人都松了口气,感觉前途一片光明。 随后,2013年4月,《三国在线》制作人张哲带着一款新游戏《步江湖》来了。 运行后只有10帧! 大家都很郁闷,一系列问题浮现出来——GC和渲染合并算法有问题。 考虑到我之前确实目光短浅,所以我告诉他们现阶段能做什么,我们会长期讨论如何解决这个结构中的这些问题。 经过努力,我们终于将《不江湖》提升到了70帧,即使在普通浏览器上也能达到30帧以上。

一般来说,开发Sphinx是一个自然的过程,因为工程师喜欢这种更高级的东西,享受成就感。

文章来源:http://g.pconline.com.cn/x/354/3543196.html