如果C++引擎和JavaScript做同样的任务,C++很有可能领先于JavaScript。但这里仍提出了一个很有趣的课题:使用“快”的语言(比如C++)并不能保证比“慢”的语言(JavaScript)有更好的性能。
这周,我对电脑进行了系统升级,采用Windows 8操作系统,全新的nVidia GetForce GTX 660显卡。一切就绪后,我进行了性能测试,浏览器是Chrome Canary 25,结果表明 Construct2的WebGL渲染器明显快于Native的C++ DirectX 9——基于Construct Classic引擎开发。
WebGL的测试结果是141911个sprite,而Construct Classic为109280。显然,WebGL比Native快了将近30%。
系统环境配置:Windows 8 RTM(64位)系统、Intel Core i5-2500 @ 3.3GHz (quad core)、8GB RAM、nVidia GeForce GTX 660 (driver v306.97)。然而,此结果并不能在Windows 7上复制,使用AMD Radeon芯片驱动(没有在Windows 8上试过)。WebGL在Firefox 19上却比Native慢很多,而IE根本就不支持WebGL。
这里也有些测试结果表明,WebGL是没有这个能力的,所以,它总是呈现Canvas 2D渲染。这次在Chrome Canary 25上的得分是3821,而之前的结果竟比它快37倍。
为什么会出现如此好的结果?据理解,它可能把WebGL的安全检查交由硬件处理,WebGL的操作规范要求浏览器必须在使用时正确检查所有的缓冲区,而不是在访问前或后。使用长缓冲区来渲染大量的sprites,为了保证安全使用,CPU采用排水作业的方式检查缓冲区。然而,一些GPU厂商可能会在GPU的硬件上检查缓冲区。或许,这仅仅适用于一些特定的OS,在驱动和硬件设备支持的情况下,否则,CPU仍然会做这些检查。这或许就是快的原因吧!
这儿还有另外一个重要原因:WebGL渲染器的设计比Construct Classic系列的C++ DirectX 9更加高效。当使用C++编写时,它的速度很容易降下来,虽然C++速度很快,但这并不表明编写任何C++代码都可以运行很快。当把引擎移到JavaScript上时,在大多数的基准测试中,它要比C++的慢好几倍。这驱使我们更加密切地关注性能并且采取更加明智的整体策略。当对每个精灵进行渲染时,经典的Native引擎会计算顶点位置(对象角落)。在使用collisions engine中已经把所识别的位置信息进行了计算和储藏。这就阻止了Construct 2重新计算——它们只需复制collisions engine中的计算。所以JavaScript只需做很少的事情。这可能会稍微缩小彼此间的差距。
这就解释了为什么只有在特定的环境下,JavaScript引擎才能领先于不那么高效地C++引擎。如果C++引擎和JavaScript做同样的事情,C++很有可能领先于JavaScript。但这里却提出了一个很有趣的课题:使用“快”的语言(比如C++)并不能保证比“慢”的语言(JavaScript)有更好的性能。这也表明会有一些更加灵巧的JavaScript/WebGL渲染引擎会打败Native引擎。这就预示着未来移动端的HTML5游戏也能像Native引擎一样,达到同样的基准测试结果(或者更多!)。
希望这个结论不是什么技术错误或者故障。另一方面,如果该结果是真实的,那么它会让人欣喜若狂的。大多数时候,人们会抱怨把本地游戏移植到HTML5上是多么的慢,那么它很快就会结束!
html5游戏开发,需要学习的技术:
1、HTML5教程
主要学习HTML标签、属性和事件。
2、CSS教程
主要学习使用CSS来控制网页的样式和布局。
3、JavaScript教程
做HTML5开发,主要使用JS语言。所以要学习JS语言。
4、HTML5其它的核心技术
做HTML5开发,可能会用到下面的技术。
(1)WebWorker
可以在浏览器中运行多个JS脚本。可以用于需要后台执行某种耗时工作的场合。
(2)WebSocket
浏览器可以与服务器间双向通信。Socket方式能够大大提高浏览器与服务器间的通信效率。可以用于浏览器与服务器间通信频繁的场合,比如实时聊天。
扩展资料:
HTML5的优点:
新一代网络标准能够让程序通过Web浏览器,消费者从而能够从包括个人电脑、笔记本电脑、智能手机或平板电脑在内的任意终端访问相同的程序和基于云端的信息。
HTML5允许程序通过Web浏览器运行,并且将视频等目前需要插件和其它平台才能使用的多媒体内容也纳入其中,这将使浏览器成为一种通用的平台,用户通过浏览器就能完成任务。此外,消费者还可以访问以远程方式存储在“云”中的各种内容,不受位置和设备的限制。
缺点:
1、开放性带来的困扰
在从前网络平台上存在大量的专利产品,想要实现HTML5技术的大量应用首先就需要将这些专利性的产品变为开放式的产品,由于各种原因,当前面对这一问题还存在许多争议。
以视频格式为例,两大阵营对于视频格式的设置存在争议,一大阵营以苹果为代表,另一大阵营则以Opera、火狐、谷歌为代表。
WPEG阵营是苹果所属阵营,由于其自身全部使用的是这一种格式,所以坚持认为应当将此格式作为标准,而WebM阵营则认为由于WPEG格式的专利依然没有解除,对于HTML5技术要求的开放性没有达标,所以不同意将其作为标准格式。
2、发展的速度有待提升
在HTML5中提出了一些从前HTML技术中不具有的新技术,但是有许多主流浏览器在长时间的发展过程中已经完成了此种技术的开发,在自身浏览器中实现了此种功能,就这一情况来说HTML5的发展速度方面存在一定的问题。
同时由于HTML5的不成熟,当前关于HTML5的相关技术标准还没有完全确定,所以在短时间想要将其投入大规模应用还比较困难。
参考资料:百度百科-html5