作游戲宏設(shè)置到模擬器調(diào)優(yōu):輸入與渲染的底層邏輯)
最近在玩家群和論壇里看到的幾個(gè)高頻話題恰好都讓我手癢一是《仁王3》的情報(bào)出來(lái)之后群里討論得最熱鬧的居然不是難度設(shè)計(jì)而是宏設(shè)置二是《浪人崛起》和《戰(zhàn)神3》這兩款新舊動(dòng)作游戲總有人拿著各種模擬器參數(shù)來(lái)回比對(duì)三是The Dark Rites of Akham這款冷門(mén)ARPG很多人因?yàn)槊珠L(zhǎng)得像某款大作的DLC而差點(diǎn)錯(cuò)過(guò)。這三個(gè)話題單看毫無(wú)關(guān)聯(lián)一個(gè)是新作操作優(yōu)化一個(gè)是老游戲兼容運(yùn)行一個(gè)是小眾游戲安利。但我實(shí)際都折騰了一遍之后發(fā)現(xiàn)它們底層指向同一件事——你對(duì)游戲的輸入管線和渲染管線理解得越深很多看似無(wú)關(guān)的問(wèn)題就越容易定位。這篇文章就把我最近調(diào)這三樣?xùn)|西的過(guò)程、參數(shù)、坑以及背后共通的經(jīng)驗(yàn)一次說(shuō)清楚。適合三類人看玩硬核動(dòng)作游戲想提高操作上限的、喜歡鼓搗模擬器和解鎖幀率的、以及想找個(gè)冷門(mén)佳作消遣但不想被糟糕的畫(huà)面設(shè)置勸退的。1. 拆開(kāi)《仁王3》的宏設(shè)置自動(dòng)化輸入不是簡(jiǎn)單的連點(diǎn)1.1 宏解決的本質(zhì)問(wèn)題把“操作序列”從“反應(yīng)時(shí)機(jī)”中剝離很多人一聽(tīng)到宏第一反應(yīng)是“作弊”“一鍵連招”。其實(shí)在《仁王3》這類高速動(dòng)作游戲里宏真正的價(jià)值不是幫你打出來(lái)你打不出來(lái)的操作而是把你已經(jīng)會(huì)打的固定連段從“每一遍都要分神控制節(jié)奏”變成“按一下穩(wěn)定重復(fù)”。這里有個(gè)根本邏輯要先搞清楚動(dòng)作游戲的輸入可以分成兩類。一類是“已知且確定的序列”比如輕攻擊接殘心再接武器切換再接重攻擊節(jié)奏是固定的只跟幀數(shù)和精力恢復(fù)速度有關(guān)。另一類是“需要反應(yīng)時(shí)機(jī)的操作”比如彈反、閃避、看一眼紅光再按這類操作的核心是判斷不是序列。宏能處理的是前者不能處理后者。我見(jiàn)過(guò)很多新人把自動(dòng)彈反寫(xiě)進(jìn)宏里結(jié)果被小怪按在地上打——因?yàn)楹旮静恢罃橙耸裁磿r(shí)候出手它只是在一個(gè)固定時(shí)間點(diǎn)按了一個(gè)鍵。《仁王3》里的高收益連段普遍長(zhǎng)七八個(gè)輸入起步中間還穿插殘心取消后搖、切武器取消收刀這類進(jìn)階技巧。手搓當(dāng)然可以但長(zhǎng)時(shí)間刷材料的場(chǎng)景下精力和注意力都會(huì)下降最后一小段節(jié)奏亂了整個(gè)連段就斷掉。宏的意義在于把“可重復(fù)的部分”徹底自動(dòng)化讓你把注意力全部留給boss的變招。1.2 延遲是該用幀率算的60幀和30幀的宏完全是兩套參數(shù)寫(xiě)宏最容易犯的錯(cuò)誤就是憑感覺(jué)填延遲。延遲的本質(zhì)是什么是你前一個(gè)動(dòng)作已經(jīng)產(chǎn)生效果、后一個(gè)動(dòng)作可以安全接上的最早時(shí)間點(diǎn)。這個(gè)時(shí)間點(diǎn)由游戲的幀率決定不能隨便給。舉個(gè)例子。假設(shè)游戲以60幀運(yùn)行一幀的時(shí)間大概是16.67ms。某個(gè)輕攻擊動(dòng)作從按下到產(chǎn)生傷害判定的前搖是3幀之后還有6幀的后搖動(dòng)畫(huà)。那么你要接殘心的話至少得等這6幀后搖結(jié)束也就是大約100ms。實(shí)際的宏設(shè)置里我會(huì)在這個(gè)理論值之上加10到20ms的余量因?yàn)樵O(shè)備驅(qū)動(dòng)、系統(tǒng)調(diào)度都會(huì)有微小抖動(dòng)。太激進(jìn)的話宏發(fā)出去的按鍵在游戲看來(lái)是“后搖還沒(méi)結(jié)束就輸入新指令”游戲會(huì)直接吞掉。反過(guò)來(lái)如果游戲鎖定30幀一幀變成33.3ms那同樣6幀的后搖就是200ms跟60幀下的設(shè)置差了整整一倍。直接套用別人60幀的宏配置后果就是你按下去的殘心大概率被吞。這就是為什么網(wǎng)上那些“萬(wàn)能宏”基本不靠譜大部分人拿來(lái)直接用不對(duì)勁不是宏工具的問(wèn)題是延遲參數(shù)沒(méi)有跟著實(shí)際幀率換算。下面是我在訓(xùn)練場(chǎng)實(shí)測(cè)后的一組個(gè)人向參考配置武器是單刀精力值滿格60幀環(huán)境macro 殘心-切武器-重?fù)?{ trigger: MouseButton5 repeat: single steps: [ { action: light_attack, delay: 0 }, { action: wait, delay: 90 }, { action: ki_pulse, delay: 120 }, { action: weapon_swap, delay: 150 }, { action: heavy_attack, delay: 80 } ] }每個(gè)字段含義很簡(jiǎn)單按下鼠標(biāo)側(cè)鍵后先觸發(fā)輕攻擊等90ms再觸發(fā)殘心再等120ms切換武器最后等80ms觸發(fā)重攻擊。這套參數(shù)我調(diào)了大概半小時(shí)從初始的60ms起步每次加5ms反復(fù)試直到連著觸發(fā)二十次不吞鍵才算穩(wěn)定。需要特別說(shuō)明的是這只是個(gè)人向參考不同武器、不同精力值、甚至不同難度下敵人的受擊硬直都會(huì)影響實(shí)際連段的反饋。你復(fù)現(xiàn)的時(shí)候別直接抄把它當(dāng)成一個(gè)起點(diǎn)去微調(diào)。1.3 輸入緩沖機(jī)制宏反而可能打亂游戲自帶的預(yù)輸入節(jié)奏這里有個(gè)很多宏教程都沒(méi)提的坑。《仁王》系列和《仁王3》一樣自帶輸入緩沖機(jī)制——你在一個(gè)動(dòng)作后搖快結(jié)束時(shí)按下個(gè)鍵游戲會(huì)把這次的輸入“預(yù)存”起來(lái)等到動(dòng)作一結(jié)束馬上觸發(fā)。這個(gè)機(jī)制的初衷是讓手搓玩家有更好的操作體驗(yàn)不至于因?yàn)樘崆鞍霂戳司蛠G指令。但宏恰恰容易跟這個(gè)機(jī)制沖突。如果你的宏里每個(gè)動(dòng)作之間的延遲剛好卡在“后搖還沒(méi)結(jié)束”的臨界點(diǎn)游戲會(huì)把你宏發(fā)出的輸入當(dāng)成預(yù)輸入緩存起來(lái)。這時(shí)候會(huì)出現(xiàn)兩種情況一是宏繼續(xù)發(fā)后面的指令結(jié)果全被緩存排隊(duì)真正在游戲里生效的動(dòng)作順序完全亂了二是緩存動(dòng)作替代了你要接的動(dòng)作連段直接變形。所以我的建議是宏里的等待時(shí)間寧可偏長(zhǎng)不要偏短。延時(shí)偏長(zhǎng)最壞的結(jié)果是連段慢半拍但對(duì)于“穩(wěn)定重復(fù)”這個(gè)目的來(lái)說(shuō)慢半拍完全可以接受。延時(shí)偏短的結(jié)果則是吞鍵和亂序那是災(zāi)難。手搓需要的是把預(yù)輸入利用到極致來(lái)縮短幀數(shù)宏恰恰應(yīng)該反著來(lái)留足余量換取絕對(duì)穩(wěn)定。1.4 宏的合規(guī)邊界什么能自動(dòng)化什么別碰這個(gè)必須單獨(dú)拿一段說(shuō)清楚。宏這個(gè)東西在很多游戲里的定位很模糊不同作品的規(guī)則也不一樣。以《仁王3》為例單機(jī)刷材料、刷詞條這類PVE場(chǎng)景我個(gè)人認(rèn)為把固定連段做成宏屬于個(gè)人操作輔助問(wèn)題不大。但如果你跑去聯(lián)機(jī)PVP或者參與排行榜最好先確認(rèn)游戲的用戶協(xié)議是否允許這類自動(dòng)化輸入。不同平臺(tái)、不同區(qū)域?qū)Φ谌捷斎牍ぞ叩呐卸ú町惡艽蟛染€的事我不建議干封號(hào)成本遠(yuǎn)高于那點(diǎn)操作便利。還有一類操作我強(qiáng)烈不建議自動(dòng)化就是自動(dòng)閃避、自動(dòng)彈反。前面說(shuō)過(guò)這類操作的核心是反應(yīng)時(shí)機(jī)宏幫不了你。更關(guān)鍵的是一旦你形成依賴手搓能力會(huì)退化到時(shí)候離開(kāi)宏連正常打過(guò)一張圖都費(fèi)勁。宏的正確用法是輔助“重復(fù)勞動(dòng)”而不是替代“實(shí)戰(zhàn)能力”。2. 模擬器設(shè)置不是抄參數(shù)以《浪人崛起》《戰(zhàn)神3》為例說(shuō)清三件事2.1 為什么這兩款游戲總被擺在一起聊《浪人崛起》和《戰(zhàn)神3》放在一起表面看是“一個(gè)新作一個(gè)老作”實(shí)際在PC兼容環(huán)境或模擬器場(chǎng)景下它們面對(duì)的問(wèn)題是高度相似的。一個(gè)共同點(diǎn)是這兩款游戲原本都不是為開(kāi)放硬件平臺(tái)設(shè)計(jì)的默認(rèn)設(shè)置下畫(huà)面的呈現(xiàn)、幀率的穩(wěn)定性都受限于原始平臺(tái)。玩家想在更高分辨率、更高幀率下體驗(yàn)就得手動(dòng)去調(diào)各種參數(shù)。另一個(gè)更隱蔽的共同點(diǎn)是它們都是典型的吃單核性能和著色器編譯效率的動(dòng)作游戲。動(dòng)作游戲不像策略游戲或者開(kāi)放世界那樣對(duì)多核利用充分它的核心戰(zhàn)斗邏輯往往集中在一兩個(gè)線程上單線程不行其他核心再多也白搭。這就導(dǎo)致了一套很反直覺(jué)的調(diào)優(yōu)規(guī)則你不能無(wú)腦把所有核心都拉滿反而要找出那個(gè)瓶頸線程針對(duì)性地優(yōu)化它周?chē)臇|西。很多人拿著別人分享的“完美參數(shù)”直接套發(fā)現(xiàn)畫(huà)面還是卡幀率還是穩(wěn)不住。原因很簡(jiǎn)單模擬器的兼容層和驅(qū)動(dòng)版本、硬件組合千差萬(wàn)別同一個(gè)參數(shù)在不同機(jī)器上的表現(xiàn)可能差出一倍。所以我不建議抄參數(shù)我建議你理解幾個(gè)關(guān)鍵的調(diào)節(jié)邏輯然后自己跑一輪對(duì)照測(cè)試。2.2 圖形后端選擇Vulkan優(yōu)先但別一條路走到黑圖形API的選擇是模擬器設(shè)置里影響最大的一步?jīng)]有之一。以《戰(zhàn)神3》這類老游戲?yàn)槔诩嫒輰永锱芷饋?lái)Vulkan后端通常比OpenGL后端明顯更快原因是Vulkan的驅(qū)動(dòng)開(kāi)銷(xiāo)更低、多線程命令提交做得更好而且對(duì)著色器編譯的預(yù)緩存機(jī)制更完善。但Vulkan不是萬(wàn)能藥。我在一些舊的N卡和中低端顯卡上實(shí)測(cè)Vulkan反而不如OpenGL穩(wěn)定具體表現(xiàn)為貼圖隨機(jī)閃爍、過(guò)場(chǎng)動(dòng)畫(huà)黑屏、或者進(jìn)游戲后著色器編譯期間狂掉幀。反而是OpenGL在這種環(huán)境下雖然幀率上限低一點(diǎn)但畫(huà)面穩(wěn)定不容易出現(xiàn)奇怪的花屏問(wèn)題。我的建議是默認(rèn)先用Vulkan跑一遍如果遇到上述癥狀不要猶豫直接切OpenGL再跑。不是越新的API就一定越好是“你的硬件驅(qū)動(dòng)環(huán)境”和哪個(gè)API契合度更高哪個(gè)就更適合你。2.3 CPU線程調(diào)度與幀率先鎖30幀跑到穩(wěn)再考慮解鎖60這類動(dòng)作游戲模擬器調(diào)優(yōu)最常見(jiàn)的一個(gè)錯(cuò)誤是上來(lái)就把幀率解鎖到60甚至120結(jié)果發(fā)現(xiàn)游戲“變快了”但手感反而變得黏滯難控。原因很好解釋。動(dòng)作游戲里很多邏輯是綁定幀數(shù)跑的比如受擊硬直的持續(xù)時(shí)間、攻擊前搖的判定窗口、連段接續(xù)的輸入緩沖窗口。在你解鎖幀率之后畫(huà)面渲染幀數(shù)上去了但這些邏輯幀未必同步拉高于是你看到角色動(dòng)作變流暢了實(shí)際判定卻和畫(huà)面錯(cuò)位自然覺(jué)得“不對(duì)”。正確的順序是先把幀率鎖在原始游戲設(shè)定值上比如戰(zhàn)神3原生30幀就先讓它穩(wěn)定跑在30幀確保每幀生成時(shí)間都差不多。確認(rèn)基礎(chǔ)幀率穩(wěn)定之后再考慮嘗試解鎖。解鎖后不要只看平均幀數(shù)要看幀生成曲線的波動(dòng)哪怕平均60幀如果波動(dòng)幅度超過(guò)10ms手感依然會(huì)稀爛。CPU線程方面很多模擬器的默認(rèn)設(shè)置是“自動(dòng)分配”這個(gè)選項(xiàng)一般不會(huì)太差但不是最優(yōu)。你需要打開(kāi)任務(wù)管理器之類的東西盯著各線程負(fù)載看。如果發(fā)現(xiàn)只有一個(gè)線程接近100%而其他核心都在摸魚(yú)說(shuō)明瓶頸在單線程這時(shí)候你把模擬器的線程數(shù)調(diào)得再大也白搭反而可能因?yàn)榫€程切換開(kāi)銷(xiāo)導(dǎo)致更卡。反過(guò)來(lái)說(shuō)如果多個(gè)線程負(fù)載都很高那才說(shuō)明是整體CPU算力不足可以試著降低模擬器的精度選項(xiàng)來(lái)?yè)Q取幀率。2.4 畫(huà)質(zhì)增強(qiáng)的取舍分辨率白賺陰影精度要克制模擬器相比原生平臺(tái)的一大優(yōu)勢(shì)就是可以“免費(fèi)”升級(jí)畫(huà)質(zhì)——不需要換顯卡不需要打MOD直接在設(shè)置里拉分辨率縮放就能獲得遠(yuǎn)超原生的畫(huà)面。但這個(gè)“免費(fèi)”是有代價(jià)的每一項(xiàng)都有一個(gè)明碼標(biāo)價(jià)只是付賬的不是金錢(qián)而是性能和穩(wěn)定性。下面是我實(shí)測(cè)下來(lái)比較穩(wěn)妥的參考表設(shè)置項(xiàng)推薦值代價(jià)與說(shuō)明分辨率縮放2x起步上限看GPU占用對(duì)GPU壓力最大但動(dòng)作游戲需要清晰看清敵人動(dòng)作值得先給各向異性過(guò)濾開(kāi)到最大遠(yuǎn)景紋理清晰度提升明顯幾乎不消耗性能能開(kāi)就開(kāi)陰影精度中檔即可高和超高肉眼差異很小但對(duì)幀生成時(shí)間影響明顯別貪著色器緩存設(shè)大一些有效降低每關(guān)開(kāi)頭卡頓代價(jià)只是硬盤(pán)空間后處理特效先保持默認(rèn)有些后處理在模擬器下會(huì)破壞畫(huà)面層次感尤其影響動(dòng)作游戲出招觀察特別說(shuō)一下分辨率縮放。這項(xiàng)我給的建議是“從2x開(kāi)始往上試”而不是直接拉滿。因?yàn)榉直媛士s放提升的不是簡(jiǎn)單畫(huà)質(zhì)而是渲染分辨率它直接影響你能否看清楚敵人的出招。動(dòng)作游戲里“看得到”永遠(yuǎn)優(yōu)先于“好看”2x通常已經(jīng)能解決原生模糊的問(wèn)題再往上主要是銳度和細(xì)節(jié)層面的提升了這時(shí)候要看GPU占用率和幀生成曲線來(lái)決定是否繼續(xù)。2.5 模擬器調(diào)試的順序別憑感覺(jué)改要跑同一段地圖驗(yàn)證最后這條是血的教訓(xùn)。我早期調(diào)試的時(shí)候改一項(xiàng)設(shè)置就跑一個(gè)地方看一眼結(jié)果根本沒(méi)法判斷到底是哪項(xiàng)改動(dòng)生效了因?yàn)橛螒虿煌瑘?chǎng)景的負(fù)載差異太大某個(gè)關(guān)口本來(lái)就不卡跑過(guò)去以為是自己調(diào)好了換個(gè)場(chǎng)景又打回原形。正確的調(diào)試順序是固定的先選定一段地圖這段地圖最好包含一個(gè)開(kāi)闊場(chǎng)景加一個(gè)boss戰(zhàn)因?yàn)樗芡瑫r(shí)考驗(yàn)GPU的峰值負(fù)載和CPU的邏輯密集度。然后每一輪只改一個(gè)設(shè)置項(xiàng)跑完這段圖記錄三個(gè)數(shù)據(jù)平均幀率、最低幀率、幀生成時(shí)間曲線的波動(dòng)范圍。全部比對(duì)完再綜合取舍。我之前調(diào)《戰(zhàn)神3》的時(shí)候一輪一輪改下來(lái)發(fā)現(xiàn)最影響手感的是著色器緩存大小——緩存設(shè)太小時(shí)每進(jìn)一個(gè)新區(qū)域就會(huì)突然卡一下。當(dāng)時(shí)還以為是顯卡驅(qū)動(dòng)問(wèn)題來(lái)回折騰了整整一個(gè)晚上才定位。所以這個(gè)順序一定不要跳別相信一次改三個(gè)參數(shù)能節(jié)省時(shí)間出了問(wèn)題你連是哪一個(gè)導(dǎo)致的都查不出來(lái)。3. The Dark Rites of Akham被名字耽誤的細(xì)節(jié)型ARPG3.1 游戲定位與第一印象像DLC的名字意外扎實(shí)的內(nèi)容第一次看到The Dark Rites of Akham這個(gè)標(biāo)題我第一反應(yīng)是“哪個(gè)大作的DLC”結(jié)果一查才知道是獨(dú)立作品。整件事情就很諷刺這款游戲被埋沒(méi)的原因就是名字太像資料片了很多玩家在掃商店列表時(shí)直接劃過(guò)。但實(shí)際玩進(jìn)去之后它的內(nèi)容密度和機(jī)制深度完全不是一個(gè)小品級(jí)游戲該有的水準(zhǔn)。游戲的核心定位可以概括為暗黑奇幻風(fēng)格的俯視角ARPG戰(zhàn)斗節(jié)奏偏慢但邏輯層很厚每個(gè)地圖區(qū)域都塞滿了需要你回頭用新能力解開(kāi)的隱藏要素。上手第一小時(shí)的體驗(yàn)不太好——引導(dǎo)極少界面信息密度極高菜單字段密密麻麻你甚至分不清哪些是狀態(tài)、哪些是資源、哪些是任務(wù)提示。但只要你熬過(guò)這個(gè)階段就會(huì)發(fā)現(xiàn)它的機(jī)制設(shè)計(jì)是有明確自洽邏輯的而且越玩越能感受到設(shè)計(jì)者的克制和講究。我的建議是第一小時(shí)不要因?yàn)槭指衅g就輕易卸載把攻擊動(dòng)作、閃避動(dòng)作和道具使用分開(kāi)來(lái)看。這個(gè)游戲的攻擊手感更像傳統(tǒng)日式ARPG強(qiáng)調(diào)站位和節(jié)奏而不是現(xiàn)代動(dòng)作游戲的高速連招流。3.2 儀式系統(tǒng)所有永久強(qiáng)化都綁在風(fēng)險(xiǎn)回報(bào)上The Dark Rites of Akham最核心的系統(tǒng)就是標(biāo)題里的“儀式”。和大多數(shù)ARPG里“升級(jí)就自動(dòng)解鎖技能”的爽快邏輯不同這款游戲里幾乎所有類型的永久強(qiáng)化都不會(huì)白給你而是需要通過(guò)完成“黑暗儀式”來(lái)?yè)Q取。儀式散布在地圖各處每個(gè)儀式對(duì)應(yīng)一個(gè)強(qiáng)化方向有的給屬性點(diǎn)有的解鎖新法術(shù)位有的提供跨區(qū)域的傳送標(biāo)記。儀式的執(zhí)行邏輯很考驗(yàn)資源管理。每次儀式需要三類材料獻(xiàn)祭道具、儀式媒介、靈魂碎片。獻(xiàn)祭道具通常來(lái)自特定敵人掉落儀式媒介需要在地圖隱秘角落開(kāi)箱子獲得靈魂碎片則是在獲得擊殺終結(jié)時(shí)額外獲取。這三樣?xùn)|西沒(méi)有一個(gè)是能靠無(wú)腦刷量快速搞定的每種材料都有限制條件。更麻煩的是儀式一旦啟動(dòng)你腳下的儀式圈會(huì)持續(xù)生成干擾波角色在波動(dòng)期間不能離開(kāi)儀式圈太遠(yuǎn)否則儀式直接中斷材料當(dāng)場(chǎng)作廢。等于說(shuō)每個(gè)儀式都是一次小型的風(fēng)險(xiǎn)投資你做成了獲得一項(xiàng)永久強(qiáng)化你失敗了材料消失只能回頭重新收集。這種設(shè)計(jì)放到大型游戲里也很少見(jiàn)尤其在現(xiàn)代游戲普遍討好玩家的背景下這種“付出不一定有回報(bào)”的硬核資源循環(huán)反而讓我覺(jué)得格外有味道。3.3 配置建議與卡點(diǎn)處理性能瓶頸和幾個(gè)值得注意的點(diǎn)這款游戲的畫(huà)面不算頂級(jí)但它的動(dòng)態(tài)陰影和霧氣特效設(shè)計(jì)得很重對(duì)中低端電腦的拖累非常明顯。如果你的機(jī)器不算新進(jìn)游戲后先做一件事把動(dòng)態(tài)陰影關(guān)掉再試霧效的品質(zhì)檔位。我實(shí)測(cè)動(dòng)態(tài)陰影在這款游戲里消耗大得離譜而且它影響的是幀生成時(shí)間的穩(wěn)定性不是單純幀率高低關(guān)了之后手感會(huì)立刻流暢不少。幾個(gè)常見(jiàn)卡點(diǎn)和處理方法我直接列出來(lái)儀式需要的素材有固定的天氣/時(shí)間段要求比如某個(gè)媒介只有在“血月”時(shí)段才會(huì)出現(xiàn)在特定區(qū)域。前期跑圖去收集經(jīng)常會(huì)撲空不是位置找錯(cuò)了是時(shí)段不對(duì)。先推進(jìn)主線解鎖天氣切換能力再回頭補(bǔ)收集。戰(zhàn)斗中的儀式材料切換非常麻煩建議把“儀式道具”綁定到鼠標(biāo)側(cè)鍵或手柄的肩鍵上。我一開(kāi)始沒(méi)調(diào)整快捷鍵每次戰(zhàn)斗切材料都要暫停開(kāi)菜單節(jié)奏全碎了。存檔機(jī)制是自動(dòng)存檔加手動(dòng)篝火存檔的雙軌制。自動(dòng)存檔頻率很高但不會(huì)保留到儀式啟動(dòng)之前的節(jié)點(diǎn)。做儀式前一定手動(dòng)存一次不然中斷后材料損失了沒(méi)法撤銷(xiāo)。這個(gè)習(xí)慣幫我省了至少兩個(gè)小時(shí)的重復(fù)勞動(dòng)。3.4 從冷門(mén)游戲反推回來(lái)的通用經(jīng)驗(yàn)看輸入緩沖和取消窗口玩完這款游戲再回頭看《仁王3》的宏和模擬器設(shè)置我發(fā)現(xiàn)一個(gè)很有意思的共同點(diǎn)所有動(dòng)作游戲不管3A大作還是獨(dú)立作品玩家最應(yīng)該先看的兩個(gè)設(shè)計(jì)參數(shù)是“輸入緩沖時(shí)長(zhǎng)”和“動(dòng)作取消窗口”。這兩個(gè)數(shù)值決定了你按下一個(gè)鍵之后指令是多快生效、多快能被下個(gè)動(dòng)作覆蓋本質(zhì)上就是你寫(xiě)宏和調(diào)輸入延遲時(shí)參照的游戲底層邏輯。The Dark Rites of Akham在這兩個(gè)參數(shù)上給得很保守輸入緩沖短取消窗口也短所以它的手感天然偏沉重——你按出去的每一刀都有實(shí)際“重量”沒(méi)法靠快速連打來(lái)取消硬直。理解了這一點(diǎn)你就能解釋為什么它在視覺(jué)上看起來(lái)笨重不是制作組技術(shù)不行是他們刻意用短取消窗口換取了戰(zhàn)斗的決策重量感。懂了這個(gè)你再回去調(diào)《仁王3》的宏就會(huì)自然地去看動(dòng)作幀表而不是悶頭試延遲。這也是我為什么堅(jiān)持覺(jué)得這三個(gè)話題應(yīng)該放一起聊——操作的邊界畫(huà)面的邊界最終都是設(shè)計(jì)參數(shù)的邊界理解邊界的人才能精確地調(diào)整邊界。4. 三件事背后的共同調(diào)優(yōu)思路一張可以復(fù)用的排錯(cuò)清單4.1 輸入延遲的排查順序先從畫(huà)面鏈路查起別懷疑手速不管是宏不生效、模擬器手感發(fā)粘、還是ARPG里閃避總是慢半拍你遇到“操作感覺(jué)不對(duì)”的第一反應(yīng)往往是“我又按慢了”。但根據(jù)我的經(jīng)驗(yàn)真正的問(wèn)題大概率在前面三輪排查里跟你的手速一點(diǎn)關(guān)系都沒(méi)有。第一輪查顯示設(shè)備。你是不是接了電視或者一臺(tái)沒(méi)開(kāi)游戲模式的顯示器顯示設(shè)備的輸入延遲可以從十幾ms到五六十ms不等這比你宏里任何一個(gè)微調(diào)都更能毀掉手感。先把顯示器或者電視的游戲模式打開(kāi)再重新試一輪。很多人忽略這點(diǎn)換了幾套宏參數(shù)都沒(méi)改善最后發(fā)現(xiàn)是電視的響應(yīng)模式?jīng)]開(kāi)。第二輪查幀生成時(shí)間。幀率平均值65fps不代表穩(wěn)定如果幀生成曲線上下亂跳實(shí)際感知就是“時(shí)快時(shí)慢”的卡頓感操作經(jīng)常對(duì)不上畫(huà)面。用工具看曲線別只看幀數(shù)平均值。第三輪查輸入設(shè)備回報(bào)率。游戲鼠標(biāo)的默認(rèn)回報(bào)率一般是1000Hz也就是每1ms上報(bào)一次。很多辦公鼠標(biāo)是125Hz每8ms才報(bào)一次。在動(dòng)作游戲的高強(qiáng)度連段下這個(gè)差距足以導(dǎo)致偶爾吞掉一兩個(gè)輸入。第四輪才輪到游戲內(nèi)部的輸入緩沖和取消窗口設(shè)計(jì)。這時(shí)候才可以考慮去調(diào)宏延遲或者改鍵位因?yàn)檐浖拥膯?wèn)題通常最后才看得出來(lái)。4.2 先軟后硬別一卡就先怪硬件不行我見(jiàn)過(guò)太多人卡頓第一反應(yīng)是換顯卡、加內(nèi)存但我處理這些問(wèn)題的順序永遠(yuǎn)是先軟后硬。所謂先軟是指先把驅(qū)動(dòng)版本、模擬器參數(shù)、游戲內(nèi)設(shè)置、后臺(tái)占用全部排查干凈確認(rèn)軟件層沒(méi)有明顯問(wèn)題之后再考慮硬件的瓶頸。為什么因?yàn)檐浖拥母膭?dòng)是零成本的改動(dòng)一輪測(cè)試一輪最多損失一點(diǎn)時(shí)間。硬件升級(jí)是有成本的一旦換了發(fā)現(xiàn)不是瓶頸那這筆錢(qián)基本白花。而且模擬器場(chǎng)景有個(gè)特殊規(guī)律CPU比GPU更重要單線程性能比核心總數(shù)更重要。一個(gè)高頻低核CPU在模擬器里往往表現(xiàn)比低頻多核CPU更好這是很多人換了頂配顯卡依然卡頓的根源。在The Dark Rites of Akham這類新游戲里GPU的比重又開(kāi)始上升但先軟后硬的原則不變——游戲里的陰影和霧效兩項(xiàng)設(shè)置往往就能讓中端卡改變命運(yùn)。4.3 配置備份這是成本最低、收益最被低估的習(xí)慣調(diào)好一套宏配置、一套模擬器參數(shù)、一套游戲畫(huà)面設(shè)置之后第一件事不是開(kāi)玩而是把配置文件整體備份一份。宏工具的配置一般是文件或目錄模擬器的配置通常也是個(gè)目錄游戲設(shè)置大多也有配置文件。把它們統(tǒng)一拷貝到一個(gè)備份文件夾里寫(xiě)上日期和本次改動(dòng)的核心內(nèi)容。不要小看這個(gè)習(xí)慣。模擬器、宏工具和游戲本體都有可能因?yàn)楦?、重裝系統(tǒng)、換電腦而出現(xiàn)配置丟失或失效。有了備份導(dǎo)入回去頂多微調(diào)一下就能恢復(fù)沒(méi)有備份從零開(kāi)始重調(diào)一套穩(wěn)定的參數(shù)一晚上時(shí)間就沒(méi)了。我自己的習(xí)慣是每次調(diào)優(yōu)后順手導(dǎo)出一份注釋寫(xiě)“換驅(qū)動(dòng)后需復(fù)核”“關(guān)陰影后穩(wěn)定”“宏延遲從90改100”這種一句話備注。省下來(lái)的時(shí)間遠(yuǎn)超備份那兩分鐘。4.4 最后幾個(gè)數(shù)字化的復(fù)盤(pán)經(jīng)驗(yàn)寫(xiě)到最后我想把幾條我已經(jīng)固化為習(xí)慣的東西再?gòu)?qiáng)調(diào)一次。調(diào)這些設(shè)置最忌諱的就是“憑感覺(jué)改”。我的做法是每一次改動(dòng)之前先記錄當(dāng)前這幾個(gè)關(guān)鍵參數(shù)的值改動(dòng)之后用同一段流程復(fù)測(cè)再記錄結(jié)果。三個(gè)數(shù)據(jù)維度平均幀率、最低幀率、幀生成時(shí)間波動(dòng)范圍。只有數(shù)字變了我才承認(rèn)這次改動(dòng)是有效的否則不管畫(huà)面看起來(lái)是不是“好像好了一點(diǎn)”都視為無(wú)效調(diào)整。這個(gè)習(xí)慣是從模擬器調(diào)試?yán)镳B(yǎng)成的后來(lái)用到宏設(shè)置和ARPG配置上發(fā)現(xiàn)完全通用。宏不生效就記錄哪個(gè)延遲參數(shù)吞鍵畫(huà)面不對(duì)就記錄哪個(gè)渲染選項(xiàng)抖動(dòng)最大。一切問(wèn)題都要能追溯到具體某項(xiàng)參數(shù)上才不會(huì)反復(fù)試錯(cuò)浪費(fèi)時(shí)間。順手分享一個(gè)小技巧我每次調(diào)完一套基本穩(wěn)定的設(shè)置都會(huì)截一張配置頁(yè)面的截圖存進(jìn)備份文件夾同時(shí)寫(xiě)下那天測(cè)試用的地圖、boss和大致幀數(shù)記錄。下次再有人問(wèn)我“你這套設(shè)置怎么調(diào)的”直接把截圖和參數(shù)丟過(guò)去對(duì)方也能按圖索驥。這套方式既不神秘也不高深純粹是愿意多做幾分鐘記錄的事但它能讓你所有的折騰都變成可復(fù)用的經(jīng)驗(yàn)而不是隨風(fēng)就散的碎片記憶。好了這次關(guān)于宏、模擬器設(shè)置和冷門(mén)ARPG的三件事就聊到這。如果你也正在調(diào)某款動(dòng)作游戲或者模擬器遇到奇怪的問(wèn)題不妨先按上面這套順序排查一輪大概率能省下幾個(gè)小時(shí)的折騰時(shí)間。