游戏引擎怎么做到跨平台部署的
游戏引擎能做到一次开发,多平台发布, 比如 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是部分区域绘制;
最后配上一个小图:
游戏引擎怎么做到跨平台部署的相关推荐
- 游戏引擎怎么做到跨平台部署
游戏引擎能做到一次开发,多平台发布, 比如 android, iOS, H5, 微信小游戏,facebook等. 这些我们叫做跨平台架构,瞬间感觉很NB和高大上. 今天我来给大家分析分析,我们的游戏引 ...
- 游戏引擎如何做到跨平台部署的
关键词:游戏引擎 游戏引擎能做到一次开发,多平台发布, 比如 android, iOS, H5, 微信小游戏,facebook等. 这些我们叫做跨平台架构,瞬间感觉很NB和高大上. 今天我来给大家分析 ...
- Defold 游戏引擎
Defold 是一个以 Lua 为脚本语言的2D游戏引擎, 支持跨平台(PC/Mac/iOS/Android/HTML5) GitHub:https://github.com/defold 官方网站: ...
- xnawindowsphCocos2d-x for XNA游戏引擎全面支持WP7
近日,开源社区cocos2d-x.org针对微软移动操作系统WindowsPhone7平台发布了一款新的游戏引擎,并正式命名为cocos2d-xforXNA.从此,开发者无需学习XNA绘图接口就可采用 ...
- 游戏引擎如何设计与架构
以前做过游戏引擎,也看过几个商业引擎的源码如Torque等,还有用过一些第三方的引擎来开发游戏,如Unity, Cocos, Laya等,今天来说一说一款游戏引擎应该如何架构和设计,我做了一张图,如下 ...
- 跨平台次世代游戏引擎Unity 3D
1.Unity简介 Unity是一款标准的商业游戏引擎,而商业引擎的主要特点有收费.封闭源码和功能强大. 关于收费情况,Unity的使用费用非常昂贵,最便宜的普通版许可证也需要400美元,加强版本为1 ...
- 2018html游戏引擎,跨平台三维游戏引擎Unity Pro 2018.1 Win x64
跨平台三维游戏引擎Unity Pro 2018.1 Win x64 Unity是由Unity Technologies开发的跨平台游戏引擎,主要用于开发三维和二维视频游戏和计算机.控制台和移动设备的模 ...
- Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...
- webgl 基础渲染demo_游戏引擎养成《二》 引入跨平台渲染库
# 引擎从哪里开始? 从图形渲染部分开始是最直观的,它也最能引起大家兴致的部分,毕竟程序员有一条路就是TA方向.所以我们从开始就着手图形渲染引擎. 为了实现跨平台也为了省心,我们引入glfw库. # ...
最新文章
- 一次网站性能排查实录
- 重识设计模式-建造者模式(Builder Pattern)
- [转] 新入社員の自己紹介
- BASIC-1 闰年判断
- mysql归档日志满了_MySQL核心知识学习之路(1)
- [攻防世界 pwn]——pwn-100
- 退出窗口[置顶] 退出Activity的方法
- Indy中判断邮件来源
- python粘性拓展_如何将tkinter小部件置于粘性框架中
- HTTP请求上下文之终结:HttpContext类
- python 之遍历目录树(可匹配输出特定后缀的文件)
- 波段顶底 tdx 副图指标
- 写失败数据写入成功_马克·吐温写小说有多成功,做生意就有多失败,创业亏的就剩烟囱...
- C/C++[codeup 1943](大数)进制转换
- mac系统下用wineskin安装plsql developer及数据乱码解决办法
- 深入理解Plasma(四)Plasma Cash
- 国人劝酒经典用语大全
- vim的下载及配置安装
- iOS 9:四、设置信任
- 中国液冷数据中心市场发展研究