2013 年 10 月 31 日
客座文章:裸企鹅男孩 – 从 Flash 到 Corona SDK
Rob Heasley 是 Naked Penguin Boy 的创始合伙人和创意总监。 Rob 在 90 年代初开始了他的职业生涯,担任插画家和动画师,并在进入广告行业之前学习了平面设计。
2001 年,Rob 和他的兄弟们创立了 Naked Penguin Boy,一家专注于为梦工厂、派拉蒙、华纳兄弟、卡通网络、ITV、立博、哈珀柯林斯和巴祖卡糖果品牌等客户创建引人入胜的移动和网络内容的数字机构。
传统上,我们 Naked Penguin Boy 专注于桌面,偶尔涉足移动领域。
Flash 对我们来说一直是一个很棒的工具,因为我们的客户通常想要一些简单有趣的东西,最重要的是,他们希望我们快速交付。一名开发人员和一名艺术家可以在短短几天内制作一款游戏,我们编写了可重用的类,这些类变成了一个零件套件和一个框架。
几年前,当移动设备开始大规模增长时,这一切都发生了变化。作为 Naked Penguin Boy 的创意总监,我知道我们的重点必须迅速改变。我们尝试了 Flash 的移动迭代,并研究了 Xcode 和 Java,但没有一个能很好地匹配我们的技能组合和完成项目所需的速度工作流程。
在研究了许多移动解决方案后,我们尝试了 Corona SDK。从我们开发人员的角度来看,第一个大的优势是简单的安装。我们很快就在模拟器和 Android 设备上启动了“Hello World”。我们有 ActionScript 3 的经验,并且 Lua 证明很容易上手。没过多久,我们就有一个基本的游戏在运行。
掌握 sprite 表也很容易,因为我们是 Flash 中 blitting 位图的老手。缺少类和真正的面向对象代码一开始让我们有点不确定,但这可以通过 Lua 表的灵活性来弥补,没过多久我们就创建了可重用的菜单、精灵控制器和粒子引擎。
我们开始开发一些内部演示来试水;其中一个是无尽奔跑风格的游戏,因为我们想看看 Corona SDK 如何处理平铺大图像和多层视差动画。让我告诉你 – 太棒了!
我们快要完成构建时,我们的一位客户打电话给我们,需要在一个非常紧张的期限内构建一款紧急的手机游戏。幸运的是,我们的无尽奔跑演示与我们客户的需求非常匹配,我们将引擎重新用于新项目。该项目是为 ITV 节目 Ant & Dec’s Saturday Night Takeaway 制作的。在发布几周内,该应用程序在 iOS 上达到了免费游戏前 10 名,并在娱乐类中排名第一。
我们很遗憾地说这款游戏在 App Store 上不再可用,但是你可以看到一段视频和图像,阅读案例研究并查看下面的游戏预告片。
使用 Corona SDK 的最大挑战是我们的设计师和艺术家习惯于直接在 Flash 中工作并看到游戏资源被操作。此外,学习如何布局以在不同的分辨率和屏幕尺寸上工作,同时保持一致的游戏玩法,证明有点棘手,但我们最终想出了一套配置文件和“安全区域”系统,我们可以根据我们想要的游戏类型使用它。
其中许多经验教训在我们创建的下一个内部游戏中得到实施,该游戏名为 Mutton For Punishment,这是一款导弹指挥风格的游戏,其中一只顽皮的狼正在追逐你的羊。我们添加了许多关卡、能量提升、游戏内货币和升级,并将其与 Game Center 联系起来。
我们发现 Corona SDK 非常适合在紧张的时间线上组装游戏 – 这只比在 Flash 中开发的时间稍长一点。但是,跨发布的便利性和易于使用的模拟器弥补了这一点,最终我们的作品运行流畅,看起来很棒,尤其是在高清模式下。
我们最新的 Corona 构建的游戏,Mutton For Punishment 在 App Store 上免费。下载游戏,请告诉我你的想法。
Flash 将永远在我心中占有特殊的地位,特别是自从我开始使用它时它仍然被称为 FutureSplash。然而,随着行业和预算从网络转移到移动设备,以及移动游戏以惊人的速度持续增长,Corona SDK 是我们的首选工具。
留意一下 Naked Penguin Boy 在圣诞节前将在 App Store 上发布的另外几款游戏。
Shane Thomas
发布于 15:36,11 月 7 日“缺少类和真正的面向对象代码一开始让我们有点不确定,但这可以通过 Lua 表的灵活性来弥补,没过多久我们就创建了可重用的菜单、精灵控制器和粒子引擎。”
我很想看到关于这部分的特别文章!我认为它会成为一篇很棒的文章,其中包含 Lua/Corona 的技巧。
Rob Heasley
发布于 02:22,11 月 11 日嗨,Shane – 感谢您的评论。
我们在圣诞节前夕非常忙,但我会尝试在明年年初写一篇关于我们工作流程的更多解释的文章。希望它有所帮助。
干杯
Rob