游戏开发论坛

 找回密码
 立即注册
搜索
楼主: sjinny

[讨论] 问下有没有战斗的各个角色同时做行为决策的?

[复制链接]

4

主题

51

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2008-4-12 20:51:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

  对啊,用  二维n*n矩阵 来表现角色行为确实很精确

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-4-12 20:55:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

恩,问题就是那个矩阵可能很大,如果人工生成可能会很难做好。

4

主题

51

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2008-4-12 21:26:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

对于回合制来说只要做一个基于攻击防御的矩阵就够
      玩家A  攻击  防御  待机
玩家B

攻击          X      Y     Z

防御          Y      D     W

待机          Z      W     S

哈哈 然后玩家的攻击是一个矩阵 防御是一种矩阵 待机有是另一种

这样描述很精确~~




149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-4-12 21:53:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

实际的游戏里的行动比这多多了,如果每种技能、法术都算一个行为,那么这个矩阵会很大。

4

主题

69

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2008-4-13 02:22:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

如果只是玩家在每个单位时间段内玩类似剪刀石头布的结果游戏,那么即时战斗的魄力怎么表现呢?比如说,单位时间的攻击2次的角色和单位时间只攻击1次的角色对砍怎么处理,决策-动画-结果,最后和2倍攻击力的角色与平常攻击力的角色对砍有什么区别。
说实话,我没看出这种同时决策同时执行的方式有趣在哪,怎么达到15楼提出的让玩家有充分思考策略的时间,给作战增加不确定因素的目的
其实技能有互相克制的属性的话,玩家的抗打击水平设定得高的话,不就能达到作战不确定和充分思考策略的目的了么

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2008-4-13 06:19:00 | 显示全部楼层

Re: Re:问下有没有战斗的各个角色同时做行为决策的?

sjinny: Re:问下有没有战斗的各个角色同时做行为决策的?

假设场景中有两个角色A和B,他们会在同一个时间段内决定一个行为,并在接下去的同一个时间段内同时执行。
...

这个二维数组用来做什么的?

根据双方状态,匹配查找相应的结果?要这么干,程序一定会杀人的。如果有WOW那样大量的技能以及“备选行为”。。。这个矩阵会是非常恐怖的东西。

其实只要角色状态分类合理(技能已发出、技能正在准备、技能正在引导等等),使用不太多的一些规则就可以搞定(比如CD规则、打断规则等等),而不是使用规模庞大的状态矩阵。


4

主题

51

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2008-4-13 09:11:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

这样才刺激,做出来的游戏有什么好讨论的~~

我觉得用在回合制中最好,MMORPG自然免了

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-4-13 11:47:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

汗……就是因为技能太多,所以我前面的帖子也说这个矩阵会很大,需要有更底层的规则来生成矩阵。实际运行时内存里并不保存这样的矩阵,而只是直接计算出所需要用到的矩阵元素。

让玩家有充分思考策略的时间:
这是依靠回合制,使得有一个周期性的时间段内玩家的决策速度不会对游戏结果产生影响。

给作战增加不确定因素:
首先就是要使“先后对砍”和“同时对砍”的结果有所区别。也就是说技能结果的判定需要考虑到对方在用什么技能。这样由于双方是同时决策的,我决策时不知道我的行为执行时对方会正在做什么,而对方当时的状态会决定我的行为的结果,所以我不知道自己当前的决策是否会一定产生我所想要的结果。
首先根据双方所选择的行为找出一个结果集合,然后按照一定的概率从中选择一个行为结果,最后再计算结果的参数。最后那两步都会用到双方的属性和技能熟练度。第一步的结果集合的内容越丰富,那么不确定性就越高(当然集合里大多数元素的被选中概率不能相差太大)。


  1. Player a;
  2. Player b;
  3. ...
  4. aResults= getResults( a.action, b.action );//获得a的action在b的action影响之下所可能产生的结果集合
  5. aResult= getResult( results, a, b, rand() );//选中一个结果
  6. aResult.caculate( a, b );//计算结果参数
  7. aResult.execute();//执行结果
复制代码

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2008-4-13 16:00:00 | 显示全部楼层

Re: Re:问下有没有战斗的各个角色同时做行为决策的?

sjinny: Re:问下有没有战斗的各个角色同时做行为决策的?

汗……就是因为技能太多,所以我前面的帖子也说这个矩阵会很大,需要有更底层的规则来生成矩阵。实际运行时...

让玩家有充分思考策略的时间:
这是依靠回合制,使得有一个周期性的时间段内玩家的决策速度不会对游戏结果产生影响。

给作战增加不确定因素:
首先就是要使“先后对砍”和“同时对砍”的结果有所区别。

如何使回合制游戏中存在“先后对砍”和“同时对砍”两种状态组合而不涉及用户决策然后出招的时间先后呢?即要出现这2种状态,必然和用户决策速度有关。当然,我们也可以更大的时间单位对行为-结果周期进行量化(离散化),比如将WOW的逻辑帧长由几十毫秒变成几十秒。这样,在一个逻辑帧内先后发出的攻击指令都可以看作是“同时”的。

另外,博弈中总是存在不确定因素的,也正是因为无法精确预期对方的下一步行动才产生了博弈。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-4-13 16:09:00 | 显示全部楼层

Re:问下有没有战斗的各个角色同时做行为决策的?

先后对砍可能是上一回合A砍B,这一回合B砍A;
而同时对砍就是这一回合A和B对砍。
wow的逻辑帧应该不会是几十秒吧……毕竟瞬发技能都有先后的……

很多游戏里,虽然我不知道对方这一回合会做什么,但是我知道我能不能砍中对方、能砍掉多少血是跟对方的大多数可能的行为选择无关的。无论是放火球还是放寒冰剑,对于“他被我砍”这一点是没多少区别的。
而另一种情况是,如果对方同时施展火球,那么可能他被我砍时会引起火焰元素的爆裂导致两败俱伤,如果施展寒冰剑时被我砍那么可能导致元素干扰使得对方被暂时冻成大冰块导致虽然他不能做任何动作但是我也伤不了他……当然从平衡性的角度还可以做很多调整……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-23 16:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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