欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

游戲引擎怎么開發(fā)

錢良釵2年前15瀏覽0評論

游戲引擎怎么開發(fā)?

嗯嗯,游戲引擎發(fā)展到今天,已經(jīng)是一個產(chǎn)業(yè)化需求比較泛化的軟件體系。如果細分,按不同的細分維度會有很多不同的劃分,比如按功能分可以分為物理引擎,渲染引擎,腳本引擎等,按平臺分可以分為PC游戲引擎,HTML5游戲引擎,移動端游戲引擎等,按渲染類別分2D引擎,3D引擎等。

再比如對于網(wǎng)游,又分客戶端引擎和服務器引擎;服務器引擎的架構游戲類型、負載需求息息相關,架構本身和技術基礎組件選型(操作系統(tǒng)、開發(fā)語言、網(wǎng)絡庫、數(shù)據(jù)庫、運維工具、運營后臺等)相關聯(lián),比較靈活。

按問題要求,猜測樓主問的是通用跨平臺客戶端引擎,參考對象是Unity,Unreal,CocosCreator等。先提取游戲引擎典型的核心功能如下:

渲染:實現(xiàn)畫面的展示

物理:實現(xiàn)物理世界的抽象和表現(xiàn)

音頻:實現(xiàn)聲音的播放處理

網(wǎng)絡:實現(xiàn)聯(lián)網(wǎng)功能

游戲編程接口:講游戲引擎能夠提供的接口以API形式暴露給開發(fā)者

配套的集成開發(fā)環(huán)境(IDE):實現(xiàn)可視化場景編輯、組織,可視化物理編輯,可視化UI布局,資源的使用等

調(diào)試功能:提供便捷的方式以便開發(fā)者對游戲功能進行測試和debug,優(yōu)化性能。

打包發(fā)布功能:生成最終的游戲的exe,app,apk等等可執(zhí)行(可運行)文件

插件擴展功能:提供給高級開發(fā)者的對引擎自身功能增強的功能接口

其它功能:如Unity有service,可以集成平臺數(shù)據(jù)統(tǒng)計、自身的視頻廣告等功能。

然后逐一略敘實現(xiàn)方式,強調(diào)一下,最好參照業(yè)內(nèi)的經(jīng)過廣泛驗證的引擎去了解,例如Unity;如果想知道更多細節(jié),可以先使用一下主流引擎。

1.渲染:為了跨平臺,一般會選用跨平臺的圖形標準庫底層如OpenGL,基于底層庫再構建上層渲染框架,如精靈(Sprite),GUI,3D模型的渲染,shader擴展等。

2.物理:物理引擎對運算性能要求比較高,而且底層功能的測試需要耗費大量精力,所以通常采用成熟的物理引擎,例如Havok,PhysX, Bullet, cannon.js等。

3.音頻:通常會采用業(yè)內(nèi)成熟方案,如開源的OpenAL、FMOD、HTML5平臺自身的Audio功能等。一般來說,非音樂類游戲?qū)σ纛l功能的需求相對不會太復雜,主要是靠專業(yè)軟件提供音效文件(mp3,wma等),游戲中解析因小文件,處理聲音播放,音量大小調(diào)整等。

4.網(wǎng)絡:提供聯(lián)網(wǎng)的功能,按需提供TCP,UDP,HTTP等協(xié)議的包裝好的易用的接口。如果為了方便開發(fā),可以處理好客戶端和服務器通信的連接處理,錯誤提示,協(xié)議的幀格式,序列化、反序列化方式,可以在此之上提供進一步的規(guī)范,例如采用Protobuf作為協(xié)議格式。

5.游戲編程接口:這就是提供給開發(fā)者的API的組織。確定引擎提供給開發(fā)者用什么語言編程,怎么使用圖片、音視頻資源、3D模型等,怎么提供接口和游戲運行時環(huán)境(電腦、手機)交互等。

6.配套的集成開發(fā)環(huán)境(IDE):易用的可視化開發(fā)工具,如拖拽布局、拖拽游戲資源的使用、代碼編輯、集成調(diào)試打包功能等。這一塊是游戲引擎開發(fā)工作量的大頭,涉及用戶(游戲開發(fā)者)密集使用的交互接口,要盡可能滿足高效、易用。一般來說如果不是特別有能力駕馭,最好現(xiàn)成的采用跨平臺的應用程序開發(fā)方案,比如Cocos Creator采用electron框架。

7.調(diào)試功能:提供查看FPS,跟蹤代碼運行,Profile,網(wǎng)絡信號模擬,分辨率模擬設置,硬件設備模擬(手機)預覽游戲等。建議游戲運行時與編輯器使用同一套或者大致一樣的渲染和資源接口(例如Unity),這樣方便降低調(diào)試和運行結果大相徑庭的情況。

8.打包發(fā)布功能:簡單處理可以生成要打包的對應平臺的工程,比如android平臺生成Android Studio工程,ios平臺生成xcode工程,注意資源、代碼庫的引用關系,配置文件的有效性、一致性,編譯速度等。

9.插件擴展功能:人力因時而窮,引擎功能不必強求一開始就大而全,可以將引擎整體設計為一個易擴展、易修改的結構,提供相應接口暴露給開發(fā)者,群策群力迭代和改進游戲引擎。

10.其它功能:這一塊可以根據(jù)自身引擎特點來進行添加,比如現(xiàn)在主流的幾大引擎都有提供官方繼承的資源商店、數(shù)據(jù)統(tǒng)計等服務接口。

真正可用的引擎的實現(xiàn)是一個系統(tǒng)而復雜的工程,有很多臟活累活需要考慮在里頭,平臺兼容性、性能、效果、易用性、魯棒性、文檔編寫……需要耗費巨量的心力;

如果是個人興趣了解,可以根據(jù)上述內(nèi)容再延伸查詢相關內(nèi)容,也歡迎隨時交流。

如果是想做個娛樂引擎可以隨意玩,技術如詩,越擼越癡;

如果是想創(chuàng)造一個偉大的引擎,請收下我的膝蓋。