五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

重生細胞游戲開發(fā)的瓶頸

2023-03-31 00:18 作者:得配nia  | 我要投稿

本文可能解開你的很多不解與疑惑。包括各種報錯產(chǎn)生的原因,陰影效果的缺失以及某些糊成一團的特效。

最易打斷游戲體驗的惱人報錯

以及:

陰影缺少&特效模糊

文章:Floutre——Playdigious首席開發(fā)人員,負責(zé)死亡細胞手機端移植工作。

翻譯潤色:得配nia

原文:https://gist.github.com/FlorianB-playdigious/aea80f853d46c30df6036c113cfc4b90

本文另包含一些我與Floutre的對話內(nèi)容

????????讓我們來談一談我們砍掉或修改的一些內(nèi)容,談一談它們的用例以及圍繞它們所采取的一些嘗試。在手機上,《重生細胞》中沒有法線貼圖,因為實現(xiàn)它對于許多手機的GPU來說都太過于吃力了,我們必須為每個模型打包一個額外的法線貼圖紋理,這幾乎會使游戲資源文件大小翻倍,而這些法線貼圖實現(xiàn)的紋理陰影在手機屏幕上又沒有很大很突出。鑒于美學(xué)因素對于核心游戲或享受游戲的本質(zhì)來說并不那么重要,我們決定砍掉這一內(nèi)容。

老鼠和它對應(yīng)的法線貼圖

這些決定從來都不是輕而易舉的,因為我們在內(nèi)心深處尊重游戲、玩家和原始開發(fā)者的工作。砍掉任何一個功能對我們來說都是一個十分艱難且重要的決定。這也是為什么它總會再由MT或EE進一步驗證的原因(除非它是一個我們無法繞過的細節(jié)或技術(shù)限制,畢竟他們的時間也很寶貴)。游戲和體驗對我們來說確實很重要。我們不會僅僅因為我們不喜歡的或需要大量工作時間就砍掉某些功能,我們會評估,然后盡可能提出解決方案,最后在沒有好的解決方案的情況下砍掉這個功能。


在砍掉任何東西之前,我們所考慮的解決方案總是屬于這三類中的一類:①優(yōu)化和修復(fù)這個問題? ?②盡量減輕這個問題帶來的影響? ?③讓導(dǎo)致這個問題產(chǎn)生的東西變得可有可無。

我們通常按照這個順序來考慮,如果沒有一個解決方案能實現(xiàn)風(fēng)險大于回報,我們就會不得不砍掉這個功能(在得到批準之后)。而我們可能面臨的風(fēng)險還有很多很多,有性能上的打擊、運行不穩(wěn)定或糟糕的用戶體驗(意味著為實現(xiàn)解決方案所采取的步驟是解決一個用戶體驗的噩夢,或意味著要重做整個用戶界面的面板)。通常的阻礙我們改進的原因是不可能(通常是由于技術(shù)層面上的)、沒辦法(我們不知道如何去做)或沒時間(需要太長的時間,我們沒有足夠的人力或投入遠小于產(chǎn)出)。


再談一下法線貼圖的問題。

對于“優(yōu)化和修復(fù)這個問題”來說:我們沒有辦法優(yōu)化使用法線貼圖的方法,以使其能在所有手機GPU上工作而不對性能產(chǎn)生負面影響或?qū)е掠螒虿环€(wěn)定。所以,這個方案就這樣了。如果你認為你可以做到這一點,而且不必重新設(shè)計我們獲取游戲貼圖與對應(yīng)法線貼圖資源的方法等......請發(fā)送簡歷給Floutre(Discord、Twitter均可))

沒有辦法“盡量減輕這個問題帶來的影響”:我們不能僅保留半張法線圖,也不能在模型的紋理中直接預(yù)先渲染它(對于依靠讀取色帶來添加顏色的資源(皮膚,BOSS)這是不可行的)。

(小插曲:我做的陰影mod就是基于這種方法,目前正在與playdigious討論其可行性。敬請期待。)

讓導(dǎo)致這個問題產(chǎn)生的東西變得可有可無”:假如我們的解決方案能使高端設(shè)備受益于法線貼圖,而低端設(shè)備則不受其影響。聽起來很棒吧?但這需要采取許多步驟來實現(xiàn)。下面是一些被否定的方案:

