独立开发者:复盘Unity手游[HyperBowl]
GameLook 报道/随着手游市场的不断增长,越来越多的独立开发者开始进入手游领域,小团队的成功率也随之降低。最近,一名海外独立开发者在博客中复盘了自己做的一款 Unity 手游《HyperBowl》,虽然这款手游并没有获得数千万美元的收入,但足以让他继续手游研发,而且更为难能可贵的是,他在这个游戏项目上已经持续投入 了 6 年的时间。
在博客中,他讲述了在这个项目中遇到的问题和得到的经验,希望可以对开发者们有所帮助,以下是 GameLook 编译的博客内容:
游戏项目介绍:HyperBowl 最初发布于 2009 年 7 月(iOS 版)/2011 年 5 月(Google Play 版),发行商是 Technicat,LLC,游戏开发者只有我一个人,研发用了一年,加上其他版本和游戏更新,到目前已经有 6 年,虽然没有特别好的成绩可以晒,但也足以让我继续手游开发,而且我还会继续为这款游戏做支持。游戏开发使用了 Unity 专业版手游引擎,SVN、Visual Studio、FBX SDK 等工具,整个游戏包括 C# 和 Javascript 在内大约 7 万行代码。
我之所以对这款 Unity 游戏《HyperBowl》进行复盘,是因为该游戏在玩家社区当中非常受欢迎,在《HyperBowl》这个项目上我用了 6 年的时间(GameLook 注:HyperBowl 系列有 11 款 iOS 版游戏,一款为付费版 2.99 美元,其余 10 款为不同模式的免费下载+广告版本),虽然不能说这个游戏是我最热爱的项目,但至少是我非常愿意投入努力的工作。所以下面我来复盘这款游戏的研发始末:
我做对了什么
保持自己的想法
我之所以做了《HyperBowl》,是因为在此之前曾经参与过原版游戏的研发,当时的原版游戏由 Hyper Entertainment 开发,最初是和旧金山索尼 Metreon 工作室合作的一款游戏。2001 年的时候,我只在 Hyper 公司工作过几个月,但却一直和该公司的研发总监 Aaron Pulkka 保持了联系,Pulkka 现在也有了自己的 Rabbx 工作室。
在 Unity 当时宣布他们即将推出 iPhone 引擎支持的时候,我跟 Aaron 说自己想在 iPhone 平台做一款 HyperBowl 手游,他表示认可,并建议我向商标持有者 Hyper 联系,结果也算是非常顺利,他们很爽快的答应了,因为他们表示 Hyper 公司没有打算做这个项目,所以非常愿意交给我。因此,我后来获得了这款游戏在网页、Mac/PC、移动平台以及 Wii 版本的授权,这些平台基本上都是 Unity 引擎支持的。
使用 Unity
使用 Unity 是非常正确的选择,从某种方面来说,Unity 选择了 HyperBowl,在 2007 年我最初开始使用 Unity 的时候,当时还是 Mac 版本,而且可以做网页版,在后来的 WWDC 大会上,一个偶然的机会遇到了 Joachim Ante(Unity 公司 CTO)。但直到几年之后 Unity 宣布支持 iPhone 的时候,我才想到把 HyperBowl 移植到 iPhone 平台,而且才意识到 iPhone 的屏幕分辨率对于这款游戏有多么的合适。
所以,使用 Unity 是权宜之计,也是唯一的选择,但后来证明这个选择是非常正确的。我当时并没有意识到 Unity 引擎会这么受欢迎,我相信在为独立开发者发布免费版本之前,他们也不知道 Unity 引擎能火起来,而且 Unity iPhone 版本出现的比 Android 版本早一些,所以我最先做了 iPhone 版。多平台支持的引擎是一个非常大的优势。尽管我专注于移动平台,但还是做了 Mac、Windows、网页、Flash 以及 Mac 插件版 HyperBowl 游戏,在这些版本之间唯一的差别就是,触屏和鼠标控制代码的差异。
我本可以避开中间件的问题,但我在代码转换方面遇到了很多的问题,但在移植到多平台的时候却没有遇到多大问题。而且当时还没有现在的游戏引擎这么多的工具,比如说使用地图着色器以及动态阴影效果等等。
拿到了源代码
除了获得授权之外,Hyper Entertainment 还给我提供了这款游戏的原版资源,包括音频、图片、模型以及街机和 Windows 版本的源代码等等。他们不仅给了我这些源文件,还给我提供了最初游戏研发用的 PC,一个是街机版本用的,另一个是 Windows 版本使用的,这样我可以进行对比,然后选择其中一个作为新游戏研发的起始点。
在启动了这 2 台 PC 之后,我做的第一件事就是把所有的东西都复制到 DVD 和我的个人电脑上,然后专注于版本控制。我这种做法是非常幸运的,因为接下来我把其中的一台 PC 联网之后才发现需要下载大量的 Windows 更新,而且最后电脑也因为空间不足崩溃了,另一个 PC 联网之后也遇到了同样的问题。
在经过了多次不成功的版本转换之后,我决定把这些资源转换成 Unity 引擎可以识别的 FBX 格式,因为在直接使用 OBJ 转换的时候遇到了问题。不过,在用 OBJ 转换加入了 FBX SDK 的文件时,我遇到了同样的问题。所以,尽管拿到了最初的源代码,但由于和 Unity 不兼容,我尝试并且失败了很多次。
做一个手游应用
在我尝试解决如何转换 HyperBowl 源代码的时候,为了测试保留球操作,我决定做一个保龄球 App,名字叫做 Fugu Bowl。我当时的想法是,滑动屏幕让保龄球运动,主要是为了测试原版保龄球控制操作。实际上,街机版只有一个轨迹球,而最初的 Windows 版本是提供了保龄球的,你需要用力推才能打出去。
我觉得这个应用表现不错,虽然当时看起来非常简单,缺乏了很多的元素,这是我做的第一个手游,但让我觉得有点受伤的是,这款手游依然是我所有手游作品中下载量最多的。
非死book 宣传
当然,我也做了社交媒体宣传,包括 推ter、Google+、油Tube 等等,但 HyperBowl 表现最好的是在 非死book 平台,目前有 800 多个粉丝,但除了数量之外更重要的是,这部分粉丝忠实度很高,对于游戏非常支持,而且热情也很高,他们为我提供了很多的建议、要求甚至本地化方面的帮助 (比如中文版和法文版得到了粉丝帮助)。随后,很多 非死book 粉丝下载了最初的 Windows 版本进行体验。
建议:你可以设置 非死book 页面自动分享内容到 推ter 平台,这样可以让你的游戏和 非死book 获得新用户,而且还节省了需要在 2 个平台发内容的问题。
独立开发商的优势
我所有的手游,在一开始都有一些消极的反馈,这里我说的其实是恶意的评论,有些人倾向于攻击低价或者免费的手游。当然,现在这样的评论少了,而 我并不认为是自己的手游提高了。最大的区别,我觉得原因是越来越多的独立开发商开始不断进入手游领域,人们对于小团队或者独立开发者们的作品变得宽容或者 认可了,因为我们的资源有限,即便是他们不喜欢你的产品,也会认可你付出的努力。即便是现在,一个刻薄的评论,如果你进行回复的话,对方很可能变成你的粉 丝,毕竟,你只是一个人在做游戏。
独立开发商往往是不起眼的开发者们,我们只能说自己是职业的游戏开发者,而且没有 3A 大作项目那么多的资源。我在游戏开发者论坛也看到过这样的评论,但只要游戏策划想要回到原来的工作室寻求脚本方面的帮助时,他们的态度就变了。目前来说, 已经有太多的游戏开发者离开了大型工作室,转而做自己的手游,独立开发商们受到了越来越多人的认可。
遇到的问题
转换成 FBX 格式
把最初的游戏资源转换称 FBX 格式毫无疑问是必须的,但却并不是那么有趣。当人们说自己希望成为一名游戏开发者的时候,我确定他们绝不是想要做工具化的程序员。
神奇的是,我已经不记得很久之前自己写过的 HyperBowl 代码,虽然我很确定要做代码移植,但却连一行代码都认不出来了(我并不是原版 HyperBowl 的程序员,但曾经做过一些优化和更新)。不过,不管是谁写的,对我来说代码并不难懂,所以也并不是不可能完成的事情。
我最不喜欢的就是 FBX SDK,这里我要说的 FBX 并不是人们常说的一种文件格式,而是一种标准,他们告诉你不要自己写文件,而是要使用 SDK,这就是所谓的标准。所以我必须写 FBX 版本的,这样 Unity 才能识别,而我也为此用了很久的时间。
失去源代码
当然,这里说的并不是原来游戏的源代码,因为我一直有非常好的习惯,我把所有的 Unity 项目都做了离线版本保存起来。我这里说的是 FBX 版本的源文件丢失。实际上,我当时觉得这个方法可能最后行不通,而且我也非常不愿意做 FBX 移植。最后我实在忍不了了,所以只在 Unity 编辑器里面进行了自动调整。但这也同时意味着,每一次做移植的时候,我都必须重新做完之前的这些繁琐的事情。然而,一台 PC 坏掉了,而且多年之后,当我想要为这个版本增加优化的时候,发现一些都必须重新做一遍。
市场营销力度不够
我觉得 HyperBowl 的 非死book 页面有很多的粉丝,而且在 推ter 上做的也还可以。但其他方式的市场营销几乎没有做。理论上来说,如果有足够的时间和收入,我非常愿意投入到市场营销方面,但当时我在没有工作的情况下,还 需要养家糊口,所以既没有收入也没有足够的时间来做。
在有收入的时候,我至少会多投入一些进行市场营销,而且也的确对游戏销售有帮助。放出推广代码、经常的更新、非死book、本地化、与评论 者交流以及博客回复等,都是有帮助的。虽然市场营销竞争越来越大,但这些方式所取得的效果差异也越来越小。说实话,这款游戏的收入曲线几乎是铃铛式的,在 圣诞节前夕达到了顶峰。
这里再说说盗版,有一段时间,我的 iOS 手游刚刚更新就被人在几个小时内破解了,我非常厌恶这件事,而且并不像有些人说的那样,盗版可以帮你做市场营销,当然,盗版也并没有影响我的游戏收入。而 另一方面,在 Android 平台,几个月之前 Android APK 被破解了,在此期间,游戏在 Google Play 的收入出现了大幅下滑,虽然不一定有直接关系,但总之谁也说不清为什么。
货币化做的不好
在我一开始做手游的时候,我并没有真正的去想加入广告,因为当时如果不写自己的 Unity 插件的话,做游戏内广告是非常不方便的,还有一部分原因是我不愿意在游戏中看到太多的广告。所以我当时的每一个手游要么是付费下载,要么就是完全免费,而 且没有加广告。直到有一天我发现 prime31 加入了 iAd 插件,所以我开始尝试这种做法。几个月之后,我发现广告是可以带来收入的,所以我现在也在一些游戏里加入了广告。
Unity 现在也加入了 iAds 插件,所以 prime31 插件就没有必要再使用了,最初,Unity 的 iAd 插件效果并不如 prime31,但 Unity 的广告 API 没有加入 AdMod 或者 Chartboost,因此广告收入来源也不多。也或许,我可以尝试免费模式,并且加入 IAP 选择,但当时都没有条件去做。
货币化方面的困扰
这里说的并不是很多的收入,而是对之前的做法比较遗憾。当时有很多的广告网络联系我,而每一个我都进行了回复,这浪费了很多的时间。首先,他们 想让你加入 Skype 式的聊天,但却不给你提供可以用的 SDK,所以大多数的时间都是在讨论一些毫无意义的问题。我知道可能从目前的广告网络不会得到太多的收入,但我目前的游戏设置是可靠而方便的。
所以我的教训是,你可以通过多个小项目学到一个游戏引擎的很多东西,这可能是最好的开始方式。但如果要真正的掌握一个游戏引擎,你需要一个大的 项目,同时尝试多种功能。几年前,Apress 邀请我编写一部 Unity iOS 书籍,我首先想做的就是做一些项目来证明不同的功能。所以我现在还在尝试做手游,而且是一些简单的项目。