科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 1829 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2011-12-11
明天
明天
发短消息
相关词条
Naughty Dog发展历程
Naughty Dog发展历程
《古墓丽影》系列发展史
《古墓丽影》系列发展史
《Drag Racing》发展历程
《Drag Racing》发展历程
魔兽世界60年代点点滴滴
魔兽世界60年代点点滴滴
《魔兽争霸》多人模式诞生过程
《魔兽争霸》多人模式诞生过程
《仙剑奇侠传》系列回顾
《仙剑奇侠传》系列回顾
口袋妖怪15年画面进化史
口袋妖怪15年画面进化史
魔兽争霸历史版本全回顾
魔兽争霸历史版本全回顾
《Pocket Planes》开发始末
《Pocket Planes》开发始末
街头霸王25周年收藏版
街头霸王25周年收藏版
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

《Asterope》开发始末 发表评论(0) 编辑词条

目录

《Asterope》开发始末编辑本段回目录

我曾经开发过大量手机游戏,包括《Constantine》、《Superman: Lex’s Payback》和《The Blade of Zorro》。我在大学中学的是计算机科学,但我花在个人项目上的时间超过花在学业上的时间。本篇文章讲述的是我如何将一个想法转变成商业游戏。在这片文章中,我将尽量介绍如何开发和发布商业游戏,这是许多独立开发者面临的问题。在游戏《Asterope》的开发过程中,我截取了许多各个开发阶段的截图,以此来展示游戏如何逐渐开发完成。希望本文能够给你带来乐趣,也能够教会你些许东西!

Asterope(from itunes.apple.com)

Asterope(from itunes.apple.com)

《Asterope》

我想先告诉你最终产品的情况。《Asterope》这款游戏的基本可玩性元素是通过射出绳索来控制飞行器(游戏邦注:其原理类似于著名游戏《Worms》中的忍者绳索)。飞行器不断向前飞行,你可以用绳索抓取附近的所有东西来改变飞行器的方向。游戏中有个故事,地球附近有颗小行星以极快的速度移动,但是当它接近地球时却停止了。因此人类派遣航天飞机来检查这枚小行星,但是航天飞机却被吸引到小行星上。没有人愿意执行救援任务,大家都害怕他们也会遭遇类似于宇航员的命运。于是,这时玩家出现了,接受了拯救宇航员的任务。故事结局有所改变,玩家发现这颗小行星事实上是个由机器人控制的机器,他们意在侵略地球。

项目由来

某天,有人询问我如何产生出这款游戏的想法。当时我想不起来了,但随后我想起了这个问题的答案。当我看到Thomas Jakobsen撰写的文章后开始学习制作绳索物理游戏,于是便产生了这个想法。一直以来我都很乐衷于电脑上的物理模拟,因而我当然要去执行Jakbosen教授的技术。通常而言,商业游戏都有着1个或数个设计师,他们集中精力构思游戏想法,然后将想法提交给开发者将其变成现实。但是,我并没有采取这种做法,而且我认为我的做法比较适合像我这样的独立开发者。我不是为如何执行想法而去寻找解决方案,而是根据解决方案来诞生想法。因而,在游戏开发开始之前,我已经在这个巨大的开发挑战上获得了胜利。

宇宙飞船和小行星的想法构思于我下课回家的路上。创造性想法往往在你做某些事情时产生,而不应只坐在电脑前让你的右脑辛勤工作。《Asterope》是款真正的J2ME(游戏邦注:全称“Java2 MicroEdition”)游戏。J2ME游戏有个令人烦恼的问题,就是你每次只能按一个键。我考虑在游戏中使用箭头在发射绳索或许会更好,这样就更像是个计划游戏而不是动作游戏。我还知道必须自行完成游戏的图像,尽管我可以胜任美工这个角色,但是并不是很棒。因而,保持设计的简单性至关重要,这样我才能自行完成美工内容。

