设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 11690|回复: 12
打印 上一主题 下一主题

[交流讨论] 关于自动战斗AI

[复制链接]

Lv1.梦旅人

笑问情缘

梦石
0
星屑
73
在线时间
238 小时
注册时间
2006-5-3
帖子
640
跳转到指定楼层
1
发表于 2016-1-9 19:30:00 手机端发表。 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
引擎自带的自动战斗,缺点太大了,角色不会自动释放针对自己的技能,治疗技能也只会对位置1的同伴使用,除非死亡才会第2个,诸如此类,有没有优化的AI呢

Lv1.梦旅人

梦石
0
星屑
121
在线时间
1914 小时
注册时间
2013-9-2
帖子
1770

剧作品鉴家

13
发表于 2016-1-13 14:28:14 手机端发表。 | 只看该作者
楼上某些思路歪了啊,我来提供一个思路就是让玩家自己编写AI。

举个例子,给角色提供若干空格,然后让玩家把技能填进这些空格里(可以填防御,攻击,什么也不做以及需要释放的技能等,可以重复) 然后战斗开始后,角色就能按照填写在格子的顺序,循环释放这些技能。

这是不是很有趣呢?不但不用自己设计ai,而且也给了玩家一定的可控性,玩家会更倾向于思考如何配置技能,游戏性也加强了
来自: Android客户端
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22903
在线时间
8635 小时
注册时间
2011-12-31
帖子
3367
12
发表于 2016-1-13 10:33:56 | 只看该作者
本帖最后由 tseyik 于 2018-12-14 18:21 编辑

关于自动战斗AI 問題
一個好的自动战斗AI 必須考慮到有些什麼技能
基本要參考整個戦鬥系統
不度身訂造的話
就只能做一些濫大街的AI或只能為己流行的戦鬥系統做
所以好的AI必須自己做
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
44 小时
注册时间
2015-12-27
帖子
47
11
发表于 2016-1-13 10:24:01 | 只看该作者
卡奥尼特 发表于 2016-1-10 18:55
我的自動戰鬥參考了某些戰鬥系統。也就是怒氣值滿了的話自動釋放必殺技,如果按照這個思路,AI也許會這麼 ...

mv自动战斗,本身默认就是tp满直接放tp技能的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
650
在线时间
0 小时
注册时间
2016-1-12
帖子
4
10
发表于 2016-1-12 11:29:41 | 只看该作者
不能完整的实现自动战斗AI,真可惜
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3411
在线时间
2587 小时
注册时间
2012-3-1
帖子
764
9
发表于 2016-1-10 18:55:27 | 只看该作者
我的自動戰鬥參考了某些戰鬥系統。也就是怒氣值滿了的話自動釋放必殺技,如果按照這個思路,AI也許會這麼做的吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

笑问情缘

梦石
0
星屑
73
在线时间
238 小时
注册时间
2006-5-3
帖子
640
8
 楼主| 发表于 2016-1-10 11:12:06 手机端发表。 | 只看该作者
谢谢楼上大大热心解答,我的战斗不是挂机游戏,只是战斗不需要手动控制每个角色而已
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
223
在线时间
85 小时
注册时间
2015-12-22
帖子
56
7
发表于 2016-1-9 22:59:15 | 只看该作者
我是想问楼主自动刷装备怎么跳过最后的信息,切页的时候需要输入,比如某某升级得到物品什么的就会要切信息页
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
388 小时
注册时间
2009-8-4
帖子
219
6
发表于 2016-1-9 22:54:29 | 只看该作者
本帖最后由 andrewx 于 2016-1-9 22:56 编辑

据我所知并没有这样的通用增强AI,因为这个东西跟每个游戏设计密切挂钩,插件作者根本不知道你的游戏里设计的技能的公式、效果都是什么样的,以及这些技能在游戏里的比重有多少,自然没有办法写出相应的求最优行动的算法。其次这样的AI真的不好做,一个buff究竟能带来多少效用,这个buff在战斗开始和战斗结束哪个时间点上效用最高,甚至敌人与玩家可能的行为也应该是影响AI的因素。也就是说你首先要提供能够覆盖你游戏里战斗行动的reward function, transition function等,这才有可能做出一个合适的AI。如果一个插件作者连这些都没有就能做出一个好的AI...那这个AI已经是机器学习的程度了。即便是Yanfly的敌人AI插件,这些判定也是要你自己手工写的。

正因为不现实,系统默认的战斗AI也仅仅是计算HP伤害/回复比率来判定一个行动的效用(所以默认自动行动不会碰那些不影响HP的技能)。如果你想修改,去看下面两个方法:
JAVASCRIPT 代码复制
  1. Game_Action.prototype.evaluate = function() {
  2.     var value = 0;
  3.     this.itemTargetCandidates().forEach(function(target) {
  4.         var targetValue = this.evaluateWithTarget(target);
  5.         if (this.isForAll()) {
  6.             value += targetValue;
  7.         } else if (targetValue > value) {
  8.             value = targetValue;
  9.             this._targetIndex = target.index;
  10.         }
  11.     }, this);
  12.     value *= this.numRepeats();
  13.     if (value > 0) {
  14.         value += Math.random();
  15.     }
  16.     return value;
  17. };
  18.  
  19. Game_Action.prototype.evaluateWithTarget = function(target) {
  20.     if (this.isHpEffect()) {
  21.         var value = this.makeDamageValue(target, false);
  22.         if (this.isForOpponent()) {
  23.             return value / Math.max(target.hp, 1);
  24.         } else {
  25.             var recovery = Math.min(-value, target.mhp - target.hp);
  26.             return recovery / target.mhp;
  27.         }
  28.     }
  29. };

这就是自动战斗的utility function了,你可以在evaluateWithTarget里面添加一些判定,赋予一些行动权重来调节自动战斗AI,比如当target濒死时,会返回双倍的value,比如如果回合数很小的时候,buff类技能也能返回一定的value等等

正如楼上上上说的,自动战斗并不是好的战斗解决方法,所以我也懒得实践,以上仅是理论思考。
话说回来FF13的队友AI实在做得很棒,执行的行动一般都是很合理的。所以说FF13的战斗系统真的没得黑...啊咧,好像扯远了...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
385 小时
注册时间
2007-7-27
帖子
4106

开拓者

5
发表于 2016-1-9 22:38:11 | 只看该作者
本帖最后由 trentswd 于 2016-1-9 22:41 编辑

这种游戏印象比较深的是ff12和dao
以前xp时代见过一个仿ff12的系统
搜一下居然真的有
http://www.gdunlimited.net/scrip ... -fantasy-xii-engine
扯远了

写AI树纯粹是体力活,首先要给技能分类,然后要加一堆分支
关键是别人的游戏和你的游戏不一样,换了一套技能之后AI树也要改,感觉不太靠谱
不如等人写一个gambit系统吧(

吸吸
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-7 06:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表