1、最簡單的解決方案是和PC端一樣,將所有的法線貼圖包含在游戲中,只有當(dāng)選項被激活時才使用它們和著色器。但我們不會在選項中添加一個開關(guān)來切換是否添加陰影(這哪有聽起來那么容易?)要想那樣我們得有兩個版本的著色器組合,一個讀取并使用法線貼圖,然后進行陰影著色,另一個不進行,然后再供你選擇其中一個。雖然這聽起來是可行的,但是它將增加許多著色器以及大量的代碼來處理實際的切換。它還需要將所有儲存法線的紋理與游戲資源打包,這將人為地增加游戲安裝包的大?。ㄒ话阏f來這并不好,而且從邏輯上說較大的安裝包也會對銷售產(chǎn)生影響)。這還會使設(shè)備的內(nèi)存/GPU的VRAM被大量的紋理處理需求弄得亂七八糟,因為法線圖是和模型的紋理將會是一起預(yù)裝的。而現(xiàn)在光是加載現(xiàn)有項目,大部分手機RAM/VRAM就已經(jīng)不夠用了。同樣,這聽起來也是可行的,但這對加載資源的代碼會帶來巨大改變(更容易出錯),并且由于內(nèi)存壓力也大大增加了不穩(wěn)定的風(fēng)險。

2、另一個解決方案是為法線貼圖提供一個特定的資源包,只在有需要時下載。對游戲安裝包的大小來說會更好,但這也只是推遲了不可避免的事情罷了,而且關(guān)于內(nèi)存的那些問題仍然存在。這將需要相當(dāng)多的基礎(chǔ)更改,但收效甚微。因此,我們堅持以前的想法,為每個人提供不帶有法線貼圖的游戲資源,即使它最終會對銷售、評價產(chǎn)生負面影響。


這些方案在技術(shù)上是可行的,我們有能力做到這一點。但接下來要進行評估:我們有足夠的人手嗎?為了處理這么多的工作,我們應(yīng)該推遲哪些其他任務(wù)?這些任務(wù)是否更優(yōu)先,或者對游戲性/體驗更重要?我們能交付給幾個工程師用幾天或幾周的時間來解決這個問題嗎,而這些視覺效果真的有那么重要嗎?

答案揭曉:不值得(與細胞開發(fā)者確認過了)。我們把我們有限的資源投入到其他的任務(wù)中,比如優(yōu)化生物群落的內(nèi)存占用,這樣山洞地圖就可以加載到內(nèi)存中而不會使整個應(yīng)用程序崩潰。(現(xiàn)在山洞加載不會卡退了吧?)盡管我們都很想在某個時候恢復(fù)法線貼圖,但現(xiàn)在和將來都會有更重要的任務(wù),因為我們正在談?wù)摰膬H僅是出于美學(xué)上的視覺效果,而非實用效果。穩(wěn)定性、功能性和性能是更重要的。也許對于那些使用高端手機以120fps運行的人來說,這似乎并不重要,他們認為視覺效果才是最重要的。如果你是那個人,恭喜你,你是那1%。但我們不會為了你個人的舒適度來換取其他99%的人玩到他們喜歡的游戲的能力。


現(xiàn)在你對陰影相關(guān)的問題有了更好的了解,接下來讓我們來談?wù)勥@些特效

第一條信息:

- 游戲中有1000多種特效。

- fx特效被分離在多個紋理圖上,按照用途(差不多應(yīng)該是這個)被分為:敵人、武器、普通、其他奇怪的東西(可忽略)。


特效圖集

- 所有的fx特效紋理圖都是4096 x 4096的大小。

- 一個紋理圖上有數(shù)百個fx特效。它們從小到幾個像素到大到非常大的精靈圖都有。


好吧,這與手機有什么關(guān)系?

- 我們依靠OpenGL ES在手機上渲染游戲。Vulkan是最近才出現(xiàn)的,在操作系統(tǒng)和制造商之間還沒有正式化,而且今天市場上仍在使用的一些設(shè)備沒有Vulkan功能。我們甚至都不用提到Metal(你有沒有聽說過蘋果做的東西是跨平臺的?)

- 關(guān)于所支持的紋理尺寸,OpenGL ES的設(shè)置對我們來說并非順利。2048x2048肯定是支持的。4096?不確定,這取決于手機。事實是,4096的紋理在現(xiàn)在幾乎所有的設(shè)備上都可以安全使用,直到我們發(fā)現(xiàn)某個設(shè)備不支持......所以我們盡可能地堅持使用2048大小。