在想法诞生不久之后,就出现了Google Android Challenge。这真是个实践自己想法的绝佳机会。如果我能够进驻前50名,就可以获得2.5万美元!这听起来真得很棒,我这么对自己说。我记得,去年12月我参加了公司的圣诞宴会。那时我刚刚离开公司,以便能全身心投入自己的学位考试和项目中。将近凌晨4点之时,每个人都喝得有些醉醺醺的。当时有人询问我下一步的计划,我将自己的想法告知他。现在,10个月过后,产品已经完成而且正等待出售。

准备,开火,瞄准目标!

我并没有立即开始游戏的制作。如果我没记错的话,Google Android Challenge的最后期限定在二月的最后一天。尽管游戏想法在1月份的时候已经相当明朗,但我仍然无法开展工作。在辞去兼职工作之后,我想我需要些许时间来恢复活力。活动最后期限迅速逼近,我几乎都已经快放弃了这个想法,但随后谷歌决定将最后期限延期至4月14日,也就是新SDK的发布之日。这使我燃起了斗志,开始抓住这次行动的机会!

我的开发工作就这样开始了。我很喜欢Visual Studio,觉得C# .NET是构建游戏原型和制作工具的最佳方法。因此,最终我选用Visual Studio Express Edition来制作游戏。2007年末,我已经做过些许物理测试,因而我知道绳索想法能够发挥其作用。一开始我并没有构建游戏可玩性原型,而且制作关卡编辑器。我需要的东西有:

1、用石头构建洞穴的关卡格式以及让我可以轻松快速制作关卡的编辑器。在开发之初有良好的内容,而且无需在构建关卡时手动输入数据,这是良好开始的关键所在。

2、我可以导入石头图片并创造碰撞样式的编辑器。将所有的石头构建成凸面体,这样我就可以使用一个称为SAT(游戏邦注:全称“Separating Axis Theorem”)的简易碰撞运算法则。

保持内容的简单化确实帮了我很大的忙。使用凸面体石头,我可以更简单地实施碰撞察觉,而且也几乎没人会注意到所有的石头都是凸面体。重点在于,要将你的时间花费在关键点之上。你可曾听说过80/20规则?只有20%的时间花在80%的内容上。应该尽量避免犯下这种错误。

Steve Pavlina曾说过“准备,开火,瞄准目标”方法:独立开发者将过多的时间耗费在制作类游戏引擎、细节和先前的计划上,最终却没做成任何事情。通常,独立开发者会使用最为著名的“准备,瞄准目标,开火”(游戏邦注:即构思想法,计划和执行)方法,最终的结果是“准备,瞄准目标,瞄准目标,瞄准目标,瞄准目标……”。如果我在此过程中碰上或需要某些更为复杂的关卡和更多的功能,那么我将随后将其制作出来。重点在于,我必须构建原型,然后迅速加以执行。

编辑器花了两天的时间就制作完成了,游戏最初的原型也很快显现。总体来说这个过程花了将近1周的时间,你要知道当时我还是个学生。但是我确实选择牺牲自己的学业,因而我觉得将时间投入在这款游戏上更为重要。

最初的原型只有1个关卡和一艘向前飞行的飞船。接下来就该执行游戏的物理部分,我的做法是复制粘贴我在2007年制作的物理测试。而这最终证明是个有效的做法,尽管我花了些时间进行校正。

level_editor(from gamedev.net)

level_editor(from gamedev.net)

obstacle_editor(from gamedev.net)

obstacle_editor(from gamedev.net)

first_prototype(from gamedev.net)

first_prototype(from gamedev.net)

保持动力

我个人最喜欢的自助讲师Eben Pagan讨论起完成某些事情的挑战时声称90%的人的动机并非目标。因而如果你属于其中的一员,如果你设定目标决定在某个时间内完成游戏制作,你会觉得自己动机不明。最好将注意力集中在小问题上,每次解决1个小问题。我们中多数人都很善于解决问题。这个想法源于Bobb Biehl编撰的书籍,名为《Stop Setting Goals If You Would Rather Solve Problems》。

