Dota2 AI 简易开发教程

时间:2024-05-20 09:57:36

前言

众所周知,v 社在 7.00 版本推出了自定义机器人功能,我也做了一个 ai 放到了创意工坊上。应广大玩家要求,也为了与大家交流 dota2 ai 的开发技术,我打算写一点浅显易懂的开发教程,希望无论是开发者还是普通玩家都能够理解。
Dota2 AI 简易开发教程
dota2 在刚推出时,新闻上就列举了很多 ai 的特性,那时候 ai 可以说是很强。但是由于 v 社天天度假,忽视了 ai 的开发,现在的 ai 还停留在远古版本。所以,为了更好度假!不不不,是为了提升 ai 的水平,便把 ai 开放给玩家制作。
IceFrog:Dota2 新增血魔和船长,全新 AI 加入
DOTA2 为适应各水平玩家 大幅优化 AI 智能
浅谈 DOTA2 AI 打匹配的五大优点和三大缺点

Dota2 ai 简介

说了这么多,还是回归正题吧,Dota2 的 ai 到底是怎样制作的呢?
dota2ai 是用 Lua 脚本语言实现的。Lua 是一种解释型编程语言,如果以前学过编程语言那就很好掌握,没学过也没关系,因为 Lua 语言的语法很简洁,即使是小白也能很快理解。当然,本文不会介绍 Lua 语言的基本语法,如果想进一步学习,可以参考 Lua 教程或者是《Lua 程序设计第二版》

那么,我们应该在什么环境下编写 Lua 脚本呢?很简单,我们没有什么 IDE(集成开发环境)。任何文本编辑器都可以拿来编写,就连记事本也可以!不过还是不推荐使用记事本,因为没有基本的语法高亮等功能,我使用的是 notepad++,一个很简洁的文本编辑器,当然如果你有更好的编辑器也可以直接使用。

所有正在开发的 ai 脚本都存放于dota 2 beta\game\dota\scripts\vscripts\bots文件夹下,如果没有 bots 目录便需要自己创建一个。而当你上传你的脚本到工坊时,就会上传该目录下的内容。而下载的脚本则放在你 Steam 安装目录下自己的文件夹中。不出意外的话,你会找到bots_example文件夹,里面有 V 社原版 ai 的一部分。当然,原版 AI 并不是由 lua 编写的,而是由 C++ 编写,而完整的 AI 源码并没有公布。这一部分示例,是由 C++ 翻译为 Lua 的。

目前,开发 ai 大致有两种路线,第一种是完全控制,这意味着你需要编写从游戏开始到游戏结束的所有 ai 代码。而第二种则是部分控制,这只需要你接手你想控制的部分,比如某个英雄的技能操作,游走的思路等。前一种工作量很大,需要完全重构 AI 系统。而后一种则比较简单的方法,本系列文章主要是讲解后一种。有的玩家经常反馈:为什么 ai 总是喜欢抱团一起推,一个个送。这也很好解释,因为目前创意工坊里的 ai 大部分都是属于后一种,继承了大部分默认 ai 的思路。

至于如何开启一局社区原创机器人游戏,想必大家都已身经百战,不用我说了。不过我还是介绍一下。打开 dota2, 创建房间,选择本地主机,选择 “编辑”,在高级房间设置中,勾选 “机器人填满空位”,随后订阅并使用创意工坊的脚本。如果选择本地开发脚本,那么使用的便是我们在 bots 文件夹下编写的脚本。
Dota2 AI 简易开发教程

在接下来的文章中,我会为大家介绍如何开发编辑英雄出装加点,英雄的技能操作,喝神泉模式的实现等等。

参考文档:

Dota2 AI 开发 tutorial(一)AI 的 环境配置
DOTA 机器人脚本 Wiki(英文版更全)
Dota2 AI api 说明