实况足球游戏的理论模型(原创)
近日迷上NFL(美国橄榄球赛)觉得挺刺激的,于是专心学习了其规则,吾以为,只有真正懂得一个比赛的规则,方能欣赏比赛的内含与精彩.
学习玩了,虽然比棒球比赛的规则要简单得多,但也并非那么轻松,其中涉及到不少问题,我当下也不知切确的答案.
尝试着如何把这些规则压缩下来而又不失其精准性,毕竟在wiki上的几万字(可能有十万字左右),要读下来也颇费心力.在总结的时候,我突然觉得比赛虽
然比之于战争要简单得多,但是就像要阐述清楚战争需要沙盘演示一样,要讲清楚比赛,也非得用类似于沙盘的东西.其实沙盘只是真实场景的一个模型,是一个
状态机,实现的载体是3维空间,而当下人类传播的媒介是纸质,是二维的,所以必须要以有限状态机来展示比赛的各个发展情形.
灵光一现,突然发现,所有的球类比赛的游戏,其后必然由有限自动机来实现的.(当年图灵用有限自动机证明了计算机的能力是有限的这个惊天的命题,也初步
解决了21个问题当中的一个,由此可见自动机理论的无论如何也不为过的强大功能,当今的编译系统,某些著名算法,也由该思想衍生出来).
以下是我初步构想的游戏实现机制,本人没从事过如此大型游戏的编写,所以全是构想,有不同的见解,欢迎与我讨论:
1.每个比赛场面是一个状态,每一个状态由以下各个子状态组成
1)每个球员的坐标,他的定义域设为D1
2)场地在坐标系下的表示,同理D2
3)球的坐标,D3
4)scrimmage line的坐标(是橄榄球运动的东西,不清楚该运动的朋友,只需要理解我的想法,不需要理解这些细节),..
5)goaline的坐标,goal post的坐标(因为poal post是算高度的,所以整个坐标系必然是三维的.,...
6)双方得分
7)胜负方
即对任意s属于D=D1XD2X....XDN,s即为一状态,因为电脑中的坐必定是有限个的(因为间隔很小,我们把他当作连续的,但事实上离散的)
于是,每个状态到达下一个状态的可能性,就是比赛的规则,程序可以事先定义好,我们可以设计一个UI交互系统,使得玩家在玩的时候,不可能出现未定义的
路线.
但是我想了一下,这个模型的每个状态未免过于庞大,当然要进行压缩,如何进行压缩,还是等以后再想吧.
2009-09-23 06:51 (分类:默认分类)
实况足球游戏的理论模型(原创)
近日迷上NFL(美国橄榄球赛)觉得挺刺激的,于是专心学习了其规则,吾以为,只有真正懂得一个比赛的规则,方能欣赏比赛的内含与精彩.
学习玩了,虽然比棒球比赛的规则要简单得多,但也并非那么轻松,其中涉及到不少问题,我当下也不知切确的答案.
尝试着如何把这些规则压缩下来而又不失其精准性,毕竟在wiki上的几万字(可能有十万字左右),要读下来也颇费心力.在总结的时候,我突然觉得比赛虽
然比之于战争要简单得多,但是就像要阐述清楚战争需要沙盘演示一样,要讲清楚比赛,也非得用类似于沙盘的东西.其实沙盘只是真实场景的一个模型,是一个
状态机,实现的载体是3维空间,而当下人类传播的媒介是纸质,是二维的,所以必须要以有限状态机来展示比赛的各个发展情形.
灵光一现,突然发现,所有的球类比赛的游戏,其后必然由有限自动机来实现的.(当年图灵用有限自动机证明了计算机的能力是有限的这个惊天的命题,也初步
解决了21个问题当中的一个,由此可见自动机理论的无论如何也不为过的强大功能,当今的编译系统,某些著名算法,也由该思想衍生出来).
以下是我初步构想的游戏实现机制,本人没从事过如此大型游戏的编写,所以全是构想,有不同的见解,欢迎与我讨论:
1.每个比赛场面是一个状态,每一个状态由以下各个子状态组成
1)每个球员的坐标,他的定义域设为D1
2)场地在坐标系下的表示,同理D2
3)球的坐标,D3
4)scrimmage line的坐标(是橄榄球运动的东西,不清楚该运动的朋友,只需要理解我的想法,不需要理解这些细节),..
5)goaline的坐标,goal post的坐标(因为poal post是算高度的,所以整个坐标系必然是三维的.,...
6)双方得分
7)胜负方
即对任意s属于D=D1XD2X....XDN,s即为一状态,因为电脑中的坐必定是有限个的(因为间隔很小,我们把他当作连续的,但事实上离散的)
于是,每个状态到达下一个状态的可能性,就是比赛的规则,程序可以事先定义好,我们可以设计一个UI交互系统,使得玩家在玩的时候,不可能出现未定义的
路线.
但是我想了一下,这个模型的每个状态未免过于庞大,当然要进行压缩,如何进行压缩,还是等以后再想吧.
这个模型肯定是可以建立的,不然Xbox上的橄榄球游戏没法做了
我平时看球时候一直没想通的一点是你怎么对橄榄球本身建模,因为其形状是不规则的,加上外界因素,理论上讲可以把他的运动看作随机运动了,难道游戏里面的对球最后落地位置的建模也是当作“一定范围内的随机分布”考虑的?
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.forwind.cn
http://twitter.com/lk_517
2009/9/22 白起 <dingxia...@gmail.com>:
On 9月23日, 上午7时39分, windstorm <likunarmstr...@gmail.com> wrote:
> 泪奔啊,居然在这里碰到喜欢橄榄球的。
>
> 这个模型肯定是可以建立的,不然Xbox上的橄榄球游戏没法做了
>
> 我平时看球时候一直没想通的一点是你怎么对橄榄球本身建模,因为其形状是不规则的,加上外界因素,理论上讲可以把他的运动看作随机运动了,难道游戏里面的对球最-后落地位置的建模也是当作"一定范围内的随机分布"考虑的?
>
> -----------------------------------------------------------------------------------
> Yours Sincerely
> Kun
>
> www.forwind.cnhttp://twitter.com/lk_517
>
> 2009/9/22 白起 <dingxiaofeng...@gmail.com>:
On 9月23日, 上午11时20分, Aegis H <aegi...@gmail.com> wrote:
> 至于理论模式,球员并不能单纯用坐标代替,至少还应该有朝向,甚至隐含的控制角度(基于球员能力)----无论进攻还是防守,大部分情况下需要面朝目标。
> 而且无论橄榄球还是足球,乃至象棋围棋,都是"势"的概念,攻势也好守势也好,禁区也好,中场也好,威胁区域也好,球场的空间位置不仅仅是一个坐标,还要结合其-"地位"乃至场上的形式。
>
> 2009/9/23 Aegis H <aegi...@gmail.com>
>
>
>
> > 其实换到足球里面更容易理解,各种所谓路人----也就是AI控制的球员----在一定范围内也是符合"战术"的:
> > 进攻还是防守?
> > 球在哪里?
> > 队友在哪里?
> > 预测球的路线向哪儿?
> > 球员的能力是多少?
> > ......
> > 一些随机变量......
>
> > ----这些经过有机的逻辑处理,得出一个小群体(比如后卫线的压上/紧缩)乃至个体(前腰的后撤接球/前插)的行动。
>
> > 总体上是一种各种状态下的逻辑吧。
>
> > 2009/9/23 Baiqi <dingxiaofeng...@gmail.com>
>
> > Havok物理引擎这样的物理引擎应该在碰撞上面做得很好吧.
> >> 风速等等就忽略了,剩下的不就仅仅是碰撞吗,这可不是随机事件.
>
> >> On 9月23日, 上午7时39分, windstorm <likunarmstr...@gmail.com> wrote:
> >> > 泪奔啊,居然在这里碰到喜欢橄榄球的。
>
> >> > 这个模型肯定是可以建立的,不然Xbox上的橄榄球游戏没法做了
>
> >> 我平时看球时候一直没想通的一点是你怎么对橄榄球本身建模,因为其形状是不规则的,加上外界因素,理论上讲可以把他的运动看作随机运动了,难道游戏里面的对球最--后落地位置的建模也是当作"一定范围内的随机分布"考虑的?
>
> >> ------------------------------------------------------------------------------------
On 9月23日, 下午6时13分, Li Yang <myice...@gmail.com> wrote:
> 正好前一段时间参与过一个NFL2010的游戏制作,我们当时很多人都是通过做游戏才了解的这个游戏的规则,然后等report时候也从网上看了一些比赛的视频-,感觉里面阵型啊,还有各个位置的名字和作用没有一定时间的积累,还真不清楚是做什么的。
> 比赛的实际状态没有你想想的那么复杂,下面是一些印象:
>
> 所有球员都是一个Actor类,里面存了球员的各个参数坐标什么的当然还有AI
> 球也可以当做一个特殊的Actor
>
> 感觉你想复杂了。。。
>
> 2009/9/23 白起 <dingxiaofeng...@gmail.com>