研发 | 据说这是做FPS游戏必须掌握的开发知识

2016-05-06 18:44
来源: Gad-腾讯游戏开发者平台

大家好!我的名字是Guillermo,我是Crema Games(http://www.cremagames.com/)的联合创始人,这是我在GameDev.net上的第一篇文章。

几位朋友和游戏开发者告诉我他们很喜欢我们在工作室开发博客上面介绍的Unity工具,我应该在这里(译注:指GameDev.net)把文章再发一遍,我想这是什么鬼,让我试一下。所以我希望你在这篇文章能找到对你的游戏有帮助的工具,因为他们对我们来说是必不可少的,没有它们的帮助就不会有Immortal Redneck(译注:作者开发的游戏)。

我们的新游戏Immortal Redneck(http://www.immortalredneck.com/)在我的观点里是一个复杂的项目,但是本文里介绍的这些工具在我们的一些小工程里也非常的有帮助。很显然,在尝试和购买它们之前,请确认你需要它们并且没有其他免费的或者已经购买过的替代品。毕竟,有太多太多的Unity工具了。

无论如何,让我们继续这篇文章。

Behavior Designer

地址是https://www.assetstore.unity3d.com/en/#!/content/15277

61

当我们需要给Immortal Redneck的AI部分找一个解决方案的时候,我们选择了Behavior Designer。它与其他的采用状态机或者行为树的AI解决方案兼容。在选择Behavior Designer之前,我们尝试过Rain。它是免费的,这很棒,但是我们遇到了很多效率问题。Behavior Designer的兼容性很好、有官方支持并且提供了一个可视化界面而不仅仅是代码,这使得程序员和艺术家都可以使用这个工具。

A*Path finding

地址是https://www.assetstore.unity3d.com/en/#!/content/1876

62

我们想要敌人可以在场景中按照自己的模式移动。Unity默认的寻路系统一旦在场景中产生了一个导航网格,我们就没法对产生的导航网格进行改动,所以我们在寻找一个替代方案,很快找到了A*Path finding并且喜欢上了这个工具。

这个插件可以在运行时非常快的产生网格并且和行为树插件Behavior Designer集成的非常棒。我们需要修改一些地方以便可以限制网格只在房间内出现。这其实没有必要,主要目的是通过减少加载量来减少了一些加载时间。

Instant Good Day

地址是https://www.assetstore.unity3d.com/en/#!/content/28210

我们游戏给人的第一印象就是户外场景,所以我们希望户外场景能够宏伟特殊。我们决定的第一件事情是户外场景需要有一个昼夜系统,即使绝大部分玩家不会在户外呆足够长的时间来完整的体验昼夜交替。

在比较过大量的资产后,我们选择了Instant Good Day。对于我们的需求来说它似乎是最好的解决方案。我们想改变动画的每一个小细节以便让昼夜交替看上去原始而独特,而Instant Good Day允许改变昼夜系统里面的每一个小时的设置。它有很多变量,从雾到光照到天空的颜色和星星。我们在这个插件上面做了大量的工作并且集成了我们自己的插件StylizeFog。

Colorful

地址是https://www.assetstore.unity3d.com/en/#!/content/44845

这个插件有一个庞大的特效库以及很多后处理素材。目前我们只是在从主菜单的外部相机转到石棺内部相机的时候才使用了它。很明显,在后面的开发中我们将更多的使用这里面的素材,比如对房间内饰以及气氛进行快速的变化。

Clean Empty Directories

地址是https://www.assetstore.unity3d.com/en/#!/content/24284

有一个空文件夹不是什么大问题,但是当你在为ImmortalRedneck这样的大型游戏工作并且使用了git作为代码管理工具的时候,会出现很多的空文件夹,这就有点让人烦了。这个插件会删除所有没有被用户使用的空文件夹。因此,就算很多空文件夹也许不是一个大问题,但这个插件提供了一个很好的方法让你的工作空间更加的整洁。

Editor Auto Save

地址是https://www.assetstore.unity3d.com/en/#!/content/3240

我相信每个开发过游戏的人都在工作的时候遭遇过一些非预期的崩溃。有时候崩溃的是你的电脑,有时候崩溃的是你的Unity,有时候引起崩溃的是另外一些东西或者人,比如你的猫。结果就是:几个小时的工作在几分之一秒内丢失。我们已经经历过这个事情很多次。非常多的泪水。。。

所以我们去寻找解决方案,并且找到了Editor Auto Save这个工具。它是自动保存方面最好的插件:它可以定期保存每一个工程和场景(连同所有修改后的预制件),并且在每次你做一些特殊操作的时候(比如点击播放键)都会保存,所以当出现崩溃的时候也不会丢失太多的东西。

DOTween

地址是https://www.assetstore.unity3d.com/en/#!/content/27676

我们知道DOTween有一段时间了。我们开始使用它是在开发OMGZooRecue的时候(http://cremagames.com/blog/2015/09/28/oh-my-goat-zoo-rescue-announcement/),我们非常喜欢这个插件。它可以让我们非常快捷、简单地编辑我们的动画。对于菜单和UI来说非常完美,对于精灵甚至3D模型和过场动画也非常棒。

据说这是做FPS游戏必须掌握的开发知识

另外,Mobsferatu(http://cremagames.com/blog/2016/01/08/postmortem-mobsferatu-and-our-first-ludumdare/)的开场和结束动画也是使用的DOTween,所以我们非常的相信和喜欢这个插件。

Master Audio

地址是https://www.assetstore.unity3d.com/en/#!/content/5607

即使Unity5极大改善了他的音效系统,但是在音效方面除了官方渠道外还是有很多更好的选择。一开始我们在Sonotrigger(http://www.sonotrigger.com/)的朋友就告诉我们可以使用一些别的插件,这样就可以使用ImmortalRedneck的音效音乐来做一些了不起的工作。

所以我们选择了Master Audio。不仅是因为它提供了大量的工具,我们使用它的主要原因是音频团队可以轻松得把一切整合到游戏中而无需大量的编程工作。这主要是基于资源和时间管理的角度考虑。

Prefab Evolution

地址是https://www.assetstore.unity3d.com/en/#!/content/17557

据说这是做FPS游戏必须掌握的开发知识

支持嵌入套的预制件是Unity最急需的特性之一,这就是为什么这个特性是企业产品蓝图一部分的原因。与此同时,我们需要找一个第三方的解决方案,我们给Immortal Redneck选择了Prefab Evolution,因为它最常用并且有企业支持。有了它,我们可以使用带嵌套的预制件并且在不同的物体里面重用粒子。它工作的很棒并且允许我们做我们想要的内容。

不幸的是,由于一些问题我们最后放弃了它。Immortal Redneck是一个大项目,与Prefab Evolution一起工作并不顺利。Prefab Evolution的编译和测试花费了我们大量的时间,所以在使用它之前你可能需要考虑清楚对于项目的利弊,但是它是一个非常棒的工具。

也许你可以针对你的需求来构建一个统一的系统。这就是我们实际做出的选择:我们改变了我们的工作流这样我们就不再需要这么多嵌套的预制件,在我们真正有需求的时候我们可以使用我们自己创造的工具。

Rewired

地址是https://www.assetstore.unity3d.com/en/#!/content/21676

据说这是做FPS游戏必须掌握的开发知识

Unity的输入系统对于整个引擎来说是最先进的系统之一。对于一个像我们这样的大型游戏,我们需要有非常大的灵活性可以控制输入系统同时要与桌面电脑的外设良好兼容。感谢Rewired,每件事情都是基于动作来处理的,并且会把动作映射到每一个设备上。此外,它也没有任何原生代码,如果需要的话,它也可以在主机上良好的工作。

Shader Forge

地址是https://www.assetstore.unity3d.com/en/#!/content/14147

据说这是做FPS游戏必须掌握的开发知识

Shader Forge是我们用过最棒的插件了,我们强烈的推荐你使用。开发shader是我们的弱点,我们没有一个人擅长写shader。感谢ShaderForge,我们的艺术家可以无需编程知识就能制作shader,并且效果很棒。比如,这是我们在Immortal Redneck里面使用的一个shader。

Stylized Fog

地址是https://www.assetstore.unity3d.com/en/#!/content/43738

据说这是做FPS游戏必须掌握的开发知识

一个非常奇妙的资源,让你的游戏可以有程序化的雾。你可以使用渐变色,这样雾的色调就会逐步发生变化,你甚至还可以混合两个颜色。当同时使用Instant Good Day的时候,你可以利用雾构建一些非常酷的场景并且改变开放场景等等。我们在Immortal Redneck的室内场景使用了这个插件。这就是我们为什么这么喜欢它的原因。

Text Mesh Pro

地址是https://www.assetstore.unity3d.com/en/#!/content/17662

Unity插件中的经典。从使用Unity开发的第一款游戏(Ridiculous Triathlon)我们就开始使用它,然后在我们后面的开发中也一直陪伴着我们。如果你需要在Unity里面做出漂亮的文本,我们没有见过比Text Mesh Pro更合适的工具了。这个插件允许你独立的使用文字而不需要关心分辨率和大小,你还可以轻松地使用各种各样的效果(比如阴影、轮廓、渐变和发光)。看到那些伤害数字了么?就是由Text Mesh Pro开发的。

UFPS

https://www.assetstore.unity3d.com/en/#!/content/2943

据说这是做FPS游戏必须掌握的开发知识

锤子动画是我们的,其他的部分都是UFPS的

UFPS帮助我们构建了Immortal Redneck引擎的基础功能。我们一开始就使用这个工具所以我们的程序有一个非常坚实的基础,我们可以非常灵活的改变。现在,我们已经改过UFPS的几乎一切来让它适应我们绝大部分的特殊需求。我们保留了程序性动画和事件系统,但是除了这些,只有很少的部分保留。如果你愿意构建一个大型的项目这是一个非常好的起点。

我们要介绍的工具就这么多了!你有什么经常使用的工具么?我们应该尝试替换我们目前在用的工具么?

关于作者

我是Crema Games的联合创始人,Crema Games是一个西班牙独立游戏和应用程序工作室。我们制作了类似nstant Buttons的应用和Ohmygoat、Ridiculous Marathon以及Ridiculous Triathlon等游戏。现在我们在开发mmortal Redneck,这是一款FPS类的roguelite游戏以及我们第一款的电脑游戏。

cindy

cindy

QQ359859595

相关资讯