所以,当我完成编辑器和游戏原型后,我觉得游戏玩家已经确立。现在我必须解决的问题是如何让其变得更为精致。游戏早期精美的图像能够推动你将游戏开发完成。否则尽管你已将大部分代码编写完成,如果游戏看起来很糟,那么开发完成之日也就遥遥无期了。最好能够用各种方法欺骗自己,让自己觉得要做的事情已经不多了。

我打开自己的图片编辑器,开始制作游戏的图片。

graphics mockup(from gamedev.net)

graphics mockup(from gamedev.net)

上图是我首个自己认同的场景图片。但是就游戏的艺术性与朋友Scott Hilbert谈论过之后,我们得出结论,石头需要有些阴影。因而,我给所有的石头添加了阴影。

graphics mockup 2(from gamedev.net)

graphics mockup 2(from gamedev.net)

第二次制作完成后我得到了以上图片,我有个创造石头形状的运算法则(游戏邦注:这是个属于Photoshop的逐步系统),这样它们就能够有统一的形状,而且我也能更快速地制造石头。创造所有艺术的初版确实耗费了些许时间,但我很高兴地看到更改后的图片鲜活地反映出了原型。这让我对游戏的开发充满了动力!

asterope_final design(from gamedev.net)

asterope_final design(from gamedev.net)

将游戏移植到Android设备

关卡编辑器的大部分特征都已经完成,现在面临的挑战是移植原型并将其转化成Android游戏。我将Android应用分为三个逻辑部分:世界、物理和游戏。世界复杂加载和显示关卡代码,物理负责处理游戏的物理机制,而游戏则负责处理所有的游戏逻辑。这些部分都用静态类来执行。我尽量将事物保持静态,这样可以加速Java应用。提及最优化问题,我犯下的错误是重新利用谷歌Android文件推荐的方法来制作物理代码,因为并非所有的手机都有FPU。这耗费了大量的时间,而且更另我感到沮丧的是,我不觉得这种做法有何积极的作用,因为测试者并没有齐全的设备用于测试应用。在将游戏移植到iPhone上时,我还是使用了原先的方法,这是我得到的教训。

事实上,将游戏从C# .Net导入Android非常简单,Java和C#也是如此。当我首次看到游戏的关卡在Android模拟器中顺利运行,这让我大感放心!我知道自己可以赶在Google Android Challenge期限到来之前将游戏完成。

asterope_alive On Android(from gamedev.net)

asterope_alive On Android(from gamedev.net)

有规律的生活习惯

在最后期限到来之前2-3周,我不得不开始让自己的“内容工厂”运转起来,制造所有的关卡和其他游戏所需内容。幸运的是,我的学业无需占用我大量的时间,因而我有充足的时间来制作游戏。现在,我想让你集中注意力!在这些时间里,我做了些让我印象极为深刻的事情。Eben Pagan曾说过如何让自己变得更具创造性,我严格按照他的做法来做。开发过程最后几周时间里,每天的事情是:

1、早起

2、喝下半升水

3、跑步2公里

4、回家,洗澡并沉思。在沉思中,我静静坐着聆听自己的呼吸声

5、吃健康的早餐

6、开发《Asterope》,在工作期间吃午饭,如果觉得失去创造性就出去走走

7、晚上我尽量不将时间花费在游戏上,做做运动或与他人交往

Eben Pagan声称每天醒来第一个小时的状态会影响到一天的其他时间。我相信他的说法。在最后的这几周里,我像台机器一样开发《Asterope》,但我会在晚上抽空与朋友见面或陪陪女友。如果时间紧迫的话,你自然会疯狂地工作,但是如果你在其中穿插休闲或长跑,你将更具创造性。而且,这也能提高你的生活质量。