- 移動GPU不具備能與PC或控制臺相比的緩存大小

- 手機,顧名思義它首先得是手機,而不是游戲機。在后臺運行的操作系統(tǒng)和其他應(yīng)用程序仍然會占用一些內(nèi)存和CPU。如果可用的RAM過低,操作系統(tǒng)會試圖清理任何可以安全中斷的后臺進程,來恢復(fù)內(nèi)存。關(guān)于內(nèi)存的限制范圍由你手機的操作系統(tǒng)決定。這沒有任何規(guī)范或標(biāo)準??梢允?0%的內(nèi)存,也可以是10%,這取決于你的手機系統(tǒng)。如果關(guān)掉你手機上所有的程序,只玩重生細胞,這樣內(nèi)存還算可觀(但是誰會這么做呢)。如果操作系統(tǒng)后臺清理掉了游戲進程,只因為它占用了大量內(nèi)存,我相信任何一個玩家都會覺得這一點都不好玩。

因此,這里有多個要考慮的關(guān)鍵點。首先是內(nèi)存。一個大的紋理圖需要占用一個大的內(nèi)存塊。紋理圖越小,手機用來存儲它的內(nèi)存就越少,我們就有更多的內(nèi)存可用于其他東西。考慮到特效的紋理圖在游戲進程中將一直被使用(你是否注意到《重生細胞》使用的那“一點點”視覺特效),為特效預(yù)先鎖定大約200MB的內(nèi)存是不可忽視的。

此外,如果紋理圖存儲在RAM中,為了渲染fx貼圖,它必須在GPU的可訪問內(nèi)存(緩存或VRAM)中。所以它必須被上傳到GPU上,而在GPU上復(fù)制這么多內(nèi)存是有代價的:GPU的緩存通常比RAM?。ㄐ『芏啵?,而且我們放在那里的任何東西都會占用另一個紋理(或任何數(shù)據(jù))的空間。所以為了適應(yīng)fx的紋理圖,我們必須移動大量的其他紋理圖引用以及數(shù)據(jù)。這些數(shù)據(jù)我們以后可能需要重新上傳,而它本來可以留在緩存中。這就是所謂的內(nèi)存交換。我們要盡量避免這種情況,因為復(fù)制的操作很慢。這就是造成丟失幀的原因,這就是你的游戲出現(xiàn)卡頓和FPS下降的原因,這就是各種內(nèi)存報錯產(chǎn)生的主要原因。

對于那些好奇的人,可以檢查一下fill-rate或texel-rate是多少,并試著看看有一個4096px2的紋理圖而不是多個2048px2的紋理圖會有什么影響。在現(xiàn)代PC/控制臺專用GPU上,影響不大(畢竟他們太強大了);但在舊手機的GPU上,你會丟失幀。對于手機所有的GPU來說,它還會增加能源消耗和發(fā)熱。這在臺式電腦上并不是啥的問題,但這是手機,是一個直接與手部皮膚接觸的設(shè)備,是一個由容量有限的電池供電的設(shè)備。

因為這種種一切,我們決定減少fx紋理圖的大小。為了避免在加載多個特效時出現(xiàn)FPS下降。為了對你的GPU和你的電池更友好(我們都知道加載《重生細胞》可以輕易融化你的手機)。我們不能分割紋理,因為特效是批處理的(一種技術(shù),用于在屏幕上一次性繪制所有的特效,而不是一個一個繪制的,以節(jié)省繪制的調(diào)用并獲得perfs)。多紋理批處理的效率較低,同樣需要大量的工作(因為目前使用的游戲系統(tǒng)并不是為這個設(shè)計的)。修改這樣的系統(tǒng)是非常危險的,因為它在游戲代碼中的很多地方都有使用。


特效對比:左圖為手機版資源文件,尺寸為右圖的四分之一。


