P 社遊戲 文明等的核心演算法很難並行化嗎?如果是,為什麼?

時間 2021-05-30 14:07:32

1樓:Done

因為這個市場競爭小,產品之間的差異度仍然非常大。所以提高遊戲品質,比如執行效率等等,仍然是非常低價效比的做法。有這個錢不如拿去多打幾個廣告。

2樓:風起花散

我一直覺得VIC2的pop系統簡直就是可並行化的完美的例項啊。互相之間的依賴不太大,我能想起來的主要就是轉職移民啥的。我猜測可以引入額外的變數來儲存上一天的pop人數,其他pop執行緒在讀的時候讀上一天的pop數,寫入自己今天的pop數,這樣應該就行了吧?

而且感覺它的運算似乎符合SIMD的要求,以後還可以用異構加速。(並行程式設計經驗很少,求大家指點)

應該它就是遊戲運算量最大的部分,而且隨著時間增長它的計算量也會增長,換而言之可以幾乎達到和核心數相同的加速比(這叫啥定律我忘了……)。

對於文明的話,以前如果不同玩家的奇觀在同一回合造好的話,那麼會按照玩家的順序先後排序,先執行到的玩家先造好(貌似玩家因為先執行到所以會稍微有點優勢)。以後並行化的話可不可以用乙個不加鎖的變數,由不同的執行緒競爭來決定?

還有就是沒玩過文明6,6代還沒有並行化?

3樓:

可以做到,p社固守祖傳引擎沒這麼寫而已。到了下一代引擎估計就好了。

首先它確實是回合制遊戲。即時含暫停?不存在的。

你不能因為它每天乙個回合就覺得它不是回合制。就像 @王瑞揚 講的一樣,ai只能對前一天發生的事件做出反應。原因很簡單,對AI來說,2023年10月14日發生的一切是同一瞬間完成的,沒有理由對同一瞬間發生的其他事在這一瞬間做出反應。

下面說說遊戲卡在哪了。

遊戲大概是三個部分:UI繪製、AI、遊戲世界。其中遊戲世界的開銷大概並不是最大的,p社已經把全部事件結算自動儲存等都在每月1日這種神奇設定改掉了,大概也就是每天做做加減乘除生成一組隨機數。

不過vic2倒是可能在關於pop的計算上耗費不少資源。

UI繪製佔乙個大頭,vic2的堡壘就很吃資源。有時候程式設計師會讓不該顯示的UI被繪製一遍浪費一些資源——p社還就幹過這事。

最吃資源的大概是AI。這方面做成平行計算也沒啥問題。不過有限狀態機和行為樹(遊戲用到的AI和機器學習沒啥關係)本來就不是啥高效率的存在,ck2大概有1000個角色需要執行ai,hoi4國家的ai確實不多,然而每個即將運動的單位都要跑尋路演算法(甚至可能要單獨跑一次有限狀態機來決定是否運動),所以到了後期越來越慢。

平行計算沒有啥難的地方。簡單地說就是多寫幾個執行緒(然後加鎖)的事。當然還有一種魔幻思路就是徹底改變AI演算法,把有限狀態機和行為樹改成輸入乙個向量乘乙個矩陣輸出乙個one-hot編碼的向量(感知機甚至前饋神經網路,還行)這種模式——我猜誰要是能做到工業可用的程度就能在遊戲工業史上留名了。

10.24修改:經大手子提醒包含非洲印度西域的ck2遠不止1000個角色要執行ai

4樓:夜花照波

我們腦補乙個超並行版本的 CK2, 基本結構是每個 AI 人乙個執行緒。每個執行緒每個 while 迴圈走一天,然後 wait signal 直到所有人都走完這一天,就全世界一起進入下一天。這一天做什麼,可以是狀態機,可以是 NN/Reinforcement learning 或者隨便什麼東西決定。

以上結構有什麼問題?問題是狀態可以在一天內改變。比如有 AI 角色 ABC, B 尋找最適合結婚的物件是 A, 就去發結婚請求。

但是發的時候,A 已經被 C 殺掉了,或者不那麼暴力一點,被娶走了。(以上事情發生在同一天)

簡單的解決思路是,在 B 開啟人物搜尋器的時候就把列出來的人全部鎖住,直到他關掉人物搜尋器為止。這樣找到 A 和發結婚請求同在一把鎖的內部,就不會有非同步了。但是這樣做顯然是有危險的。

人物搜尋器……是可以搜到地圖裡面所有的人的。於是整個模擬器就變成了單執行緒的。

怎麼解決?可以引入乙個光速機制(暴論)。所有人只能讀取其他人前一天的狀態,對他人的操作也只能在明天生效。比如發勒索信鎖定第二天收到。這樣就可以超並行化了。

P社,文明等大型策略遊戲,與人對戰,甚至是多人對戰,是怎麼樣的體驗

P社沒連過,文明玩過幾次,文明玩的是文明6 C6 就先說說對局吧,容易掉線,幸而遊戲可以隨時存檔,並且系統會自動存檔,連線對戰的玩家只要有一人存了檔,下次就可以繼續,掉線的人會有一段時間等待連線,如果時間過了沒連上,系統就會自動以開始選擇的ai難度,替換掉掉線玩家,也就說真人替換成ai。恩,至於遊戲...

讓兒子玩文明好,還是P社遊戲好?

蒙面的豬哥哥 其實看他興趣而定吧,地圖回合類遊戲對一些人來說是很無聊的沒興趣玩下去,我很少跟同學安利Continental風雲,這種遊戲自己心裡玩的爽就可以 戰鬥力旺盛的勃嚼 p社的幾款遊戲在steam上的定級已經從幾年前的7 改成14 了,而文明據我所知還是7 所以說這得看你兒子有多大,如果已經十...

你在遊戲《文明》中有哪些憤怒的時刻?

WLer 和朋友開黑科技文化被善德和庫佩虐,領土被包圍外加海平面上公升淹沒大量領土,中心城市被活生生整成廢土,差點外交勝利結果被五個AI在全球議會上制裁減少外交勝利點數,看著善德科技勝利 喬尼 萊登 AI下城和狗尿後的青苔一樣,遍地都是。數量又多,質量又差。一開始我還出於人道主義,正常絕不燒城。後來...