期限迅速逼近,但是我对自己需要做的事情以及不去做的事情有清晰的认识。游戏的最终版本缺乏些许主要功能,如没有音频、有些关卡存在平衡问题而且某些内容管理做得很不好,图片显示后过段时间会重新加载。但是游戏已经成形,你可以从头玩到游戏结束,而且我觉得这是我做过的最棒的游戏。我感到很满意,我将作品邮寄给谷歌,满心希望地等待着结果的到来。

prototype_to_reality(from gamedev.net)

prototype_to_reality(from gamedev.net)

成功近在咫尺,不要轻言放弃

结果,我收到的信息是:“我们感到很遗憾,你的作品并没有进入前50名。”对此,我并没有感到异常惊奇,我听说该公司收到了将近1700个作品。我仍然觉得此次开发很有价值,至少我学会了如何变得更有创造性。我的游戏榜单上又增加了一款游戏。随后,谷歌公开发布排名前50的游戏。我感到惊讶的是,这些作品都不是常规游戏,尽管这些游戏有一定的机制,但并不像是普通的游戏。所以,很显然游戏并非该公司看重的东西。但我很高兴获知自己的游戏处在前25%之列——虽然这只是谷歌对此次挑战赛给我的唯一反馈信息。

尽管我个人对未进驻前50榜单感觉良好,但是有些人则认为这是个彻底的失败,因为我没有获得任何东西。精明的Jeff Smith是Eben Pagan的朋友,他说我们犯下的最大错误是将结果作为目标。我们永远不能为了某种结果而投入精力,结果只是我们行动的副产品而已,你应该关注自己的行动。

尽管我没有中这款游戏中获得任何利益,但Napoleon Hill的《Think and Grow Rich》帮助我在游戏开发之路上继续下去。这个故事讲述的是某个离金子只有三英尺之遥的人。这个叫做R. U. Darby的人正在开采自己的新金矿,开始挖出了些金子,但是随后不再产出任何金子。挖掘片刻之后,Darby便放弃了。有些骨灰级的淘金者知道这个洞穴肯定能够出产黄金,于是从他手中买走了这个洞穴。他们只再掘进三英尺就发现了更多的黄金。R. U. Darby失去了数百万,但他吸取教训,在随后担任保险销售员的职位中,他在面对潜在客户说“不”的情况下仍然永不放弃。他成为了一个很成功的保险销售员,而多数销售额来自于那些以前拒绝购买的人。所以你应该不断前进,失败是成功之母。我选择继续前进,将游戏移植到iPhone上。

使用Mac开发iPhone版本

iPhone SDK发布之后,我立即决定将自己的游戏移植到iPhone上。我不能让《Asterope》呆着硬盘中蒙尘。我有个好朋友愿意将自己的Mac Mini借给我开发,但这个夏天我已经有了自己的全职工作,所以我只能利用晚上的时间来开发。每天编程10个小时的时间确实非常多。我知道这个夏天过后我就有充足的时间开继续开发这个游戏,因此我决定最好先将这个想法放放,专心享受夏日的时光。8月份我去意大利时,给自己买了部iPhone。我立马就爱上了这个设备,它有着我在其他手机上从未见过的漂亮UI。我此前用过7部诺基亚手机,它们对我的吸引力远不如iPhone。它与市场上现存的手机相比,有着巨大的飞跃。

8月末,我终于有了开发游戏的iPhone和Mac Mini,而且有了足够的时间。是时候开展自己的工作了,我不能让这个机会溜走。而且我要告诉你的是,当时我便有制作有望大量吸金的商业游戏的想法。

在此,我不细致阐述iPhone版本的开发过程。我对NDA(游戏邦注:即保密协议)的了解并不多,所以最好还是别说太多内容。这边文章并非教你如何编码,而是教你如何将想法变成现实。然而我要告诉你的是,在我开始将游戏移植到iPhone之前并没有用过Mac,但仅仅三天之后首个关卡便可以在iPhone上顺利运行。但是,在使用OS X时确实遇到了很大的麻烦,最终我利用Visual Studio把游戏从Java & Android导入到C & OpenGL中。使用OS X三周后,我更为了解该系统,觉得它有些地方做得比Windows要好。我期待自己的下一款iPhone应用。

