游戲引擎如何做到跨平臺(tái)部署
游戲引擎能做到一次開發(fā),多平臺(tái)發(fā)布, 比如 android, iOS, H5, 微信小游戲,facebook等。資源下載群
這些我們叫做跨平臺(tái)架構(gòu),瞬間感覺很NB和高大上。
今天我來給大家分析分析,我們的游戲引擎是怎么做到跨平臺(tái)的。
游戲引擎的架構(gòu)一般會(huì)分為3個(gè)層次:
? ?(1)平臺(tái)抽象層:
? ? ? ? ?a: 定義幾個(gè)統(tǒng)一的接口,來接入平臺(tái)的消息, 比如 mouse, touch, keyboard 等;
? ? ? ? ?b: 每個(gè)平臺(tái)會(huì)有一個(gè)runtime的環(huán)境,調(diào)用每個(gè)平臺(tái)的API,來將事件和消息接入到統(tǒng)一的接口里面;
? ? ? ? ?c: ?使用opengl, 等跨平臺(tái)圖行庫,來繪制游戲畫面;
? ? ? ? ?d: ?做好封裝,框架能調(diào)用原生態(tài)的函數(shù)或接口;
? ?(2) 框架抽象層:
? ? ?有了平臺(tái)抽象層,對于平臺(tái)的API,都是上面定義的統(tǒng)一的幾個(gè)入口, 事件入口等, 基于這些入口,再來開發(fā)游戲場景的框架層,使用游戲引擎特有的管理模式,做好幾大模塊和API和接口,游戲引擎的常用的模塊, 比如:網(wǎng)絡(luò)模塊,聲音模塊,渲染模塊,事件模塊,場景管理模塊等。那么業(yè)務(wù)層開發(fā)游戲就直接使用框架層抽象出來的API接口就可以了,不用關(guān)心具體系統(tǒng)的差異。
(3) 業(yè)務(wù)邏輯層:
? ? ? 有了框架抽象層,我們就可以調(diào)用框架的API接口, 來開發(fā)我們的應(yīng)用。
游戲引擎的 打包發(fā)布
? 每個(gè)平臺(tái)都會(huì)有自己的開發(fā)工具,使用開發(fā)工具,把平臺(tái)抽象層 + 框架抽象層 + 業(yè)務(wù)邏輯層 打包發(fā)布成對應(yīng)平臺(tái)的應(yīng)用程序。所以使用游戲引擎打包發(fā)布的時(shí)候, 發(fā)布android要用android的開發(fā)工具,發(fā)布蘋果,要用蘋果的開發(fā)工具… …
游戲引擎這么NB,能否做跨平臺(tái)的普通APP?最好不要這么做。
? ?(1)游戲引擎對普通APP UI操作控件等支持的并不好
? ?(2) 游戲引擎基于幀頻驅(qū)動(dòng),所以會(huì)比普通APP基于事件驅(qū)動(dòng)要耗電;
? ?(3) 游戲引擎,每次全部重新繪制,APP是部分區(qū)域繪制;
最后配上一個(gè)小圖:

游戲開發(fā)相關(guān)的技術(shù)講解和課程請點(diǎn)擊:
https://bycwedu.vipwan.cn/promotion_channels/630597732