Counter Strike Source — AI

Xtutlab
2 min readOct 15, 2020

--

在念研究所的期間利用空閒時間,嘗試撰寫射擊遊戲的Artificial Intelligence,也就是利用自己寫的程式跟遊戲中的電腦互打,在這過程還蠻有趣的,需要分析整個遊戲的地圖,然後再路徑規劃(PathFinder),以及蒐集在記憶體上的人物資訊,例如座標、血量、隊伍等等,有了這些資訊就能追蹤敵人的座標,不過還需要找出控制自己的移動和射擊,這樣就能擊殺敵人了。

  • 路徑規劃

當時在找路徑規劃的演算法也想了蠻久的,因為要找個比較容易實現的演算法,不然可能要花非常久的時間再理解它的理論,因此就找到了Dijkstra’s,它是基於圖的結構,所以只要將地圖上可走的座標建立成圖的結構,就可以利用深度或廣度來直接搜尋最短路徑,因而達到我們要的目的。

地上的紅線是代表要去殺敵的路徑

  • 人物資訊蒐集

人物資訊蒐集是非常重要的一環,因為要知道敵人在哪,就需要知道他的座標,有了座標就能繪製整個模型的骨架,也可直接將射擊的準心移動到敵人的頭部,這樣就完成了自動瞄準的功能。

最後當然電腦是贏不了我們,因為我們掌握了他們的位置,就直接去爆了他們的頭,不過要讓程式更有AI的感覺還需要搭配蜜蜂演算法,讓他有更多的決策,並不是直接去找最近的敵人,而是找最容易殺的敵人,這樣就不會讓攻擊顯得太單調。

更多技術文章

https://xtutlab.blogspot.com

https://www.facebook.com/Xtutlab-%E6%95%99%E5%AD%B8%E5%AF%A6%E9%A9%97%E5%AE%A4-345668095840741/

--

--

Xtutlab
Xtutlab

Written by Xtutlab

大家好,我是Shin,曾任職於行政院國家資通安全會報技術服務中心(NCCST),參與106金盾獎決賽出題以及在HoneyCon 2015、2016擔任Workshop講師,熱愛駭客技術、程式設計以及電腦科學,並且會不定期發表駭客技術教學文章,希望大家會喜歡!

No responses yet