好友的帮助

我不是个出众的美工,我不知道如何制作音效和音乐,所以我只得寻求他人的帮助。这种方式让我结交到了许多有才华的好友。Scott Hilbert在美术设计方面做得很棒,Kai Saksela制作了三首与背景相符的曲调,Andrew Russell也做了个背景曲调。我从网络上购买音效,这些音效都很便宜。总的来说,你所需要的多数媒体都可以在网络上以便宜的价格买到。但是如果你想要节省成本,那么就需要有自己的美工和音乐师。

总结

《Asterope》已经完成而且正在iTunes Appstore上出售。我觉得我们可以学习那些自助的窍门,许多人曾经做过你现在想做的事情,他们会教授你如何实现目标。如果你想要获得成功的话,就应该学习他们的经验教训。有些独立开发者可能比我还像引擎程序员,但是如果你想制作出自己的游戏,就要将注意力放在执行而不是单纯的构思。我还建议你结交些朋友,他们会为你的项目提出意见。Napoleon Hill说道:“意见是地球上最便宜的商品!”Napoleon Hill教导我的另一项原则是快速做决定,修改时则需谨慎。

游戏邦注:本文发稿于2008年10月16日,所涉时间、事件和数据均以此为准。(本文为游戏邦/gamerboom.com编译,作者:Niklas Wahrman)

Start to Finish: Publishing a Commercial iPhone Game

Niklas Wahrman

This is a story about how I took an idea and made it into a commercial game. In this article I will try to focus on how to get a game done – a problem many independent developers face. During the development of my game, Asterope, I took a lot of screenshots from many of the development stages that show how the game gradually came to life. Hope you enjoy the read and learn something!

Who am I?

My name is Niklas Wahrman, I’m 24 years old and live in Finland. I’ve worked on numerous mobile phone games including Constantine, Superman: Lex’s Payback and The Blade of Zorro. I study computer science but spend more time on my personal projects than university – just as one should in my opinion!

Asterope in a Nut Shell

I want to start at the end and tell you what the final product became. Asterope is a game that completely relies on one gameplay element: the ability to control a flying ship by shooting out a rope (that works kind of like the ninja rope in the famous game Worms). The ship flies constantly forward and by grabbing hold of whatever surrounds you with a rope you can alter the ship’s direction. The game has a story of how an asteroid was nearing Earth at a blazing speed but just as it got very close to Earth, it stopped. So Earth sent a space shuttle to check it out, but the space shuttle got sucked into the asteroid. Nobody wanted to go on a rescue mission, fearing they would suffer the same fate as the astronauts. That’s how the player comes into the picture – on a mission to rescue the astronauts. The story has a twist later on when the player discovers the asteroid is really a machine controlled by the Androids on a mission to invade Earth.

How It All Began

Someone asked me the other day how I came up with the idea for the game. I could not remember at that time, but the answer came to me later on. The idea came from when I learned to do rope physics after having found an amazing article on the subject by Thomas Jakobsen. I’ve always enjoyed physics simulations on computers so of course I had to implement the technique Jakbosen teaches. It’s typical for commercial games to have one or many designers, brainstorm sessions and so forth where they come up with ideas for games and then hand the idea to the developers to implement them. But I did it the other way around, and I think that is profound and a great strength for us independent developers. Instead of coming up with solution on how to implement ideas, we can come up with ideas around our solutions. So a big development challenge was already won before the development of the game was started.

The idea about the spaceship and the asteroid came one day when I was walking home from class. Creative ideas usually come when you do something other than sit in front of your computer and let your right part of the brain work. Asterope was actually meant to be a J2ME (Java2 MicroEdition) game. J2ME games suffers from the annoying fact that you can only press one key at a time; I thought using the arrows to fire a rope would work well in the sense that it would be more of a plan-ahead game than an action game. I also tried to keep in mind that I would do the graphics myself and although I am a capable artist, I’m not that great. So it was vital to keep the design simple so that I could do the art myself.

