游戏加速器加速原理 游戏加速原理是什么



游戏加速器加速原理 游戏加速原理是什么

文章插图
图片:来自平台推荐
本文为:“入微” 2022年微信公开课PRO 小游戏专场 分享实录
分享人:微信公开课讲师 袁梓民
主 题:wasm | 小游戏新运行时能力


大家好 。我是来自微信小游戏的工程师袁梓民,我今天带来的主题是:wasm – 小游戏运行时的新能力 。
今天我的分享会分成两部分 。
第一部分是简单介绍下 WebAssembly 及其在小游戏上的应用场景 。
第二部分是关于 Unity游戏转小游戏和案例分享,这是我们今年投了很多精力做的事情 。
首先我们来看下第一部分:ebAssembly应用场景 。WebAssembly – 小游戏新运行时能力
首先介绍下WebAssembly能力,简称为wasm,这是一个最近几年产生的技术,能将强类型语言如C++/Rust/Golang编译并运行在Web环境 。
这么说有点抽象,那Wasm 具体能够用来做什么呢?Wasm的官网有介绍一些场景:比如将手游的游戏引擎和代码编译成wasm在浏览器里面运行起来,再比如一个游戏里面比较重计算的逻辑用原生实现编译成wasm,而其他模块仍然是js 。
左边这张图里面的坦克游戏就是Unity的一个教程,一个用C#写的游戏不需要重写就可以在浏览器里面跑起来,这也是得益于wasm能力 。
既然wasm这么好而且浏览器里面的支持程度已经比较高了,为了能够让小游戏拥有更丰富的技术选型,我们也支持了wasm能力,对齐wasm标准但会多一些限制,比如只能执行代码包内的wasm 。
我们统计过,小游戏内的wasm计算能力是js的3倍,这意味着一些计算逻辑比较重的的模块可以尝试改造成wasm实现会更加高效和安全性、性能,更重要的是,除了已有的H5游戏引擎,现在我们可以尝试将一些手游也通过wasm技术导出适配到小游戏里面了 。
我们来看一些应用场景:首先是物理引擎加速 。
在游戏里面,物理引擎是比较常见并且是纯运算的模块,因此我们尝试将wasm版本的物理引擎在小游戏内运行起来并且用不同的引擎分别构建测试相似的测试用例,测试结果令人惊喜 。
在没有JIT的iOS下,物理计算的性能有7倍以上的性能提升,这意味着,很多使用物理特性的休闲2D、3D小游戏都能够享受wasm版本物理引擎带来的性能收益 。
更重要的是,我们发现像Cocos和Laya等游戏引擎已经适配了小游戏的wasm能力 。
除了物理引擎,我来看一下更生动的例子,这里有两个视频:(播放视频)
右边是App运行的时候录制的,右边的视频是在小程序运行的时候录制的,差别在于右边的视频左上角有小程序标志性的三个小圆点菜单入口 。
两个视频的运行效果没有什么差别,如果不是小程序的菜单入口,已经是真假难辨了,那么问题是,一个完整的APP 游戏迁移到小程序上,是怎么做到的呢,是不是需要完全重写,如果重写的话是怎么做到体验完全一致的 。这就是我想说的wasm第二个应用场景,一个手游只需要经过简单的改造就可以顺利在小游戏上运行起来 。
大家肯定想问,怎么才能将手游导出到小游戏上运行呢?
这就是我想分享的第二部分,有关Unity转小游戏和相关的案例分享 。首先来看下是怎么做到的:
对Unity游戏而言,从下到上来看,Unity 会依赖操作系统提供的文件系统、网络和渲染等各种能力封装完整的游戏引擎运行时,包括图形渲染、物理引擎、动画和粒子效果等各种,而我们的游戏会依赖Unity 提供的各种能力来实现游戏玩法 。
Unity本身是支持构建成H5小游戏的,它会核心依赖两个能力:


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。