Unity3D 脚本系统设计(二):Dota2角色AI参考


对于系统或UI界面没有那么复杂的竞技类游戏,脚本系统也有它存在的意义。Dota2的AI就是这样一套脚本系统,从角色选择、装备合成、技能释放等初级的操作,到分路选择、团战时机判断、角色间配合等团队型决策,都可以通过Lua脚本自由定制。例如,截至本书编写时间,在Dota2的7.x版本中,通过更改hero_selection.lua,即可控制对战电脑的阵容:

如果想更改角色的装备合成,也可以重写每个角色自己的Lua控制文件,例如我希望更改斯文的出装,就需要重写item_purchase_sven.lua文件:

我们可以看到,通过更改角色的出装表,定制购买道具的顺序,即可个性化的控制角色出装。角色购买道具的具体逻辑相对复杂,不是本文的重点,此处略去,有兴趣研究的读者可以上网查阅相关资料。

在Dota2的套脚本架构中,最值得借鉴的是,它的主逻辑并不是使用Lua制作,而是使用效果更高的C++编写。对于不需要定制的通用功能,采用高效的实现方式是明智之举。如果需要定制角色行为,就创建一个以角色名为后缀的Lua文件。例如对于角色Lina,可以创建item_purchase_Lina、ability_item_usage_Lina.lua等。在加载游戏时,会检测相应脚本。如果存在名称匹配的脚本,则将其载入运行对应逻辑,否则就使用默认的实现,最大化的实现性能的优化。

本文出自 松阳论道 转载必须注明出处

http://blog.songyang.net/5789.html

说点什么吧...

电子邮件地址不会被公开。 必填项已用*标注