It wasn’t long after I got the idea that I stumbled upon the Google Android Challenge. What a perfect opportunity to put my idea into action. If I were among the Top50 I would get $25,000! Awesome, I thought to myself. I remember last December when I attended my company’s Christmas party. I had stopped working there recently to be able to focus my full time on my degree and on my own projects. It was around 4am and everyone had had quite a few too many whiskeys and someone asked me what I was going to do next and I explained the idea to them. I find it amazing how now, 10 months later, the product is finished and for sale.

Ready, Fire, Aim!

It actually took a while until I started working on the game for real. The deadline for the Google Android Challenge was the last day of February, if I recall it correctly, and although the idea was vividly with me for January I could not get myself to start working on it. I think it had to do with me needing some time to rejuvenate after having stopped working part-time. I almost gave up on the idea with the deadline nearing so quickly, but then Google decided to postpone the deadline to April 14th after they released an update to their SDK. This got me motivated to do it – to take action on the opportunity!

So the work began. I’m a huge fan of Visual Studio and I find that the best way to prototype games and do tools is to use C# .NET. So using Visual Studio Express Edition I finally began working on the game. I had done some physics testing late in 2007, so I knew it would not be a problem to get the rope working. Instead of prototyping the gameplay first I did the editor to create levels. What I needed was:

A level format with caves constructed out of rocks and an editor that let me easily and quickly create levels. Having great content early on and not having to build levels by manually inputting numbers into arrays is really key to a good kick start.

An editor where I could import pictures of rocks and create their collision shape. All rocks are built from convex shapes, that way I could use an easy collision detection algorithm called SAT or Separating Axis Theorem.

Keeping things simple is something that really helped me get things done. By using convex rocks I could do collision detection more easily and who will notice that all rocks are convex anyway? It’s important to focus your time on the right things. Ever heard about the 80/20 rule? 20% of your time is spent on 80% of the result and visa verse. Try to avoid that!

Steve Pavlina talks about the “Ready, Fire, Aim” method: Independent developers spend so much time on making generic game engines, details and planning ahead that in the end they get nothing done. Often when independent developers use the well known “Ready, Aim, Fire” (Idea, Planning, Execution) method it ends up as: “Ready, Aim, Aim, Aim, Aim, Aim…”. If I happened to need more complex levels and more features I could implement them later. It was important I got a prototype up and running as fast as possible.

The editor probably didn’t take much longer than a couple days to create, the code was horrible, but I wasn’t going to build upon it much in the future anyway. The first prototype came to life quite quickly too. All in all in about a week I’d say, and keep in mind I was a full time student during that time. But I did let my grades suffer; I found it more important to work on this game.

The first prototype consisted of just a level getting loaded and a ship flying forward. Now was the time to implement the physics, which I did with a plain copy & paste from the physics demo I created in 2007. And it worked, although it took some time tweaking to get it just right.

Keeping My Motivation

Something that Eben Pagan, my personal favorite self-help guru, talks about when it comes to challenges to get things done is how 90% of people are not motivated by goals. So if you’re one of them, and you likely are, you will feel unmotivated if you put up a goal to get a game done by a certain date. It’s better to focus on small problems – one problem at the time. Most of us are problem solvers. The idea originates from a book by Bobb Biehl named “Stop Setting Goals If You Would Rather Solve Problems”.

So I had an editor and a prototype of the game and I felt that the gameplay worked. Now my problem to solve was making it pretty. Having a good-looking game early on can be a great way to motivate you to get the game done. Although you could have most of the code written, if the game looks bad it will feel far from done. Better to trick yourself into thinking there’s not too much left to do.

I opened my image editor and began to mock-up some graphical designs of the game.

