足球遊戲 AI 的代碼量是什麼數量級的?


作為某足球遊戲的AI程序員我來說兩句,我們的AI分四層:

最上面是局勢和戰術,即在不同的比分情況和當前球的位置以及控球球隊會觸發不同的球隊整體狀態,大概有一百來種,這一層用狀態機實現;

第二層是球員個體決策和區域配合,球員根據局部局勢,例如對方球員位置/自己與球的距離/控球狀態等做出局部決策進行進攻/助攻/防守/配合阻攔/跑位等行為,大概三十幾種,這一層用狀態機+決策樹實現;

第三層是球員肢體動作,即球員根據第二層決策,要控制肢體在當前物理狀態下切換成跑/走/停/斜跑/扭頭/攔人/特別是在靠近球的時候要進行運球/攔截/過人/爭球/撲球等肢體決策,這一層是帶物理約束的狀態機+決策樹,需要說明的是這一層的物理約束不是播骨骼動畫,而是一個完整的機器人動力學引擎,開源的都是用來做科學研究的不好用基本要自己寫,robotics這門學科有些著名基礎定理如最小能量法則什麼的是這個引擎計算的基礎,球員需要用一個簡化的肌肉/IK模型來模擬,四肢/身體/頭/手腳的碰撞檢測可以簡單處理成柱體/球體/方體,這一層最麻煩,首先錄製踢球單元動作要幾百個,而且我們做的時候都不知道到底該錄哪些動作,補錄了好幾次,有些牛逼特技自己做不出來的就只能美術調,人體動力學模型也調優了幾個月,主要還是對物理和人體要理解透,動力學引擎也花了幾個月;

第四層也是最底層是個物理引擎,用來模擬球員/球的運動,這一塊開源的havoc什麼的就很好了,只是物理引擎有個問題就是畢竟是離散按幀update的,很容易出現碰撞盒子相互穿透死鎖/作用力、加速度變成無窮等奇葩情況,特別是剛體之間有複雜的連接和約束關係,所以要對人體模型寫大量的代碼做約束,但即使是FIFA這樣的大作依然會出現球員穿透這種bug。

綜上所述,實現一個接近主流遊戲如FIFA這樣級別的足球遊戲AI引擎大概需要幾個高級演算法工程師一年的時間,需要非常紮實的演算法和引擎功底。

update2:

長期開放以下職位,求矽谷的天才和國內頂尖高校的大牛們考慮一下:

Senior Algorithm Reseacher 杭州

5年以上計算機圖形學/機器視覺演算法研發經驗

精通圖形學/機器視覺相關領域演算法

有紮實的數學基礎

精通c/c++/openCV/matlab等常用演算法開發工具

有較強的英文文獻檢索和研究能力

有較強的團隊管理、研發管理經驗

數學/計算機相關專業碩士以上學歷

Algorithm Reseacher 杭州

計算機相關專業圖形學方向碩士以上應屆畢業生

熟悉圖形學/機器視覺相關領域演算法,並有演算法實現經驗

有紮實的數學基礎

熟練使用c/c++/openCV/matlab等常用演算法開發工具

有較強的英文文獻檢索和研究能力

有論文發表,ACM競賽經歷優先

Intern 實習薪水+導師負責制 杭州

本科3年級以上學生

有圖形學/機器視覺方向學習興趣

有紮實的數學基礎

熟練使用c/c++/openCV/matlab等常用演算法開發工具

有論文發表,ACM競賽經歷優先

Game Computer Graphics Engineer 深圳

計算機相關專業圖形學方向碩士以上應屆畢業生

熟悉圖形學/機器視覺相關領域演算法,並有演算法實現經驗

有紮實的數學基礎

有較強的英文文獻檢索和研究能力

有論文發表,ACM競賽經歷優先

Sports AI Engineer 深圳

計算機相關專業CAD方向碩士以上應屆畢業生

熟悉圖形學/動力學相關領域演算法,並有演算法實現經驗

有紮實的數學基礎

熟練使用c/c++/matlab等常用演算法開發工具

有較強的英文文獻檢索和研究能力

有論文發表,ACM競賽經歷優先

簡歷請發 xiang.huang@galasports.net


很多人問遊戲AI該怎麼做?隨著遊戲類型的多元化,非 MMO或者卡牌的遊戲越來越多,對AI的需求也越來越強了。而市面上關於
AI的書,網上找得到的文章,也都流於一些隻言片語的認識,理論化的套路,和一些簡單的
DEMO,離真正的項目差距甚遠,無法前後銜接成一條線,更無法真正落地到編碼。

國內真正做過遊戲AI的少之又少,東拉西扯的人很多,真正做過項目的人很少,因為國內主要以MMO為主,RTS比較少,體育競技類遊戲更少,而從AI的難度上來看,應該是:MMO
&< FPS &< RTS &< 體育競技。作為實際實際開發過AI的人,給大家科普一下,什麼叫做硬派AI。

硬派遊戲AI,不是虛無縹緲的神經網路,用神經網路其實是一個黑洞,把問題一腳提給計算機,認為我只要訓練它,它就能解決一切問題的懶人想法。更不是遺傳演算法和模糊邏輯,你想想以前8位機,16位機上就能有比較激烈對抗的足球遊戲、籃球遊戲,那麼差的處理器能做這些計算么?

硬派遊戲AI,就是狀態機和行為樹。狀態機是基本功,行為樹可選(早年AI沒行為樹這東西,大家都是hard
code的)。大部分人說到這裡也就沒了,各位讀完還是無法寫代碼。因為沒有把最核心的三個問題講清楚,即:分層狀態機、決策支持系統、以及團隊角色分配。下面以我之前做的籃球AI為例,簡單敘述一下:

詳細見我五年前的一篇老文:

遊戲團隊AI


《人工智慧案例精粹》有簡易足球遊戲代碼參考


推薦閱讀:

【相剋相生】國美公司名稱變更, 淺談新零售前景
Alpha Zero 碎碎念
要做的事情太多,蘋果在AI領域已落於下風
傳奇NLP攻城獅成長之路(一)
人工智慧的末日:真正像人類一樣思考的AI真的好嗎?

TAG:人工智慧 | 遊戲開發 | 足球遊戲 |