我正在尝试建立一个多人互动小说游戏
我正处于设计/概念化阶段,遇到了一个我无法想出解决方案的问题。我希望一些更有经验的程序员能给我一些建议。在
这是我能解释清楚的问题。当玩家决定执行一个动作时,他会向服务器发送一个命令。然后,服务器处理该命令,确定是否可以执行该操作,然后执行该操作或对无法执行该操作的原因作出响应。动作可能失败的一个原因是玩家正忙着做别的事情。例如,如果一个玩家正在战斗中,刚刚挥舞了一把巨大的大刀,他可能需要3秒钟才能重复这个动作。如果玩家试图再次挥杆到很快,游戏将作出反应,指示他必须等待x秒才能这样做。现在,这个我可以很容易地设计出来。我面临的问题是如何从人工智能生物中复制这种行为。所有由服务器自己执行的事件,也就是说不是对玩家所做的事情的即时反应,都必须是时间敏感的。某个邪恶的怪物对你施了一个咒语,但是必须等30秒才能再次施法。。。我想我可能会将所有这些事件添加到某种事件队列中,但是如何使事件队列具有时间敏感性呢?在
好吧,你的人工智能控制实体有某种“我下一步要做什么?”方法,对吗?只要让这个方法返回“我很忙,继续做我正在做的事情”的结果,而另一个操作正在进行中。在
例如
等等。对不起,变量编码标准。。。;)
MUDs动作通常在“滴答声”上执行,而不是立即执行——这允许延迟的有限影响,并允许怪物的命令被插入队列并得到公平的处理。在
就我个人而言,我不喜欢这种方法,但99%的mud都使用它。您需要设计一个健壮的命令队列和事件队列,它可以同时处理AI和用户命令。然后你可以添加“虚拟延迟”到AI命令中,这些命令可能是预定义的,或者是所有用户延迟的平均值,或者任何你喜欢的东西。在
人工智能是客户。在
他们只是“服务器的一部分”,只是在最遥远的地方。它们实际上在主游戏引擎之外。他们是没有人的专业客户。在
人工智能客户端与服务器的接口与人类客户端相同。在
相关问题 更多 >
编程相关推荐