This was the first design I was happy with. But after having discussed the art with a friend, Scott Hilbert, we came to the conclusion that the stones needed some shading. So I added shadows to all rocks.

After the second mockup I knew the look I was after and I had an algorithm I used to create the rocks (a step-by-step system in Photoshop), so that way they would have a uniform look and I would be able to create the rocks more quickly. Creating the first version of all the art did take some time, but damn I felt happy to see the prototype alive with the new art. Gave me a huge kick of motivation!

“We are the Androids. And we’re here to take over your world!”

The level editor had most features implemented and now the final challenge was to get the prototype ported and turned into an Android game. I divided the Android application into three logical parts: The world, the physics and the game. The world had the loading and displaying code for the levels, the physics handle the physics and the game handled all the game logic. These parts where implemented as static classes. I kept as many things possible static as it’s a good trick to speed up Java applications. Speaking of optimizations, a mistake I did was to redo the physics code to use fixed pointed math because the Google Android documentation recommended this, as all phones might not have FPUs. This took time, was frustrating and I do not think it had a positive impact on my entry, as the testers did not have any real devices to test the applications on anyway. I changed it back to floating points when I did my iPhone port – lesson learned.

Truth be told, porting it to Android from C# .Net was super easy, as Java and C# are so much alike. When I first got to see a level of my game running on the Android emulator it was a big relief! I knew I could pull it off to get this game done in time for the Google Android Challenge’s deadline.

The Power of Rituals

With only around 2 – 3 weeks until the deadline I had to start the “content factory” and produce all the levels and other content needed for the game. Luckily I did not have to spend many hours in university so I could spend a lot of time on the game. Now I want you to listen carefully! I did something that made me super effective during these weeks. I did exactly what Eben Pagan said he did to get himself productive. Each day during the last weeks of development went more or less like this:

Got up early

Drank half a litre of water

Went for a 2km run

Came home, took a shower and meditated. With meditation I mean I sat still for a while and listened to my breathing

Ate a healthy breakfast

Worked on Asterope, had lunch sometime in between work sessions and also went out for walks if I felt unproductive

In the evenings I did my best to not work on the game. I exercised and kept social to rejuvenate

Eben Pagan talks about how the first hour you’re awake defines the tempo of the rest of the day. I believe him. I worked like a machine on Asterope these final weeks, but I took time off in the evenings to see friends and spend time with my girlfriend. It’s intuitive to work like crazy if you have a tight deadline, but it’s more productive if you work in chunks of focused time and actively rejuvenate in between, at least in the long run! Plus it increases your quality of life.

The deadline approached quickly but I had a clear picture of what I needed to get done and also what I would leave undone. The final version lacked a few major feature such no audio, some level balancing issues and some of the memory management was done really badly as images got released and reloaded shortly after. But the game worked and you could play it from start to finish and I felt it was the best game I had done. I was pleased. I mailed Google the entry and eagerly awaited the result.

Three Feet from Gold

And so the result came: “We regret to inform you that your entry was not among the top 50 submissions”. I was not super surprised as I had heard they had gotten around 1700 entries. I still did feel it was worth while none the less as I learned to be productive! I had gotten another game done to put under my list of accomplishments. Later when Google announced the Top50 to the public I was a bit disappointed to see that none of the entries were regular games, there were a few that had some sort of gameplay built in, but not like your average game. So games were not what they were looking for apparently. However, it pleased me to hear I was among the top 25% – the only feedback Google gave from this challenge.

Although I felt okay with not being among the Top50 one could consider it a failure when I did not win anything, right? A friend of Eben Pagan and brilliant man named Jeff Smith, talks about how one of the biggest mistakes we make is that we have a result as a goal. We can never commit to a result; the result is the by-product of our actions. Focus on your action.

