溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

游戲引擎介紹,架構(gòu),設(shè)計(jì)及實(shí)現(xiàn)

發(fā)布時(shí)間:2020-09-03 05:56:05 來(lái)源:網(wǎng)絡(luò) 閱讀:690 作者:大水牛牛 欄目:移動(dòng)開發(fā)

     本文的靈感來(lái)自于《Android應(yīng)用開發(fā)揭秘》的游戲引擎的那一章。

     關(guān)于Game Engine,我能想到的幾個(gè)問(wèn)題:

      1、游戲引擎是什么?

      2、Game Engine是為了解決什么問(wèn)題?

      3、Game Engine的架構(gòu)是什么?

      4、如何設(shè)計(jì)一款游戲引擎?

      5、游戲引擎包含哪些模塊?

       下面就來(lái)探討幾個(gè)問(wèn)題:

       1. Game Engine是什么?

       游戲產(chǎn)業(yè)在全球來(lái)看是一個(gè)很大的產(chǎn)業(yè),一款游戲大作包含了非常多的元素。游戲涉及到劇情、人物、任務(wù)、關(guān)卡、地圖、畫質(zhì)、美術(shù)、音樂(lè)、網(wǎng)絡(luò)等多種元素。開發(fā)一款游戲?qū)嶋H上需要耗費(fèi)非常多的資源,據(jù)說(shuō)North Star的《GTA V》耗資幾億美元。正因?yàn)槿绱?,在開發(fā)項(xiàng)目過(guò)程中,盡可能復(fù)用之前項(xiàng)目成功的東西就非常重要。

        一款游戲中,Game Engine直接控制著劇情、關(guān)卡、美工、音樂(lè)、操作等內(nèi)容,將游戲的所有元素捆綁在一起。

        一般來(lái)說(shuō),一款Game Engine需要包含以下模塊:

       1、基本框架(渲染、邏輯、物理 等等各部分如何組裝)

       2、資源管理

       3、渲染

       4、基本邏輯(網(wǎng)游還要解決邏輯的同步問(wèn)題)

       5、物理(有時(shí)候和邏輯合并)

       6、UI 

       7、音樂(lè)音效 

       8、網(wǎng)絡(luò) 

       9、腳本(有些類型的游戲引擎需要腳本和邏輯的關(guān)聯(lián)性非常強(qiáng),有些腳本則比較獨(dú)立) 

       2. Game Engine為了解決什么問(wèn)題?

       Game Engine實(shí)際上有效的減少開發(fā)者編寫程序時(shí)的冗余勞動(dòng),同時(shí)增強(qiáng)游戲的可移植性。

       Engine就是游戲的框架,我們需要往框架中填充內(nèi)容就可以形成一個(gè)游戲。

       引擎,就是一系列的工具和生產(chǎn)鏈,像Unreal 3,Unity這樣的成熟引擎,用起來(lái)非常方便,就是因?yàn)樗年P(guān)卡/場(chǎng)景編輯器十分宜用,支持多種腳本語(yǔ)言。這類引擎運(yùn)用恰當(dāng)?shù)脑挘碚撋夏軐㈥P(guān)卡調(diào)試和物件流水線的大部分工作從程序員那里完全移出。

        3. Game Engine的架構(gòu)

       游戲 = 引擎(程序) + 資源(圖像、聲音、動(dòng)畫等) 

       目前的Game Engine的架構(gòu)都是Model-View-Controller架構(gòu),邏輯和顯示分開,由一個(gè)邏輯控制流來(lái)協(xié)調(diào)Client的請(qǐng)求和Server的行動(dòng)。

       1、View: 負(fù)責(zé)界面回執(zhí)

       2、Controller:處理工作流程的創(chuàng)建和種植,用戶輸入,各種事件的處理

       3、Model: 模型、邏輯,程序的功能實(shí)現(xiàn)

       消息循環(huán)->更新數(shù)據(jù)->繪制各節(jié)點(diǎn) 這是繪制的基本結(jié)構(gòu)基本不會(huì)有大的改變。

       各種引擎的變種很大部分是在游戲邏輯上的封裝。腳本也好,直接寫代碼也好。比如較為古老的數(shù)據(jù)與函數(shù)分離,以C語(yǔ)言為代表。大行其道的類結(jié)構(gòu)。以c++為代表。以及現(xiàn)在光環(huán)日耀的CBSE,基于組件的架構(gòu)

        4. 如何設(shè)計(jì)一款游戲引擎?

        <1>. 結(jié)構(gòu)設(shè)計(jì)及功能設(shè)計(jì)

        Game Engine的設(shè)計(jì)包括結(jié)構(gòu)設(shè)計(jì)、功能設(shè)計(jì)及注意事項(xiàng)。

        Game Engine包括圖形引擎、腳本引擎、物理引擎、工具模塊、音效引擎、網(wǎng)絡(luò)組件、事件組件等。

        Android游戲主要包括一個(gè)Activity類、流程控制類、游戲線程類和游戲?qū)ο箢悺ctivity類是游戲的執(zhí)行單元,負(fù)責(zé)游戲生命周期的控制。

         流程控制:提供在游戲中多個(gè)界面之間切換方法;

         游戲線程:不斷監(jiān)測(cè)可能發(fā)生的各種事件,計(jì)算游戲狀態(tài),刷新屏幕。

         <2>. 注意事項(xiàng):

         手機(jī)游戲的主要問(wèn)題是 硬件限制 及 電池瓶頸。CPU及內(nèi)存不足,屏幕大小,音效等多方面限制,在設(shè)計(jì)時(shí)需要注意這些方面。

        5. 實(shí)現(xiàn)一款游戲引擎

        游戲引擎只是一款炒菜的炒菜鍋,但有了好的炒菜鍋不一定能保證炒出好的菜。

        游戲引擎的實(shí)現(xiàn)就很復(fù)雜了,需要按照上一節(jié)的架構(gòu)及功能設(shè)計(jì)去編碼實(shí)現(xiàn),目前絕大部分都是面向?qū)ο缶幊蹋O(shè)計(jì)好各種類。比如人物、NPC、道具、動(dòng)畫、動(dòng)植物等等。有余力的同學(xué)可以去研究研究。

        最近流行的一些游戲,其實(shí)也并不需要多么NB的游戲引擎,充分發(fā)掘用戶的痛點(diǎn)才能設(shè)計(jì)出一款好的游戲。

       目前有很多開源的Game Engine可供大家研究,比如Unity3D, Box2D等,大家可以去網(wǎng)上搜索并研究。

        6. 對(duì)手機(jī)游戲的展望

        這兩年玩過(guò)的手機(jī)游戲也不少,一款好的手機(jī)游戲應(yīng)該具備哪些特征:

        1、上手容易,精通不易,且玩且珍惜。手游面向的是大眾,所以上手難的游戲就一律pass,必須保證游戲具有簡(jiǎn)單性,讓玩家一安裝就可以玩的;

        2、可中斷,時(shí)間短。一般玩游戲,都是在公交地鐵上等碎片時(shí)間里,所以提供的是短時(shí)間的娛樂(lè)效果,允許在游戲和工作模式之間順利切換;

        3、必須加入SNS元素:一款好的手游應(yīng)該具有社交元素,可以加入LBS尋找周圍的玩家,或和好友一起玩游戲及互動(dòng),抑或者認(rèn)識(shí)新的好友。因?yàn)槭钟味己芎?jiǎn)單,所以要留住玩家,加入SNS可以留住玩家;

        4、充分利用手機(jī)的各項(xiàng)優(yōu)點(diǎn):手機(jī)的優(yōu)點(diǎn)比如便攜性,私密性,即使抵達(dá)。手機(jī)是我們身體的延伸,所以一款好的游戲應(yīng)該充分利用手機(jī)的一些傳感器、攝像頭、網(wǎng)絡(luò)、藍(lán)牙,找出特點(diǎn),以便設(shè)計(jì)出一款優(yōu)秀的游戲。

        另外,對(duì)于安全這塊,Android應(yīng)用安全系數(shù)低就不用數(shù)了,Android游戲開發(fā)也是屢遭游戲外掛、游戲封包、加速器、內(nèi)購(gòu)破解及內(nèi)存修改等眾多風(fēng)險(xiǎn)的威脅。因此,要討好最終用戶,還得給自己開發(fā)的游戲穿一層保護(hù)衣,可以利用移動(dòng)應(yīng)用安全平臺(tái)的加密技術(shù),在這方面,愛加密有專門的解決方案,無(wú)論強(qiáng)聯(lián)網(wǎng)、弱聯(lián)網(wǎng)還是單機(jī)游戲,都有相應(yīng)的完整的解決方案http://www.ijiami.cn/appprotect_mobile_games


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI