刀塔传奇这种类型的arpg客户端战斗架构设计

       Ps:所有代码都是unity3d c#版。

       纵观现在的手游,大部分都开始模仿刀塔传奇的模式:多人自动战斗+少数可控制技能。
       具体的实现细节不考虑,毕竟如果你用cocos2d-x和你用u3d去做可能具体实现起来是完全用了两套系统。这里只对更高层面的设计上进行讨论。

       首先我直接将每个战斗单元Player划分成AI 和 Skill两部分。一方面这样子可以简化设计,讨论重点也比较清晰。(注:这里不考虑团队AI,那样太过复杂。你可能也会疑惑为什么AI和技能会区分开来,而不是AI里面思考技能的施放,这个后面会解释)

      

        1.AI

         游戏中AI的实现,在不考虑团队AI的情况下,arpg一般使用状态机,回合制可以使用行为树。具体原因大家可以自行谷歌状态机和行为树的区别,这不是我们的重点。状态机的实现基本大同小异。在一本讲人工智能案例的书中,有对它的详细实现,也是我见过至今为止最简洁也是最灵活的版本。对于大部分游戏基本是够用的。

        状态机由两部分组成,状态机管理和状态。




        状态机管理:

       

public class StateMachine:MonoBehaviour
{
	private Charactor player;
	private IAIState cur_state;
	private IAIState glo_state;
	public void setPlayer (Charactor p)
	{
		player = p;
	}



	public void setCurState(IAIState s)
	{
		cur_state = s;
		cur_state.Enter (player);
	}

	public v

你可能感兴趣的:(u3d)