A lesson I learned from reading “Think and Grow Rich” by Napoleon Hill helped me to continue although I did not get any profit from my game. It was a story about a man who literally stopped three feet from gold. A man named R. U. Darby was mining his new goldmine and it gave some good results for a while, but then it stopped producing gold, and after a while of digging without results Darby gave up. Some expert miners bought the cave as they knew it’s typical to have a dry spot in between gold findings. They only had to dig three more feet to find more gold. R. U. Darby lost millions, but he learned a lesson and later in life when he became an insurance salesman he did not stop when his potential customers said “no thanks”. He became a very successful salesman and most of his sales came after his prospects had already said no. So keep going – behind every failure is a success ready to be had! I kept going and took my game and ported it to the iPhone.

“Hi I’m a PC… using a Mac”

After the iPhone SDK was released I instantly knew that I had to port my game to the iPhone. I could not let Asterope sit still and collect dust on my hard drive. I had a buddy who was kind enough to lend me his Mac Mini, but I was working full time during this summer period so I could not get myself working evenings too. Programming for more than 10 hours a day is too much. I knew I would get time to work on it after this summer was over and my summer job had ended so I decided it was better to put the thought on hold and enjoy the summer. When I visited Italy in August I got myself an iPhone. Italy has legally unlocked iPhones for sale and I’m your typical gadget freak so I got it without blinking although it was not cheap. I instantly fell in love with the device, it had the most beautiful UI I had ever seen on a phone. And it just worked! I’ve had seven Nokias in the past but never have I been as impressed with a phone as I was with the iPhone. It’s just a huge step forward from anything previously on the market.

In late August I had the iPhone, a Mac Mini to develop it on and time to make it happen. Time to roll up my sleeves. I could not let myself pass on this opportunity. And I tell you it felt almost scary knowing I might have everything I need to make a commercial game with potential to make a lot of money.

I won’t discuss the details of developing for the iPhone. I’m a bit unsure of the NDA so I better keep my mouth shut. This article is not about coding anyway, it’s about how you can turn an idea into reality. However I’ll tell you this, I had not used a Mac before I began porting and importing my game and I got my first playable level working on the iPhone in only three days. But I did get into a huge fight with OS X and its ways of doing things and I ended up porting the game from Java & Android to C & OpenGL using Visual Studio. It was easy to get the C & OpenGL code ported and working on the iPhone. After having worked three weeks in OS X I did get used to the basics and found a few things done smarter than on Windows. I’m looking forward to making another iPhone application.

Friends With Benefits

I’m not a great artist and I don’t know how to do sound or music so I had to pull in some favors. It helps to have friends with great talent! Scott Hilbert did the most amazing art, a guy named Kai Saksela did three perfectly fitting background tunes and Andrew Russell did an additional masterpiece of a background tune. I bought the sound effects online, you can find really cheap sounds and I got 175 sound clips from The Game Creators. I found most of the sound effects that I needed in this collection but had to Google some royalty-free sound effects to get a few a sounds I wanted for special occasions in the game. Overall I would say that most media you’ll need can be found online for a somewhat cheap price. But if you want that little extra you want your own artist and musician.

Wrapping It Up

Asterope is done and for sale in the iTunes Appstore. Don’t interpret this the wrong way, but it’s amazing to see your “baby” for sale! I think we owe ourselves to study self-help, there are many gurus out there who have done what you want to do and they teach how they’ve done it. Listen to them if you want to succeed with something. Some independent developers might be more of the engine coders type than me, but if you’re like me and want to get your game done and out there, focus on getting things done rather than getting things perfect. I also recommend you keep positive people around you and that you don’t listen too much to others opinions if they mock your game creation attempt. Napoleon Hill says that “Opinions are the cheapest commodities on earth!” and I try to live by this, it’s easy to get too modest and go with the flow of what those around you say. Another rule of thumb that Napoleon Hill introduced me to is to make decisions fast and change them slowly.

I hope you enjoyed the read! I wanted to give back to this community after all the help it has given me. If there’s anything I left unsaid please feel free to contact me at nixarn at gmail dot com. (Source: gamedev.net)

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: 《Asterope》开发始末

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。