第016章:我,喜欢白嫖(1 / 2)
当《吃豆人》涉及到了ai技术时,这款游戏该怎么做?
伊森不清楚。
但当伊芙琳把他拉进新家的车库,也就是女孩的新基地时,在制作台上摊开设计图纸的女孩已经有了思路,“伊森,关卡,分数,模型,奖励这些东西我们都可以慢慢制作,唯独这四只拥有智慧的幽灵我们必须最先考虑,因为我觉得,如果没有它们,整个游戏也就没有了灵魂。”
伊森赞同这个观点。
随着他的点头同意,伊芙琳便又笑着道:“那我们就从幽灵的制作先入手?第一个问题,我想知道,在你的灵感里,这四只幽灵有几种共通的模式?”
“因为当共通模式确定之后,有关这一段的代码,那就能直接复制。”
伊森觉得自己听懂了,但又没完全听懂。
所谓的听懂了,指的就是复制。
没办法,谁让他的前世里,程序员复制代码的梗实在是太多了呢?
至于没听懂嘛……
“噢伊芙琳,我想知道你说的共通模式是什么意思?”
伊森果断开问。
“共通模式?这个指的其实就是幽灵的行为在你的设计中,有没有共通的地方?”
既然伊森不懂,伊芙琳便耐心解释,“就比如说,四只幽灵追逐玩家,这个其实就是共通模式,但放在我们这里,共通模式这个词语便不适用了,因为你给四只幽灵设置了不同的特性。”
“你给红色幽灵设置的特性是直接追逐,那么在写代码时,它的特征那就是实时计算出自己和玩家之间的最短距离,然后顺着这条道路一直前进。”
“你给粉色幽灵设置的特性是埋伏玩家,那么在写代码时,它的计算方式是实时计算出玩家的位置,然后按照玩家的面向,向前确定一些像素点,然后把这个虚空的,玩家可能前进的目标变成幽灵的目的地,让粉色幽灵前往这个位置,同时,玩家每一次变动,粉色幽灵的前进位置也会变动。”
“而你给蓝色幽灵设置的特点是配合红色幽灵进行围堵,在这种情况下,那就必须把玩家所在的点确认为中心点,一头连接红色幽灵,一头连接蓝色幽灵,在这个过程中,红色幽灵的行径路线必须最先计算,如果他是横向移动,那就是x轴,如果是纵向移动,那就是y轴,在这种情况下,蓝色幽灵的行径路线必须与他相对称,以营造出一个直角交点,当直角交点出现时,你想要的围堵效果才能体现,蓝色幽灵才能在游戏中以包夹的方式追捕玩家。”
“最后一个橙色幽灵,你设计的特性是驻守,那么在写代码时,它的特征就是在出生地附近驻守,并以它为中心,设定一个检测半径,当玩家进入半径时,这只橙色的幽灵便会计算出最短距离,开始追击,而当玩家脱离他的判定半径后,这只橙色的幽灵便会停止追击,直至玩家再次出现。”
“因为他们的追逐模式不一样,所以我们便不能把幽灵的追逐称之为共通模式,反过来说,只要幽灵的行动模式完全一样,那么这些代码就是……”
伊芙琳拉长了自己的声线。
而伊森则了然点头,补充道:“共通的。”
“bingo!”伊芙琳笑着打了个响指,“so……在你看来,共通模式有哪些?”
伊芙琳都已经把话说的这么清楚了,那伊森描述起来也就简单多了。
虽然前世的他只玩过《吃豆人》这款游戏,并没有尝试制作,但即便如此,四只幽灵的共通模式还是非常的好判断的,就比如说逃跑和被抓。
一,所谓逃跑,就是玩家扮演的角色吃到了地图上四个角的发光豆后,给幽灵上的一层debuff。
当玩家吃到发光豆,处于无敌状态时,四只幽灵便会进入害怕躲避的状态,因为在这个时候,玩家扮演的角色是可以将他们反杀的,如此一来,变色逃跑就成了四只幽灵的共通模式。
二,被抓,这个指的就是玩家处于无敌状态时,吃掉了幽灵后,幽灵的死亡状态。
由于在《吃豆人》中,幽灵死亡后是可以复活的,但必须回到中间的老巢进行休整。
所以,这个过程,那也是四只幽灵的共通模式。
说实话啊!虽然伊森之前洋洋洒洒的写了很多内容,但这种分段的剖析,草稿纸上还真的没有。
因此,当他在伊芙琳的询问下回忆出这四只幽灵的共通模式后,伊芙琳便在那儿快速的记载。
同时,伊芙琳的嘴巴也不停歇,不断说道:“如果拆开来看,逃跑这个模式就是四只幽灵检测到地图四个发光点的任意一个的消失,然后便进入反方向奔逃的一种行为……”
“被抓那就是四只幽灵在逃跑期间与玩家角色在地图上同一坐标的重叠反馈,这一点需要和幽灵对玩家的抓捕进行区分,因为坐标判定的检测是相通的,不能出错,所以……加个时间检测?就比如说,在地图发光点消失之后的一段时间里,幽灵一旦和玩家重叠,那就是被抓?”
望着姐姐那奋笔疾书的身影,伊森有些感慨。
因为在决定要制作《吃豆人》这款游戏时,他根本就没有预料到,这个游戏竟然能这么的难。
分开写判定?
这工作量也太大了吧!
但在此同时,他的心里,其实也升腾起了一抹好奇。
“伊芙琳。”他喊起了女孩的名字。
“昂?”女孩下意识地回答。
“我能问你个问题吗?”
“说。”
“我想知道,为什么在被抓这个判定里,你要选择时间检测的方式?”
伊森疑惑的问:“在我的设定里,当玩家吃了发光点后,幽灵的身上是会有一层负面状态的,同时,它们也会变幻模样,所以,我们不能把检测设定为模样的改变吗?当玩家碰到模样改变的幽灵时,幽灵就会死亡,这个逻辑不行吗?”
“当然可以。”伊芙琳明白伊森想要说什么。
但同时,她也解释道:“但这样设定的话,游戏检测就会有一个问题,假设玩家和拥有负面状态的幽灵相互碰撞时,幽灵的负面状态刚好消失,那么这个时候游戏该怎么判定呢?”
“幽灵会判定自己的身上没有负面状态,而同时碰撞的重叠代码则会判定幽灵有状态。”
“因为这两个代码是同时计算的。”
“那在这种情况下,到底是玩家吃了幽灵,还是幽灵杀了玩家呢?”
“机器算不出来。”
“这种不分先后级的粗暴判断可能会导致游戏出现判定的问题,所以检测最好的锚定点,我觉得就是优先级最高的时间,这样设定的话,代码只需要判定一个变量,且不容易出错。”
原来是这样?