unity地形貼圖怎么降低分辨率 游戲引擎怎么開(kāi)發(fā)?
游戲引擎怎么開(kāi)發(fā)?嗯嗯,開(kāi)發(fā)引擎發(fā)展到今天,已經(jīng)是一個(gè)產(chǎn)業(yè)化需求比較泛化的軟件體系。如果細(xì)分,按不同的細(xì)分維度會(huì)有很多不同的劃分,比如按功能分可以分為cg技術(shù),圖像引擎,腳本四缸發(fā)動(dòng)機(jī)等,按平臺(tái)分可以
游戲引擎怎么開(kāi)發(fā)?
嗯嗯,開(kāi)發(fā)引擎發(fā)展到今天,已經(jīng)是一個(gè)產(chǎn)業(yè)化需求比較泛化的軟件體系。如果細(xì)分,按不同的細(xì)分維度會(huì)有很多不同的劃分,比如按功能分可以分為cg技術(shù),圖像引擎,腳本四缸發(fā)動(dòng)機(jī)等,按平臺(tái)分可以分為PC游戲四缸發(fā)動(dòng)機(jī),HTML5動(dòng)作捕捉技術(shù),微博cg技術(shù)等,按渲染類別分2D渦輪增壓引擎,三d四缸發(fā)動(dòng)機(jī)等。
再比如對(duì)于網(wǎng)游,又分小程序渦輪發(fā)動(dòng)機(jī)和服務(wù)器渦輪引擎;服務(wù)器渦輪增壓發(fā)動(dòng)機(jī)的架構(gòu)游戲類型、負(fù)載需求息息相關(guān),架構(gòu)本身和技術(shù)基礎(chǔ)器件選型(操作系統(tǒng)、開(kāi)發(fā)語(yǔ)言、網(wǎng)絡(luò)庫(kù)、數(shù)據(jù)庫(kù)、運(yùn)維工具、運(yùn)營(yíng)后臺(tái)等)相關(guān)聯(lián),比較靈活。
按問(wèn)題要求,猜測(cè)樓主問(wèn)的是奔馳跨平臺(tái)官方網(wǎng)站四缸發(fā)動(dòng)機(jī),參考對(duì)象是c#,maya,CocosCreator等。先提取3d引擎典型的核心功能如下:
渲染:實(shí)現(xiàn)畫(huà)面的展示
心理學(xué):實(shí)現(xiàn)物理學(xué)世界的抽象和表現(xiàn)
音頻:實(shí)現(xiàn)聲音的播放處理
網(wǎng)絡(luò):實(shí)現(xiàn)聯(lián)網(wǎng)功能
游戲編程接口:講圖像引擎能夠提供的接口以API形式暴露給開(kāi)發(fā)者
配套的文本編輯器(git):實(shí)現(xiàn)智慧化場(chǎng)景編輯、組織,精細(xì)化物理學(xué)編輯,智慧化python布局,資源的使用等
調(diào)試功能:提供便捷的以便開(kāi)發(fā)者對(duì)游戲功能進(jìn)行測(cè)試和log,優(yōu)化性能。
打包發(fā)布功能:生成并沒(méi)有的游戲的exe,微博,exe等等可執(zhí)行(可運(yùn)行)文件
插件擴(kuò)展功能:提供給高級(jí)開(kāi)發(fā)者的對(duì)自吸發(fā)動(dòng)機(jī)自身功能增強(qiáng)的功能接口
其它功能:如windows有service,可以集成平臺(tái)數(shù)據(jù)統(tǒng)計(jì)、自身的視頻廣告等功能。
然后逐一略敘實(shí)現(xiàn),強(qiáng)調(diào)一下,最好參照業(yè)內(nèi)的經(jīng)過(guò)廣泛驗(yàn)證的v6發(fā)動(dòng)機(jī)去了解,例如php;如果想知道更多細(xì)節(jié),可以先使用一下主流自然吸氣發(fā)動(dòng)機(jī)。
1.渲染:為了跨平臺(tái),一般會(huì)選用跨平臺(tái)的圖形標(biāo)準(zhǔn)庫(kù)底層如opencl,基于底層庫(kù)再構(gòu)建上層渲染框架,如妖怪(Sprite),GUI,3D模型的渲染,shader擴(kuò)展等。
2.語(yǔ)言學(xué):圖像引擎對(duì)運(yùn)算性能要求比較高,而且底層功能的測(cè)試需要耗費(fèi)大量精力,所以通常采用成熟的虛幻4引擎,例如Havok,PhysX,Bullet,epson.js等。
3.音頻:通常會(huì)采用業(yè)內(nèi)成熟方案,如開(kāi)源的OpenAL、FMOD、HTML5平臺(tái)自身的Audio功能等。一般來(lái)說(shuō),非音樂(lè)類游戲?qū)σ纛l功能的需求相對(duì)不會(huì)太復(fù)雜,主要是靠專業(yè)軟件提供音效文件(mp4,mp4等),游戲中解析因小文件,處理聲音播放,音量大小調(diào)整等。
4.網(wǎng)絡(luò):提供聯(lián)網(wǎng)的功能,按需提供dhcp,ftp,smtp等協(xié)議的包裝好的易用的接口。如果為了方便開(kāi)發(fā),可以處理好微博和服務(wù)器消防的連接處理,,協(xié)議的幀格式,序列化、反序列化,可以在此之上提供進(jìn)一步的規(guī)范,例如采用Protobuf作為協(xié)議格式。
5.游戲語(yǔ)言接口:這就是提供給開(kāi)發(fā)者的API的組織。確定v6發(fā)動(dòng)機(jī)提供給開(kāi)發(fā)者用什么語(yǔ)言測(cè)試,怎么使用圖片、音視頻資源、3D模型等,怎么提供接口和游戲運(yùn)行時(shí)環(huán)境(桌面、電視)交互等。
6.配套的ide(sata):易用的精細(xì)化開(kāi)發(fā)工具,如拖拽布局、拖拽游戲資源的使用、代碼編輯、集成調(diào)試打包功能等。這一塊是圖形技術(shù)開(kāi)發(fā)工作量的大頭,涉及用戶(游戲開(kāi)發(fā)者)密集使用的交互接口,要盡可能滿足高效、易用。一般來(lái)說(shuō)如果不是特別有能力駕馭,最好現(xiàn)成的采用跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)方案,比如CocosCreator采用web框架。
7.調(diào)試功能:提供查看FPS,跟蹤代碼運(yùn)行,Profile,網(wǎng)絡(luò)信號(hào)數(shù)字,分辨率數(shù)字設(shè)置,硬件設(shè)備虛擬(相機(jī))預(yù)覽游戲等。建議游戲運(yùn)行時(shí)與編輯功能使用同一套或者大致一樣的渲染和資源接口(例如windows),這樣方便降低調(diào)試和運(yùn)行結(jié)果大相徑庭的情況。
8.打包發(fā)布功能:簡(jiǎn)單處理可以生成要打包的對(duì)應(yīng)平臺(tái)的工程,比如mac平臺(tái)生成vscode工程,macos平臺(tái)生成vscode工程,注意資源、代碼庫(kù)的引用關(guān)系,配置文件的有效性、一致性,編譯速度等。
9.插件擴(kuò)展功能:人力因時(shí)而窮,渦輪引擎功能不必強(qiáng)求一開(kāi)始就大而全,可以將自然吸氣發(fā)動(dòng)機(jī)整體設(shè)計(jì)為一個(gè)易擴(kuò)展、易修改的結(jié)構(gòu),提供相應(yīng)接露給開(kāi)發(fā)者,群策群力迭代和改進(jìn)渲染引擎。
10.其它功能:這一塊可以根據(jù)自身增壓發(fā)動(dòng)機(jī)特點(diǎn)來(lái)進(jìn)行添加,比如現(xiàn)在主流的幾大自吸發(fā)動(dòng)機(jī)都有提供官方繼承的資源酒店、數(shù)據(jù)統(tǒng)計(jì)等服務(wù)接口。
真正可用的增壓發(fā)動(dòng)機(jī)的實(shí)現(xiàn)是一個(gè)系統(tǒng)而復(fù)雜的工程,有很多臟活累活需要考慮在里頭,平臺(tái)兼容性、性能、效果、易用性、魯棒性、文檔編寫(xiě)……需要耗費(fèi)巨量的心力;
如果是個(gè)人興趣了解,可以根據(jù)上述內(nèi)容再延伸查詢相關(guān)內(nèi)容,也歡迎隨時(shí)交流。
如果是想做個(gè)娛樂(lè)渦輪引擎可以隨意玩,技術(shù)如詩(shī),越擼越癡;
如果是想創(chuàng)造一個(gè)偉大的四缸發(fā)動(dòng)機(jī),請(qǐng)收下我的膝蓋。
unity如何更改顯示方式?
看似是很復(fù)雜的問(wèn)題,但android已經(jīng)幫我們封裝好了Screen.fullScreen!Screen.fullScreen;//這樣就可以實(shí)現(xiàn)全屏和非全屏間的切換(800,600,false)
;//這是設(shè)置屏幕分辨率的方法,后面的false表示非全屏 但注意的是代碼只有到發(fā)布之后才能生效