Project Anarchy游戏引擎的研究之路

研究Project Anarchy也有三个星期了,可能很多人都没听说过这个游戏引擎,但是这个引擎非常强大,优化得也非常好,不可小看啊。如果了解过古剑奇谭2的人可能知道,烛龙换了新引擎,买了Havok的产品Havok Vision,这个是能打造3A级游戏的引擎,维基百科说暗黑之魂2是用这个引擎打造的,因为这个引擎是这两年才发布的,所以用他做游戏的公司还不是很多,我们国家目前也就烛龙在用,烛龙用得怎样,大家也是有目共睹的。但是这个跟Project Anarchy有什么关系呢?去Project Anarchy官网的About栏目就可以看到,原来Project Anarchy的很多功能和技术都是用Havok Vision的,原来是Havok Vision的缩小版,而且只支持移动端,不是跨平台的,就连Win32平台都不支持,而且没有Havok Vision的销毁和布料组件,但是因为只在手机平台运行,所以提供了一个非常流畅的帧数,官方的Demo在我电脑跑维持在300帧以上,比Ogre强多了,Ogre的一个地形在我电脑跑最多也就100帧,而且只有地形,研究过Ogre的就知道,Ogre连导入资源的路径都非常慢,其中一个重要的原因是使用了大量的STL容器,这些容器在DUBUG版本下可以说效率非常低,Release版本还可以说得过去,也可以看出Ogre很偷懒,很多东西都直接用STL的,STL的效率真的不咋的,虽然安全性做的很好,也用了很多巧妙,这个值得肯定,但是要用到游戏引擎这种注重效率的情况下,STL是无法胜任的,要不然Havok干嘛去重写那么多功能的容器,像动态数组Array,映射表Map,哈希表HashMap……Havok都重写,Vision也重写了,我测过HashMap的效率,Havok的比STL的快了10倍不止。当然这里不是喷ogre,使用Ogre做游戏成功的例子的也有,像Runic公司的火炬之光系列,不过那只能说明Runic的强大,而不是Ogre的强大。唉!想找一个免费而又功能强大的引擎还是挺难的,而且有些只有渲染功能,没有物理AI之类,要添加这些功能,必须得自己去找第三方库,像Havok的物理与动画,而且还是免费,只是这个融合工作也不简单啊,我之前花了两个月,才把Ogre与Havok小小的融合了下,把布娃娃,物理动画组件添加到Ogre中,如果按照这个进度融合下去,都不知道后年马月才能融合完……而且只是物理与动画。后来有幸遇到了Project Anarchy,非常激动啊,因为它把我想要做的工作做好,而且很好的做好了,用了后感觉非常强大,强大在渲染效率高,而且功能丰富,融合了Havok旗下的大部分产品,如Havok Physic,Havok Animaiton,Havok Behavior,Havok Ai,感谢天感谢地,在我最需要帮助的时候,你出现了,而且是带着光环的出现了。

研究了这么久,遇到最大的问题就是开了静态光,然后计算阴影,可是无论怎么设置都没有阴影的效果,很高兴的把古剑2的素材放到场景中,可是无论怎么调也没有阴影效果,可是官方给的例子就非常自然显示了阴影,经过了两天的研究和看官方文档,才知道是Lightmap搞的鬼,原来在3DMAX导出的时候不能把Lightmap导出来,要将其设置成AUTO再导出,而且材质的关照渲染方式Lighting Method要设置成Lightmap,不然放到场景中就无法计算阴影了。后来用了下Project Anarchy的地形编辑器,很好很强大,非常灵活,想要那一块凹,想要那一块凸,凹多少,凸多少,都由你选择,还可以种花花草草,还可以在上面随意涂抹纹理,嗯……一切都很好,可是阴影没有效果的问题又跳出来了,还是Lightmap搞得鬼,如果要用静态光照,预计算阴影,导出地形的时候不能导出Lightmap,需要将Bake Lightmap去掉,如果你导出了Lightmap,可是你又没有计算地形Lightmap,那当然不会有效果,所以结论就是要用静态光照,那么你的模型就不应该有Lightmap信息,这个应该留到光照调整好了后,再用vLux计算出来。

终于把一直困扰我心头的问题解决了,然后很高兴的为我的怪物加上Havok AI,结果……没有结果,后来查了下官方文档,原来是没有导航网格的问题,这个问题也困扰了我一天,然后很高兴的给我的场景加上导航网格,非常激动,怪物终于向我跑过来了,而且绕开了障碍物,我们都知道路不是直的也不是平的,当我跑到高一点的地方时,怪物傻眼了,不动了,走累了?唉!问题真是几波波的来,再去看下官方文档,原来是我的导航网格经过了简化,导致凹凸不平的地方全变成平的,因为怪物是根据导航网格来寻路的,我在高的地方,怪物却导航到我的下边的位置去了,可是那里是无法到达的,所以AI就没法子了。原来导航网格在默认设置下,会被简化压缩,因此不够精细,导致我的角色跑到一些高地时,怪物就不追了,解决办法很简单,只需要把导航网格的精度提高,因此需要设置成不简化的,导航网格精度也就提高了,所以现在我的角色无论跑到哪,怪物都追着打。附上正在研发的3D游戏截图,没有素材,只能将就着用官方配套的素材了。

原本接下来是要为我的角色加上武器,研究粒子系统,加上攻击特效,受伤特效……唉!实现是无奈的,只能去准备下苦逼的笔试……不然找不到工作就麻烦了,生存难啊……虽然自己非常喜欢也非常热爱研究游戏引擎,开发引擎的功能,可是以后的路谁又知道如何呢……我只能做的只是保持着这份热爱与执着。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值