[程式] 遊戲程式:批次邏輯的時域切割 (更正翻譯)
看板GameDesign (遊戲設計)作者cjcat2266 (CJ Cat)時間8年前 (2017/03/23 14:02)推噓17(17推 0噓 7→)留言24則, 15人參與討論串1/2 (看更多)
timeslicing算是我進入業界一開始接觸到的技巧之一吧
非常實用且幾乎每天都會摸到
簡單來說就是有必須反覆執行的輕量批次邏輯
不用每個frame全部執行,可以分多個frame執行,分擔負擔
像是100個NPC不用每個frame都全部執行,每frame處理20個可省下80%決策運算時間
反映NPC決策的動畫層,因為與決策層中間透過介面溝通
這種幾個frame決策延遲並不會被玩家注意到
(除非你在做無法容忍延遲的格鬥遊戲,那你是要100個NPC幹嘛啦XD)
時域切割 同步/非同步 的 資料讀取輸入/儲存輸出,又有四種排列組合
本文有精美動畫供參考 :)
那就廢話不多說了(好像已經講了一堆)
連結在此 http://wp.me/p4mzke-14V
動畫生成原始碼在此 https://github.com/TheAllenChou/timeslicing
這是遊戲程式系列文的一部分 http://allenchou.net/game-programming-series/
請多指教 :)
--
Web http://AllenChou.net
Twitter http://twitter.com/TheAllenChou
LinkedIn http://linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.174.112.138
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1490248946.A.C95.html
※ 編輯: cjcat2266 (104.174.112.138), 03/23/2017 14:04:36
推
03/23 14:11, , 1F
03/23 14:11, 1F
※ 編輯: cjcat2266 (104.174.112.138), 03/23/2017 14:42:49
推
03/23 16:53, , 2F
03/23 16:53, 2F
→
03/23 16:54, , 3F
03/23 16:54, 3F
→
03/23 16:55, , 4F
03/23 16:55, 4F
推
03/23 17:17, , 5F
03/23 17:17, 5F
→
03/23 17:24, , 6F
03/23 17:24, 6F
沒有喔,一般是稍微有規模的系統,一開始就會用這個模式
運算資源永遠嫌不夠,所以初始規劃就要使用可以隨時調整資源使用量的設計
推
03/23 17:24, , 7F
03/23 17:24, 7F
→
03/23 17:24, , 8F
03/23 17:24, 8F
→
03/23 17:25, , 9F
03/23 17:25, 9F
→
03/23 17:25, , 10F
03/23 17:25, 10F
文中動畫其實有故意放慢了,一般不會讓近身NPC閒置超過3個frames不跑決定邏輯
NPC最高層決定邏輯需要的較低層邏輯,可以用稍微低一點的頻率更新
像我們家的NPC每3個frame做一次決定,但一個frame只讓一個NPC尋徑這樣
真的要故意延遲和錯開行動時間點,要額外使用time-staggering(時域錯位)
之前有篇短文#1MlhsH3g提到,遊戲程式系列有計畫之後要寫篇完整的
推
03/23 21:42, , 11F
03/23 21:42, 11F
→
03/23 21:43, , 12F
03/23 21:43, 12F
搞不好跟國產沒關係,就是剛好請到的programmer技術和經驗不夠這樣
或者是production等不及優化,趕鴨子上架
看看那個在PS4上面跑10fps還拿出來賣的Litchdom Battlemage
推
03/23 21:44, , 13F
03/23 21:44, 13F
推
03/23 22:17, , 14F
03/23 22:17, 14F
※ 編輯: cjcat2266 (160.33.43.15), 03/24/2017 02:18:39
推
03/24 06:07, , 15F
03/24 06:07, 15F
推
03/24 06:18, , 16F
03/24 06:18, 16F
推
03/24 09:48, , 17F
03/24 09:48, 17F
推
03/24 10:48, , 18F
03/24 10:48, 18F
推
03/26 00:06, , 19F
03/26 00:06, 19F
※ 編輯: cjcat2266 (104.174.112.138), 03/26/2017 10:02:04
推
03/26 18:00, , 20F
03/26 18:00, 20F
推
03/27 14:19, , 21F
03/27 14:19, 21F
啊,batched algorithms翻成"平行邏輯"不太對
應該翻成"批次演算法"或"批次邏輯"才對
※ 編輯: cjcat2266 (104.174.112.138), 03/27/2017 15:56:19
推
05/04 16:14, , 22F
05/04 16:14, 22F
推
05/04 16:14, , 23F
05/04 16:14, 23F
推
05/24 21:25, , 24F
05/24 21:25, 24F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
9
13