GameDesign 板


LINE

不少遊戲初期公布的實機技術demo與最終成品有明顯畫質落差,為什麼? 本文將藉由說明在初期技術展示與最終成品階段的技術差別,來回答這個問題 順便介紹一些The Last of Us Remastered (PS4)壓榨硬體資源的技術 簡而言之:遊戲最終成品,通常所需運算資源種類與量,會比初期技術展示多 一個AAA遊戲成品在實機執行的時候,運算資源大致分配給以下幾項作業 1. 遊戲機制(CPU) 2. AI(CPU) 3. 物理(CPU and/or GPU) 4. 動畫(CPU) 5. 粒子(CPU and/or GPU) 6. 繪圖邏輯(CPU) 7. 繪圖執行(GPU) 初期實機技術demo,通常不會有多少1/2,可能會有3 4不會像最終成品消耗CPU與記憶體 所以大部分的運算資源都可以用在5/6/7 不要小看1/2/3消耗的資源量 這幾項在最終成品的資源消耗可以佔到CPU的50%以上 所以4/5/6/7能夠使用的硬體資源(粗估)只剩下初期技術demo的50% 如果在製作初期實機技術demo的時候 把100%硬體資源拿來展現4/5/6/7 那麼後來新加入1/2/3的資源消耗,勢必會產生"視覺上縮水"的情況 為了初期吸引觀眾目光,這幾乎是必然的結果 這樣是否表示AAA遊戲開發者不誠實? 見仁見智 不管是初期技術展示還是遊戲成品,硬體資源一定是幾乎被榨光的 製作初期demo的時候是否可以估計到之後會額外用到的資源? 非常難 不管是哪家工作室,應該都不想只用50%以下的硬體資源做技術展示demo吧 我個人是有了以上的認知之後 看到初期技術demo與最終成品的畫質落差 雖然會失望,但覺得比較可以接受這個事實了 接下來介紹TLOUR的一些壓榨硬體資源的技術 之前有提到,Naughty Dog為了從PS3跨到PS4 重新設計了一個平行運算的系統 負責人Christian Gyrling於今年GDC有個專題講座 強烈推薦給有興趣的資工領域朋友 影片連結 http://bit.ly/1eX5mb1 投影片連結 http://bit.ly/1HgtGQ9 TLOUR的硬體資源配置,可分為以下三種 1. 遊戲邏輯(CPU) 包含:遊戲機制、AI、物理、動畫、粒子 2. 繪圖邏輯(CPU) 生成繪圖指令,丟給GPU執行 3. 繪圖執行(GPU) 執行2生成的繪圖指令 一個單執行序的遊戲 1/2/3是串在一起,在同一個frame內線性依序執行的 如果要達到60fps,那1/2/3總共的運算時間就不可以超過16ms <A方案> CPU 遊戲邏輯 -> 繪圖邏輯 GPU -> 繪圖執行 |------------------------------| 16ms PS4有八個CPU核心,有六個是給遊戲使用的 把1/2平行化,拆給不同CPU核心執行 如此一來,1/2如果需要總共48ms執行時間,理論上只會用到8ms <B方案> CPU1 遊戲邏輯1 -> 繪圖邏輯1 CPU2 遊戲邏輯2 -> 繪圖邏輯2 CPU3 遊戲邏輯3 -> 繪圖邏輯3 CPU4 遊戲邏輯4 -> 繪圖邏輯4 CPU5 遊戲邏輯5 -> 繪圖邏輯5 CPU6 遊戲邏輯6 -> 繪圖邏輯6 GPU -> 繪圖執行 |--------------------------------| 16ms 但這還是不夠理想,CPU忙的時候GPU閒著,GPU忙的時候CPU閒著 開發AAA遊戲的精隨就是要最大幅度使用硬體資源啊! 那如果把遊戲邏輯在frame0生成的資料,暫存在記憶體 繪圖邏輯在frame1的時候用這些資料生成繪圖指令,交給GPU繪圖執行呢? 把遊戲邏輯和繪圖邏輯切成小塊,交互執行 所以感覺上遊戲邏輯和繪圖邏輯"同時"在一個CPU核心上執行 <C方案> CPUn 遊戲邏輯n (生成frame1資料) 繪圖邏輯n (使用frame0資料) GPU -> 繪圖執行 |-------------------| 16ms 嗯,光是視覺看來,就已經能夠更有效率地使用硬體資源了 但是CPU和GPU還是各有自己的閒暇時間,不行! 那如果更進一步,繪圖執行使用的資料,是繪圖邏輯上一個frame產生的呢? <D方案> CPUn 遊戲邏輯n (生成frame2資料) 繪圖邏輯n (使用frame1資料,生成frame0資料) GPU 繪圖執行 (使用frame0資料) |-------| 16ms 好了,CPU和GPU已經最大幅度使用,閒不下來啦 這個D方案就是TLOUR使用的技術 缺點就是,畫面是GPU使用兩個frame以前的舊資料呈現出來的"老畫面" 所以TLOUR是有兩個frame的延遲時間的 當玩家看到畫面上,準心瞄準敵人的頭時 從遊戲邏輯的觀點來看,敵人的頭可能已經不在準心下了 TLOUR彈藥普遍稀少,為了補償玩家,在射擊的時候 只要在過去兩個frame中有瞄準到目標,就算是判定擊中 D方案不是唯一解或最佳解,一切端看開發者考量 The Order: 1886採取的方式類似B方案(有將作業切小塊和生產線處理) 因為Ready at Dawn工作室明確表態,說不想要讓遊戲有任何延遲 所以如果他們願意採用D方案,The Order: 1886可以衝到60fps也不一定? -- Web http://AllenChou.net Twitter http://twitter.com/TheAllenChou LinkedIn http://linkedin.com/in/MingLunChou --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 45.50.175.11
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1433725304.A.F8C.html ※ 編輯: cjcat2266 (45.50.175.11), 06/08/2015 09:17:31
1F:推 yearnway: 謝謝分享~~又學到一些東西了~~ 06/08 09:53
2F:推 yhn0tgb60: 過去2個frame有擊中都算 所以邏輯資料會保留2個frame囉 06/08 10:12
3F:→ yhn0tgb60: 這樣會對記憶體造成負擔嗎 或是其實資料量很少 沒影響 06/08 10:13
4F:→ cjcat2266: 既然遊戲生得出來,就表示記憶體可以負擔吧XD 06/08 10:14
5F:→ cowbaying: 如果GPU的時脈拉到2GHz以上我推測可以用來算AI 06/08 10:24
6F:→ cowbaying: 遊戲這種hard real time運算 對於平行後的資料蒐集 06/08 10:25
7F:→ yhn0tgb60: 我的想法是 通常這個frame的資料出來時 06/08 10:25
8F:→ cowbaying: 是相當嚴苛的... 06/08 10:25
9F:→ yhn0tgb60: 上個frame的資料應該就丟了 甚至釋放了 06/08 10:26
10F:→ yhn0tgb60: 所以這作法 必須保留3個frame 的資料 06/08 10:26
11F:→ cowbaying: 或許是硬體特性的問題 目前開發的HSA項目 06/08 10:28
12F:→ cjcat2266: 當然不是所有資料全保留啊,只保留繪圖相關資料而已 06/08 10:28
13F:→ cowbaying: 在GPU時脈800Mhz下 簡易四則運算的回應時間是 06/08 10:29
14F:→ cjcat2266: 我們已經三個人在平行發言了XD 06/08 10:29
15F:推 cowbaying: 1000~5000ns 比CPU慢了約100倍 06/08 10:29
16F:推 cowbaying: XDDDDDD 06/08 10:30
17F:→ cowbaying: 這就是沒有ordered的關係 06/08 10:30
18F:推 cowbaying: 但是兩個frame的延遲我認為算很嚴重了 至少競技類 06/08 10:32
19F:→ cowbaying: 的遊戲應用起來很困難 06/08 10:32
20F:→ cjcat2266: 頑皮狗做的遊戲都是單人線性劇情走向,所以沒問題的XD 06/08 10:33
21F:推 akilight: 不過TLOU和uncharted不是都有多人對戰嗎? 06/08 12:07
22F:→ akilight: 對人對戰的部份也是用這種2 frame方式處理,還是改以反應 06/08 12:07
23F:→ akilight: 速度為優先考量呢? 06/08 12:07
24F:→ cjcat2266: 是使用同一套系統,畢竟射擊遊戲的被攻方錯誤容許度高 06/08 12:45
25F:→ cjcat2266: 攻方如果發現有瞄準到的敵人沒有攻擊判定,會很明顯 06/08 12:46
26F:→ cjcat2266: 而被攻方受到攻擊判定,也就只能認了 06/08 12:46
27F:→ cjcat2266: 一般也不會覺得 "明明自己躲過瞄準了,怎麼還被打到?" 06/08 12:47
28F:→ cjcat2266: 因為被攻方也看不到攻方的準星是否有瞄到自己 06/08 12:47
29F:推 akilight: 了解XD 06/08 13:55
30F:推 wyvernlee: 專業文! 06/08 14:43
31F:推 holymars: 試著回答記憶體的問題:通常邏輯部份並不佔多少記憶體 06/08 16:22
32F:→ holymars: 理論上,多存兩個frame的邏輯狀態並不會增加多少記憶體 06/08 16:23
33F:→ holymars: 需求,至少和texture/audio之類動不動就上百MB比起來是 06/08 16:23
34F:→ holymars: 很小的問題 06/08 16:23
35F:→ cjcat2266: 也不用存邏輯狀態,只要存繪圖需要的transform就好 06/08 16:32
36F:推 azureblaze: 記憶體幾乎就是texture的意思了 其他比起來都是渣XD 06/08 19:26
37F:推 lemmii: 推好文 06/08 23:27
※ 編輯: cjcat2266 (160.33.43.15), 06/09/2015 01:01:44
38F:推 wangm4a1: 推 06/09 02:16
39F:推 yoyoleo0505: 推 06/09 08:51
40F:→ yhn0tgb60: 邏輯資料的記憶體 的確是非常小沒錯 06/09 13:24
41F:→ yhn0tgb60: 只是想到 videogame的記憶體也是寸土寸金 XD 06/09 14:33







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP