❶ Unity3D做一个手游怪物AI,需要掌握什么
ai是个复杂的实现。
1。状态转换。例如被攻击后转向敌人,释放魔法后进去休息状态,敌人过于强大ai会逃跑,这些问题首先直观的使用if else语句,可以这样的ai通常非常难以写出来,而且ai的修改会很麻烦,这时候业内惯用“有限状态机”解决此问题。
2。路径规划。怎样从A点到B点要绕过中间的障碍物,这需要算法解决,非常成熟的解决方案就是 A*寻路(A星寻路算法),这中算法适合解决固定障碍的路径规划,如绕过山,河,沟不可移动的障碍。另外点下更复杂的战术式寻路,如避开敌人火力区的路线,避开地面雷达的飞行路线等。
3。避开障碍物体。其实这也属于“路径规划”类的问题,只不过此问题解决的是动态的障碍,和上面的第2点有非常大的区别。如20或者200个角色同时运行到一个目标,如无有效的算法让彼此以合适方式避开这个游戏效果是非常差的,常用的算法有如Flocking算法,用合力的方式计算朝向与速度,将角色分为三个基本的行为:聚集,分散,列队 去解决,这一算法用的非常广;更加复杂的算法如RVO算法。
4。一些移动行为算法。如:追赶,逃避,插入,避开墙等等。
再次点下开头:AI的实现是个非常复杂的过程,不止是算法上的,后期各项数值的调试迭代磨合是非常需要耐心的,以上4点是很基本需要掌握解决的方面。
纯手打,希望对你有帮助。
❷ 我想开发的能力有哪些
客户端的话以图形学为主~要学习图形学的相关理论~之后要懂至少一种图形API,游戏公司的话建议是DirectX~当然,如果同时会辩碰OpenGL ES就更好了,专门在手机缺闭上的~然后是了解部分AI的内容~主要是两个方面,一个是寻路算法携扮谈,主要就是A星算法,另一个是有限状态机~之后还要至少了解一个引擎~以前的话是Ogre为主~现在的话如果你想做PC游戏就学这个,如果是手游的话可以学cocos2d-x~但是不管做什么最推荐是Unity3d 只不过这个是收费的~如果你想做手游的话还要至少了解一个平台,IOS或者android~ios的话会比较简单,会用xcode,懂object-c就行~android的话要懂NDK和jni这个比较麻烦~
服务器端的话,最核心的是要懂网络协议~整个TCP/IP协议~它是一系列的协议~网络部分比较杂,协议和架构是两大核心~只要弄懂了这俩,无论什么样的服务器,用什么做都没有问题~协议的部分正常学就可以~架构部分比较复杂,需要在实际的工作中不断积累~不过可以学习一下像什么mangos之类的开源服务器架构~除此之外你要懂网络编程,会用linux平台,网络编程部分包括linux网络编程和windows网络编程,这俩东西的内容都不少~如果你做手游的话可能还需要会node.js~