2016 年 1 月 19 日
开发者简介:QuizTix
我们偶尔会很荣幸地重点介绍使用 Corona SDK 做出卓越成就的 Corona 开发者。
本周,我们想向您介绍 QuixTix,一家位于伦敦的小型工作室,由 Ian Masters 和 Albert Marshall 创立。
QuizTix 使用 Corona Enterprise 制作了一系列问答游戏,其中包括一个名为 QuizTix: BBC Comedy Genius 的 BBC 品牌版本,该版本允许您通过排行榜与喜剧迷们比拼智慧,成为英国喜剧的智囊。
以下是 QuizTix 的明星程序员 Alan 对使用 Corona SDK 开发他们的应用程序的看法。
介绍 QuizTix
2013 年,QuizTix 成立,旨在创建一系列适合家庭的趣味主题问答游戏。团队的所有成员之前都有使用 Corona SDK 的经验,因此它成为 QuizTix 的首选,因为它使我们可以轻松创建新内容。
我们的大部分“核心”工作都已完成,因此我们可以专注于游戏玩法,这正是我们真正想关注的地方。但是,我们知道 Corona SDK 不具备我们迫切需要的一些功能(例如离线构建),因此我们研究了 Corona Enterprise。
多亏了 Corona Enterprise,我们现在已经推出了七款 QuizTix 游戏
我们在 2015 年的 GDC 上与 BBC 会面(为了见一位来自伦敦的人,走了很远的路!)并向他们提出了关于游戏的想法。QuizTix 的想法一直是与品牌合作,创建新版本的 QuizTix。我们可以提供经过验证的游戏玩法和卓越的参与度。虽然体验是 QuizTix,但品牌才是真正的内容。
为什么选择 Corona Enterprise?
我们做出了一个深思熟虑的决定,为每个主题设置单独的应用程序,以便让每个游戏都能够吸引那些特别喜欢该主题的人,而不是仅仅作为通用的问答应用程序进行营销。
由此产生的最大挑战之一是,我们需要一个具有单个代码库的项目结构,该代码库可用于创建多个应用程序,以最大程度地减少开发和测试时间。
每个游戏都将包含自己独特的问题、美术作品和音频,但对核心游戏机制的更改将应用于所有游戏。这将使我们能够以更快的速度发布具有新内容的新游戏,同时始终保持现有游戏与最新功能同步。
我们最需要的功能是能够使用单个命令构建所有版本的游戏。虽然使用 Corona SDK 构建单个 APK/IPA 是一个足够简单的过程,但它没有同时构建两个游戏的能力。
鉴于我们目前已经推出了七个版本的 QuizTix,并且还有更多版本即将推出,这意味着:在模拟器中加载一个游戏,为 iTunes 构建,为 Google Play 构建,为亚马逊构建。重复六次!
Corona Enterprise 为我们提供了从命令行构建的选项。这允许我们创建脚本,可以一次构建多个构建,使用不同的配置(例如,所有游戏的 Google Play 构建,单个游戏的 iOS+GooglePlay+Amazon 构建)。由于模拟器根本不用于离线构建,因此我们可以在等待构建完成的同时继续工作。
使用 Enterprise 还允许我们开发自己的插件。这使我们可以测试许多我们原本无法访问的 SDK,这对货币化/分析等至关重要。QuizTix 的目标受众是非常休闲的受众,我们的重点是通过高质量、负责任且基本不引人注目的广告来实现所有玩家的货币化。我们一直在努力寻找最佳合作伙伴,以获得出色的填充率和 eCPM。
其他工具
尽可能降低整体文件大小对我们来说非常重要,因为当试图在互联网速度较低或数据上限的市场中实现下载时,它可能是一个重要因素。为了方便起见,我们在构建系统中集成了许多其他工具,几乎不需要付出任何努力。
TexturePacker – 它具有命令行实现,因此通过将美术作品放入我们源文件夹中的单独文件夹中,我们可以将它们打包成单个纹理图像。这使我们能够通过将所有游戏角色打包成单个 PNG 来节省内存使用量。Corona 已经具有内置函数,可以从纹理表中单独使用每个图像,因此这是节省空间的好方法。
Tiled – 同样,我们使用 Tiled 为我们的游戏创建背景,它以与 TexturePacker 完全相同的方式将背景打包到地图中,但允许我们在一个漂亮的 GUI 中放置背景图块。
ImageMagick – 对我们来说,资产创建中比较耗时的部分之一是导出多种尺寸以适应具有不同分辨率的设备。虽然创建一个单独的图像,然后创建一个 @2x 和 @4x 版本不是什么大问题,但是当这些图像需要调整和需要制作新图像时,时间很快就会加起来。我们实施了 ImageMagick,以便我们可以仅在我们的源文件夹中包含最高分辨率的图像,然后让 ImageMagick 创建较低分辨率的版本。
PNG 压缩 – 即使使用 TexturePacker,我们也知道我们可以进一步缩小应用程序的大小。我们使用一个名为 PNGQuant 的 PNG 压缩工具将所有图像从 24 位转换为 8 位颜色。这将文件大小减少到其原始大小的约 1/3(例如,我刚刚随机选择的一个图像从 201KB 变为 72KB)。这帮助我们更接近将每个应用程序的文件大小降至 ~20MB 的目标。这对我们来说很有效,因为我们的游戏具有卡通风格,但是如果你的游戏包含照片,它可能效果不太好。
音频压缩 – 与美术作品一样,我们在源文件夹中保留全尺寸音频文件,但会将其复制并处理到最终项目文件夹中,以减小文件大小。
我们还决定将文件转换为单声道,因为许多移动设备只有一个扬声器,因此无法从立体声音频文件中受益。
通常,我们使用 WAV 作为源文件,然后将其转换为 Android 的 Ogg 和 iOS 的 CAF。OSX 有一个内置的音频转换工具,称为 afconvert。对于 Android,我们下载了一个名为 oggenc 的工具。
除了我们的主要构建脚本流程之外,我们还使用了 Enterprise 的一些其他工具。这些工具中的大多数都可以与 Corona SDK 项目一起使用,但由于它们的用途广泛,仍然值得一提。
Spine – 这使角色动画变得更加容易,而且它们看起来比我们尝试使用过渡在代码中创建它们时更好。
Git – 我无法强调良好的版本控制有多么重要,尤其是在多人同时处理项目时。
许多人刚开始时只是在达到安全点时复制他们的项目文件夹,对于只有一个开发人员的小项目来说,这“还可以”。
使用 Git/Mercurial/类似的版本控制系统非常棒,因为它允许你做如下事情:
- 让两个人同时处理同一个文件的不同部分,Git会找出更改的地方,并尝试合并两人的工作。
- 回到过去!如果你使用像SourceTree这样优秀的图形界面工具,你可以看到你提交的所有更改的详细列表。这非常棒,因为有时你知道你更改了某个文件,但不记得它之前是什么样子,或者是什么时候更改的。你可以搜索文件的历史记录来查找更改的内容。
- *创建“分支”,允许你声明“保持当前项目不变,但从这一点创建一个单独的更改线”。如果你想测试一个新的库,而不必冒着其他人的稳定工作版本项目风险,这将非常方便。
Amazon S3 – 有时我们对游戏进行一些不需要更新的更改(例如,修复拼写错误),但仍然希望尽快将其放入游戏中。我们使用 Amazon S3 来存储图像和包含游戏中使用的字符串/值/等等的文件。这使我们能够通过更新 S3 文件来修复游戏中的小问题,这些文件然后在启动时被拉入应用中。显然,在没有网络连接时,你需要包含这些文件的硬编码副本。
挑战
就局限性而言,我认为我们在 Enterprise 中遇到的最大障碍是你需要了解 iOS 和 Android 原生开发的工作原理。
示例项目应该在这方面给你很大的帮助,而且我敢说,只要稍加尝试,每个人都应该能够在短时间内让基础知识正常工作。
有些事情起初可能看起来令人困惑。例如,使用 Enterprise 时,你不会将插件添加到你的 build.settings 文件中,而是手动添加它们的文件,并且通常需要将详细信息添加到其他文件(如 AndroidManifest)。
但是,你很快就会意识到,为了它给予你的自由,这是一个很小的代价。Enterprise 实际上是一种创建原生项目的方法,它让你使用 Corona 的 Lua 库来简化游戏创建。
我们现在可以更快地发布新版本了!展望未来,我们只能看到 Enterprise 使我们更容易继续以这种方式发展。
因此,如果任何开发人员对 Enterprise 是否有用犹豫不决,对我们来说,这是不费脑筋的,但我建议重新阅读我指出的优缺点。如果你需要任何进一步的指导,Corona 的员工和论坛社区总是非常乐于助人。
成功
在七款游戏中,玩家已经回答了超过 3000 万次问题,这对于希望在消费者心中占有一席之地的品牌来说非常有吸引力。
Tony Godfrey
发表于 11:39,1 月 19 日对一些用于应用/游戏开发的最佳工具进行了很好的总结。我认为关注自动化构建非常好,但我最感兴趣的是了解你开发的插件,以及你是否计划将其记录在案并在 Corona 商店中发布。写得很好!
Ian Masters
发表于 03:18,1 月 21 日它们不全是完整的插件,我们会尽力而为。
Roger Womack
发表于 14:30,1 月 19 日很高兴听到完整的流程概述和使用的工具。你使用 Amazon S3 的方式是我之前没有考虑过的,非常巧妙。
Ian Masters
发表于 03:18,1 月 21 日谢谢,Roger!
Andreas
发表于 00:28,1 月 20 日好文章!顺便说一句,你可以简化你的流程
TexturePacker 已经包含 PngQuant - 你只需从“像素格式”下拉列表中选择“索引(8 位,pngquant)”即可。无需对图像进行后期处理。
Ian Masters
发表于 03:19,1 月 21 日好建议!我们会去看看的。
Dave
发表于 03:26,1 月 20 日这不是 Corona 的最佳广告,英国 iOS 应用商店中有很多关于崩溃的评论。
Dave
Dave
发表于 04:22,1 月 20 日刚刚在我的 iPad Air 上试用 BBC 版本,对教程选择了“是”,点击了 14 号椅子。应用程序崩溃并返回到仪表板。
Dave
Ian Masters
发表于 03:22,1 月 21 日有时错误会溜进来。不过,我在我的 iPad Air 上没有看到这个错误。你能通过游戏中的“绿色问号”按钮给我们发消息,并发送更多信息吗?显然,我们希望在下次更新中修复它。谢谢!
Jeremiah
发表于 09:22,1 月 20 日我不知道是怎么回事,但我刚刚下载并玩了一会儿 BBC 版本,我没有遇到任何问题。