因此,我們采取了唯一的辦法:縮小內(nèi)容,直到所有內(nèi)容都適合2048px2的表面。通過一些啟發(fā)式的方法,只有那些受縮放影響較小的精靈才會被實際縮放。然后我們在游戲中把它們放大(對內(nèi)存沒有影響,對處理時間的影響可以忽略)。這一切都很順利。在女王與海DLC出現(xiàn)之前,沒有人注意到它。這種縮放一直都存在(至少從1.2版的移動端開始就有了)。但隨著游戲內(nèi)容的增加,fx貼圖的數(shù)量也在不斷增加。當(dāng)達到一定程度時,我們不得不更積極地縮放精靈圖,并且比以前縮放更多的精靈圖。我們達到了這種方法的極限:一些精靈圖在游戲中放大后變得模糊不清(先縮小再放大并不是一個無損的過程),這在一些精靈圖上尤其明顯,比如傳送門的紋路(精細的細節(jié)會受到更多的影響)。

我們會在某個時候解決這個問題?;蛘?,準確地說,EE可能會在我們之前修復(fù)它。因為即使是Switch也開始對加載這么多的特效紋理感到吃力。而且如果他們繼續(xù)向紋理添加特效,他們最終會有多個4096px2的紋理,并需要為此實現(xiàn)多紋理批處理(或使用不同的規(guī)則分離特效,這可能會更難實現(xiàn))。我們與EE緊密合作,所以他們在修改或創(chuàng)建游戲系統(tǒng)時都會考慮到我們的限制。我們還為他們提供了一些針對移動設(shè)備的優(yōu)化,這樣一來游戲機和PC也可以從中受益。想想自動攻擊,你懂的)。

綜上所述:

- 如果我們能避免的話,我們絕不會砍掉或降低一個功能。而且,在沒有與Evil Empire和Motion Twin的開發(fā)人員協(xié)商的情況下,我們也絕不會自發(fā)地這樣做。

- 我們和玩家一樣強烈希望能提供與PC和控制臺一樣的體驗。如果我們能做到的話,甚至想將一個游戲更好移植到手機上,尤其是像《死亡細胞》這樣的杰作,是一個相當(dāng)大的挑戰(zhàn)。但這是一條崎嶇的道路。我們必須做出犧牲與讓步。

- 我們不是無懈可擊的。我們會犯錯,我們會從中學(xué)習(xí)。我們盡了最大的努力,并盡量保持開放的心態(tài)和對批評的態(tài)度。在我(作者Floutre)的工作中抽出時間來向你,我們的社區(qū)和玩家解釋事情,這并非我工作的一部分,但絕對是我的精神所在與我想成為的游戲開發(fā)者的一部分原因。

- 我們尊重你,但請不要不尊重我們或我們的工作,這不是讓游戲變得更好的方法。

?

祝你有愉快的一天,享受八小時工作制和周末,并毫不猶豫地將重生細胞介紹給你的朋友(不要怪我打廣告,哈哈)。

后記:

我是得配nia,這幾天我一直在與playdigious討論給手機添加陰影效果的方法。正如上文所說,我所做的是預(yù)先渲染,即直接利用法線貼圖給原圖添加陰影,再放到游戲中去加載。

添加陰影的實機展示

相關(guān)視頻:BV1f84y187KRBV1oY411y7P5

雖然這種方法的效果不能媲美PC端,但是聊勝于無,它也回避開了種種內(nèi)存問題。目前我與他們協(xié)商的是先給敵怪和Boss添加陰影,Boss在3.2后是讀取色帶來添加顏色的,所以我就給去色圖加了陰影部分再一條條手繪帶有陰影顏色的色帶,很麻煩但是一次手繪終身能用。好消息是他們對這個項目很感興趣,壞消息是這個計劃他們早已擱置良久(三年),目前都已經(jīng)把重心放在別的游戲上了。

所以?敬請期待咯~另外國外的廠商居然比國內(nèi)的還容易取得聯(lián)系呢,這還挺令人吃驚的。


重生細胞游戲開發(fā)的瓶頸的評論 (共 條)

分享到微博請遵守國家法律
平泉县| 西畴县| 新乡县| 胶州市| 唐山市| 阿城市| 于都县| 祁阳县| 杭州市| 东乌珠穆沁旗| 澄迈县| 马尔康县| 红原县| 崇阳县| 商河县| 黑河市| 安国市| 威宁| 安泽县| 朔州市| 新宾| 临高县| 鄂托克旗| 鄯善县| 石台县| 安庆市| 昔阳县| 汨罗市| 莱州市| 富宁县| 东兴市| 岫岩| 铁力市| 乌鲁木齐县| 施秉县| 扎赉特旗| 镇远县| 平乡县| 旅游| 拉萨市| 肃宁县|