Dota2 AI 簡易開發教程

2021-08-11 08:40:14 字數 1194 閱讀 5415

眾所周知,v 社在 7.00 版本推出了自定義機械人功能,我也做了乙個 ai 放到了創意工坊上。應廣大玩家要求,也為了與大家交流 dota2 ai 的開發技術,我打算寫一點淺顯易懂的開發教程,希望無論是開發者還是普通玩家都能夠理解。

dota2 在剛推出時,新聞上就列舉了很多 ai 的特性,那時候 ai 可以說是很強。但是由於 v 社天天度假,忽視了 ai 的開發,現在的 ai 還停留在遠古版本。所以,為了更好度假!不不不,是為了提公升 ai 的水平,便把 ai 開放給玩家製作。

icefrog:dota2 新增血魔和船長,全新 ai 加入

dota2 為適應各水平玩家 大幅優化 ai 智慧型

** dota2 ai 打匹配的五大優點和三大缺點

說了這麼多,還是回歸正題吧,dota2 的 ai 到底是怎樣製作的呢?

dota2ai 是用 lua 指令碼語言實現的。lua 是一種解釋型程式語言,如果以前學過程式語言那就很好掌握,沒學過也沒關係,因為 lua 語言的語法很簡潔,即使是小白也能很快理解。當然,本文不會介紹 lua 語言的基本語法,如果想進一步學習,可以參考 lua 教程或者是《lua 程式設計第二版》。

目前,開發 ai 大致有兩種路線,第一種是完全控制,這意味著你需要編寫從遊戲開始到遊戲結束的所有 ai **。而第二種則是部分控制,這只需要你接手你想控制的部分,比如某個英雄的技能操作,遊走的思路等。前一種工作量很大,需要完全重構 ai 系統。而後一種則比較簡單的方法,本系列文章主要是講解後一種。有的玩家經常反饋:為什麼 ai 總是喜歡抱團一起推,乙個個送。這也很好解釋,因為目前創意工坊裡的 ai 大部分都是屬於後一種,繼承了大部分預設 ai 的思路。

至於如何開啟一局社群原創機械人遊戲,想必大家都已身經百戰,不用我說了。不過我還是介紹一下。開啟 dota2, 建立房間,選擇本地主機,選擇 「編輯」,在高階房間設定中,勾選 「機械人填滿空位」,隨後訂閱並使用創意工坊的指令碼。如果選擇本地開發指令碼,那麼使用的便是我們在 bots 資料夾下編寫的指令碼。

dota2 ai 開發 tutorial(一)ai 的 環境配置

dota 機械人指令碼 wiki(英文版更全)

dota2 ai api 說明

AI如何在DOTA2中戰勝職業選手?

電子科技大學 格拉斯哥學院 2017級 郭世承 openai利用迴圈神經網路 rnn 中的長短期記憶 lstm 來構建了ai的大腦核心。它精通長時間的資訊儲存記憶以及會自動根據序列進行分類處理和 資料。其實簡單來說本質就和家長教自己的孩子如何做一些簡單的事情一樣,你得教他們分清楚不同事物的好壞,而且...

AI單挑Dota 2世界冠軍 被電腦虐哭

openai的機械人剛剛在 dota2 1v1 比賽中戰勝了人類頂級職業玩家 denti。以建設安全的通用人工智慧為己任的 openai,通過 self play 的方式,從零開始訓練出了這個機械人。繼橫掃頂級的人類西洋棋大師和圍棋大師後,計算機如今在風靡全球的電子遊戲dota2中戰勝了世界級的職業...

AI單挑Dota 2世界冠軍 被電腦虐哭

openai的機械人剛剛在 dota2 1v1 比賽中戰勝了人類頂級職業玩家 denti。以建設安全的通用人工智慧為己任的 openai,通過 self play 的方式,從零開始訓練出了這個機械人。繼橫掃頂級的人類西洋棋大師和圍棋大師後,計算機如今在風靡全球的電子遊戲dota2中戰勝了世界級的職業...