游戏引擎能做到一次开发,多平台发布, 比如 android, iOS, H5, 微信小游戏,facebook等。

这些我们叫做跨平台架构,瞬间感觉很NB和高大上。

今天我来给大家分析分析,我们的游戏引擎是怎么做到跨平台的。

游戏引擎的架构一般会分为3个层次:

(1)平台抽象层:

a: 定义几个统一的接口,来接入平台的消息, 比如 mouse, touch, keyboard 等;

b: 每个平台会有一个runtime的环境,调用每个平台的API,来将事件和消息接入到统一的接口里面;

c: 使用opengl, 等跨平台图行库,来绘制游戏画面;

d: 做好封装,框架能调用原生态的函数或接口;

(2) 框架抽象层:

有了平台抽象层,对于平台的API,都是上面定义的统一的几个入口, 事件入口等, 基于这些入口,再来开发游戏场景的框架层,使用游戏引擎特有的管理模式,做好几大模块和API和接口,游戏引擎的常用的模块, 比如:网络模块,声音模块,渲染模块,事件模块,场景管理模块等。那么业务层开发游戏就直接使用框架层抽象出来的API接口就可以了,不用关心具体系统的差异。

(3) 业务逻辑层:

有了框架抽象层,我们就可以调用框架的API接口, 来开发我们的应用。

游戏引擎的 打包发布

每个平台都会有自己的开发工具,使用开发工具,把平台抽象层 + 框架抽象层 + 业务逻辑层 打包发布成对应平台的应用程序。所以使用游戏引擎打包发布的时候, 发布android要用android的开发工具,发布苹果,要用苹果的开发工具… …

游戏引擎这么NB,能否做跨平台的普通APP?最好不要这么做。

(1)游戏引擎对普通APP UI操作控件等支持的并不好

(2) 游戏引擎基于帧频驱动,所以会比普通APP基于事件驱动要耗电;

(3) 游戏引擎,每次全部重新绘制,APP是部分区域绘制;

最后配上一个小图:

打开网易新闻 查看精彩图片