我从独立游戏开发学到的6件事儿

本文作者Mike Shafer在初涉Bain’s Redemption开发时仅仅负责编程,然而之后却奔波于设计、商业、营销,甚至美术几大板块之间。这辛勤的汗水换回的6条金规玉律也许能为其他游戏开发者提供一些参考。

1. 项目管理解决方案不可或缺

我的父亲告诉过我,每一个成功项目的背后都有一个组织精良的团队——游戏开发也是如此,而好的项目管理解决方案则是实现高效组织的杀手锏。觉得钱包羞涩?大可不必——只需支付每月不到10美元的主机托管服务费用就能从服务商那儿免费挑选一套PM(项目管理)解决方案。

PM能够实现事半功倍的效果,而在游戏测试过程中,我个人使用的是一款名为Bugzilla的开源缺陷跟踪系统。当然,它并非如PM解决方案那样必须包含在开发计划之内,后者能降低游戏特定功能出现缺陷的风险,而前者则属于锦上添花,因此,我比较愿意将两者区别对待。不管选择何种途径,挑选合适的辅助工具以保持开发团队的最佳状态才是正经事。

2. 要有甘拜下风的豁达:有些事大公司做得更好!

我曾用GJK+EPA碰撞检测算法为Bain’s Redemption建立起了完整的布娃娃系统,且该途径和Bullet、Havok和PhysX等物理运算引擎的工作原理相似(在使用后两者的过程中,也可以使用GJK+EPA算法)。不过从中学到的宝贵一课是:尽管GJK+EPA算法能够顺利在物理模拟中插入不同图形,但一些图形组合需要特定的算法。

因为该算法适用于所有凸面图形,我以为只需执行就能高枕无忧了。可惜积箱测验显示我的物理引擎占用了太多CPU资源,另外,速率和位置解算器也或不可缺。这些内容听起来再冗长乏味,也是不变的事实。所以最终我放弃了这一算法,改用NVIDIA旗下的PhysX物理运算引擎。相比之下,后者性能更胜一筹。

我还了解了很多关于解算器、物理碰撞等诸如此类的信息。使用物理引擎并不难,关键是为其设定参数以保证游戏开发与计划同步,这可不是三言两语就能概括的。我很庆幸自己做了该做的。要是我早点心怀这份豁达,定能多节约大半年的时间专心开发游戏了。

3. 了解目标用户群很重要!

这个问题看似很简单,目标群体是哪类人?不就是玩家吗?但究竟是哪种类型的玩家?这些都需要我们深入细致地去思考。我喜欢遐想自己的游戏大获成功的场景,心想着“如果他们会为某款游戏着迷,那一定也会喜欢Bain’s Redemption。”从营销的角度来说,这样的衡量标准无伤大雅,但是当你已经把这条建议读了若干遍之后,恐怕得尽快下决定了。

当初决定开发Bain’s Redemption时,我们一方面构想着针对成年人的动画风格,一方面想要Devil May Cry里的机械质感(主要是该游戏中古代宝剑向现代手枪转换的创意深得人心),于是干脆将这两种理念结合在一起。

如今我们的目标群体是哪类人呢?漫画书迷和暴力游戏爱好者。而游戏中的模型实际比看上去的要简单多了,因为我们早就决定将它们设计为能够被锐利武器轻松砍碎的物体。我们所指的物体是整个物体,而不单单是一条腿或胳膊,所以想象一下游戏中的自己可以轻松打败日本武士那么强壮的人,该有多过瘾。负面作用是:图形会受到影响。不管如何,目标群体轮廓是清晰的。

4. 定制引擎绝非易事

挑选游戏引擎时,很多独立开发者选择Unity,或在虚幻引擎下调价格后选择虚幻4。起初为了节省成本,我们决定定制自己的引擎,结果繁琐复杂的工作耽误了我们不少功夫——记住,这条路不是人人都能走,“定制有风险,选择须谨慎”。

举个例子,我们花费了一周半的时间为定制引擎添加云隙光,两周的时间来添加HDR和Bloom,不过Unity或Unreal都省去了这些麻烦。不同游戏引擎/编辑器的结合引发的化学反应各异。倘若你卯足了劲儿愿意从游戏开发的基层做起,那么可以考虑直接使用Unity或虚幻引擎。

5. 数据当先,见好就收

对于游戏及其他类型的应用程序而言,有两大要素:数据和代码。大多数游戏都有一个打包的图形文件,即数据,和一个可执行的图形文件,即代码。而游戏引擎则使代码在循环运行的过程中捕捉数据,将其转化为屏幕上色彩缤纷的图案。众所周知,数据驱动类应用简约且便于调试,总之优于其他应用。

选择一款FX图片编辑器,添加和预览特效并将其存为FX图形文件,通过代码在游戏中呈现出来,或是为所有特效逐一编写代码——两者你更倾向哪一个呢? 反正实践过后者的程序员们是深陷逻辑混乱的泥淖不能自拔了,再加上泛滥的复制代码让系统臃肿不堪,“精简”和“有序”这俩词儿还是收起来吧。相比之下,前者就省力省心多了。

另外,若是跟游戏设计人员打交道,把握“数据当先”的原则也是有必要的:游戏设计更青睐参数而非代码,而参数本身即是数据。下图所示的是我们的状态机编辑器,它曾出色地配合了游戏中主角的出击及其他动画效果的完成。我曾想用状态机编辑器完成游戏中所有物体动画的制作,但是很快就意识到“物极必反”之理——实际上很少有设计人员会关心结构复杂的AI状态机,他们只会说:“这玩意儿太费脑筋,还是算了吧。”

我们重新修改了游戏AI,使用了行为树中的选择/序列/并行节点,这过程对大多设计人员来说未免太晦涩(看起来好像是虚幻引擎里有个行为树编辑器),所以不得不向程序员求助(类似于游戏框架出现频率的问题对于设计人员来说无疑过于乏味了)。总之,跟设计人员打交道最好把握“数据当先”,不过若有需要,代码也应放在第一位。

6. 市场推广晚不得

目前我们计划在八月底让Bain’s Redemption上线。本以为游戏好看好玩就能保证上市成功,但跟我的朋友Andre’ Lamothe进行一番交谈之后,这幻想被彻底打破了。Andre’ 是个看透游戏开发门道的内行人,写了很多相关的书籍。他说市场推广最好在游戏上线前两个月就开始。

看吧,很多人觉得游戏开发出来就万事大吉了,但话说回来,若游戏无人问津,大卖岂不成了天方夜谭?所以谦虚点儿吧,认清这一点,积极搞好市场推广不就行了吗?

加载余下内容▼

相关文章:

;