游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

开发者阐述《Wizard’s Castle HD》开发经历

发布时间:2011-10-25 15:16:02 Tags:,,,,

作者:Randy Herring

自我介绍

Asgard Studios是个位于乔治亚州亚特兰大的父子团队。我是团队的程序员和业务总监。我也有个全职工作,因而我只能利用晚上和周末的时间来开发游戏。我儿子Raymond是游戏设计师和3D艺术师。我有30年的软件开发经验,而Raymond有7年的数码美术经验。

起步

我在少年时就对艺术、撰文和历史相当感兴趣。当工薪族的父母并不看好我的这些兴趣,他们甚至警告称我无法靠自己的这些梦想来维持生计。他们让我在大学中选择医学保健专业。在学习期间,我发现了一种施展创造力的新途径:编程。正因为这个新兴趣,我在学校中选修了第二门专业——计算机科学。

大学期间在主机计算机上玩《Colossal Cave Adventure》时,我开始对电脑游戏产生兴趣。在80年代初,我和同事开始尝试制作基于文字的电脑游戏,面向家庭电脑这个新兴市场。但是我的合作伙伴中途退出,而且出于维持生计的需要,我也放弃了制作电脑游戏的梦想。

20年转瞬即逝,我年轻的儿子也对数码美术和电脑游戏设计表现出兴趣。

这究竟是遗传还是后天教育的结果呢?这是个不错的问题。我妻子在年轻的时候也对艺术很感兴趣,尽管她的父母也反对她从事这个行业。我们并没有主动引导儿子朝这个方向发展。当然,他从两岁就开始玩电脑,我们也会带他去参观艺术博物馆。我和他一起玩电子游戏。因而,或许是天性和培养这两个双重因素触发他对艺术和游戏产生兴趣。

现在7年过去了,我和他配合于晚上和周末制作游戏。他负责3D艺术和游戏设计,我负责编程。

《Wizard’s Castle HD》的制作

大约3年前,我们发现了Unity 3D并意识到它能够帮助我们实现制作电脑游戏的梦想。我们获得了独立开发授权,开始学习如何使用。也正是在那时,Raymond开始从事3D模型构建。

1年之前,我们觉得已经学到了足够的东西,可以开始构建游戏。《Wizard’s Castle HD》是款有10个关卡的配对和移除游戏,在Unity 3D中使用C#脚本来构建。Raymond设计所有的游戏玩法和关卡,我负责游戏所有的编程,居住在本地的漫画家Jeff Bucchino制作游戏中的2D美术。我们在晚上和周末的业余时间制作游戏。在游戏开发的最后阶段,我还动用了假期的时间。总的来说,从我们项目的开始到我们将游戏提交给App Store当天,我们花了将近1年的时间。除了Unity,我们还使用了许多Unity插件,包括EZ GUI、Message Manager、iTween和Prime 31的Game Center Plugin。

Wizards Castle HD(from indiegamenews.com)

Wizards Castle HD(from indiegamenews.com)

游戏介绍

在《Wizard’s Castle HD》中,玩家进入某个城堡,发现巫师施展了咒语,各种颜色的魔法球如雨般从屋顶上落下。游戏的目标是,在3分钟的时间内阻止球塞满房间。玩家通过点击两个或更多同种颜色的球来配对和消除。游戏刚开始的关卡还不难应付,但是随后会迅速对玩家的手眼协调能力和策略双方面发起富有难度的挑战。完成关卡可以解锁下个关卡,《Wizard’s Castle HD》共含有10个关卡,还有Game Center排行榜和成就。针对iPhone 4的《Wizard’s Castle》的游戏玩法与之类似,但是只有8个关卡。

除了定位相同颜色的静止及移动球,以及防止房间被球完全充满之外,某些关卡中顶部还会掉落魔法宝石。这些宝石有着特殊的功能,比如火焰宝石会爆炸并摧毁附近的球,带有无穷大符号的宝石会放慢时间。

《Wizard’s Castle HD》具有很高的再玩性,游戏中色彩斑斓的魔法球的掉落并不相同。根据玩家所获得的分数,每个关卡可以获得最多3星的评分,玩家可以重玩任何关卡来获得最高评级。当前得分、最高分、关卡和剩余时间都会呈现在屏幕顶端。

正确的做法

1、Unity

使用Unity 3D作为游戏引擎和开发工作确实是个很不错的决定。如果没有Unity,我们可能根本无法开发出《Wizard’s Castle HD》,因为我们只有1个程序员。对于这个令人惊叹的工具,再怎么褒奖也不为过。Unity不仅是个全功能游戏引擎,而且用来修正内容也很容易。在许多情况下,Raymond使用编辑器的拖拉和放置界面来添加和修改游戏中的功能。Unity还使得在游戏中添加美术效果变得很容易,只需要将它们拖进项目中即可。

EZ GUI这款编辑插件使你可以更容易创建动画UI元素。使用EZ GUI,我们可以快速地创作游戏中的控制板和按键。每个关卡中都有个控制板,使用内置动画来滑到既定的位置。EZ GUI使用了精灵地图集,这使得Unity可以将UI元素的动画调用打包。

Message Manager是基于EZ GUI构建而成的,提供了快速向玩家呈现简单信息的方法。当用户能力提升时,我们使用它来呈现信息。

iTween是用于Unity的动画插件,有着丰富的动画效果。我们使用它来将球移进移出。

为整合苹果的Game Center,我们使用Prime 31的Game Center Plugin。这个插件的安装非常简单。插件提供了范例代码,使我可以利用1个早上的时间把Game Center整合到游戏中。

2、专业的2D美工

很早的时候我们就意识到,要制作出专业的游戏,就需要专业的美工。我们在Atlanta Game Developer见面会上碰到了我们的动画师Jeff。Jeff是个很有天赋的艺术家,因为他希望获得在游戏开发团队中工作的经验,所以他自愿负责我们的2D美术设计,报酬是部分的游戏收入。Jeff以Illustrator文件的形式提供美术内容,而Raymond用Photoshop来编辑这些未加工过的内容,创造出与游戏相符的纹理。

3、快速迭代

多亏了Unity,我们可以在体验游戏的过程中迅速制作上百次的迭代开发。我选择Unity作为开发工作的原因之一,就是可以在对游戏做出改变之后立即在编辑器中玩游戏,看看改变的效果如何。Unity甚至允许你在游戏于编辑器中运行时做出改变。这为我们节省了大量的时间。

4、父子团队

对我来说,与自己22岁的儿子合作开发游戏很有好处。当然,在这种情形下,将他视为合作者而不是自己的孩子是最为困难的部分。但是对我来说,在我们不断实现创造电脑游戏这个梦想的过程中将我的软件开发经验传授给自己的儿子,这种感觉确实很好。我觉得,制作《Wizard’s Castle HD》是我们在一起的最快乐的时候。游戏制作是个艰苦的工作而且时间紧迫,但是总体上说我们都很享受合作的这个过程。

5、经常进行用户测试

使用Unity我们可以很简单地创造出Windows、Mac和Web版本游戏,这使得我们可以经常将测试版本发送给好友。他们的反馈很有价值。游戏中的许多功能就来自于测试者的建议。我们还多次将游戏带到开发者见面会上。见面会上的所有人都能够提供帮助。无论我们何时将测试游戏带到见面会上,他们都会体验并提供很有价值的反馈。许多参加见面会的开发者有着许多年的游戏开发经验,因而他们的反馈是无价的。

Wizard's Castle HD(from gamecareerguide)

Wizard's Castle HD(from gamecareerguide)

错误的做法

1、Unity 3测试版

在游戏开发早期,我们决定升级到Unity 3的测试版本。在游戏开发过程中,遇到的首个问题是EZ GUI和Unity 3测试版的兼容问题。这拖延了我们的开发进度,但是EZ GUI开发者Brady给我们提供了大量的支持,最后他给我们一个可以同Unity 3测试版兼容的EZ GUI。回想起这段经历,我本应该在向开发循环中引进测试产品之前对其做更深的了解,但是我迫不及待地去尝试使用Unity 3。

2、更新Unity却没有更新EZ GUI

我们遇到的另一个问题是,我们总是将Unity升级到最新版本,但是EZ GUI的升级却没有跟上。这导致了多次开发延迟,我需要自行修改EZ GUI代码来解决某些编译错误。你添加到游戏中的每个第三方产品都会创造出额外的附属,而且必须小心翼翼地管理这些附属内容。在保持EZ GUI更新这个方面上,我的做法仍有不足之处。

3、硬件支持

我们犯下的最大的错误是,原本计划《Wizard’s Castle HD》运行于首款iPad,但是A4处理器的iPad无法运行我们的游戏。所有的3D物体根据物理引擎下落和做出反应,但是设备无法负荷游戏。一开始,即便在iPhone 4上,游戏的运行也并不流畅。当我们发现这一点时,项目已经进展到一定程度。但是我们继续进行开发,因为我们希望下一代iPad能够解决这个问题,事实证明我们的想法是正确的。Unity 3随后版本的图像表现改善和对某些代码做出的改变,也使我们最终获得了可以在iPhone 4上运行的游戏版本。

4、尝试发布网页版本

当我们发现首款iPad无法运行游戏时,我们决定在等待iPad 2期间尝试在网络上发布游戏。但是,这次发布并不成功。我们发现web版本的游戏很难吸引外界的关注。比如,很少有站点对游戏发表评论。

5、Unity和iOS 4.3漏洞

尽管游戏在我们的开发设备上运转良好,但当我们将游戏的iPad 2版本提交给苹果时,游戏因为Unity和iOS 4.3间的兼容问题导致游戏在苹果设备上无法打开而被拒绝。这个漏洞影响了所有使用Unity开发的游戏。在1个月的时间内,我们收到了Unity的补丁并将游戏重新提交,游戏终于在2011年5月20日现身iTunes。

结语

以iPad 2为平台的《Wizard’s Castle HD》是我们一整年辛勤工作和学习的结晶。对我来说,最终实现自己制作电子游戏的梦想,感觉确实很不错,而且这个梦想还是同自己的儿子合作实现的。

相关数据:

开发商:Asgard Studios

合作者:Jeff Bucchino

运行平台:iOS(iPad 2和iPhone 4)

发布日期:iPad 2——2011年5月20日;iPhone 4——2011年6月15日

开发时间:1年,兼职

开发者数量:1名程序员,1名设计师/3D艺术师,1名2D艺术师,2名测试自愿者

开发工具:Unity 3、EZ GUI、iTween、Message Manager、Prime 31 Game Center plugin

C#代码行数:5600

游戏邦注:本文发稿于2011年10月18日,所涉时间、事件和数据均以此为准。(本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦

The Making of Wizard’s Castle HD for iPad 2

Randy Herring

About Us

Asgard Studios is a father and son team based in Atlanta, GA. I am the team’s programmer and business manager. Also, I have a full-time day job, so game development is a nights and weekends activity for me. Raymond is the game designer and 3D artist. I have 30 years of software development experience, and my son Raymond has 7 years of digital art experience.

How Did We Get Started?

When I was a teenager, I was interested in art, writing, and history. My working class parents did not have a very high opinion of these interests, and they warned me that I could not make a good living from pursuing such dreams. They pushed me to a healthcare major in college. During my studies I found a new outlet for my creativity: programming. Based on my newfound interest, I pursued a second degree in Computer Science.

I became interested in computer games in college while playing Colossal Cave Adventure on a mainframe computer. In the early 80s, a co-worker and I started a venture to make text-based computer games in BASIC for the new market in home computers. But my partner drifted away and life interrupted my dreams of creating computer games.

Fast forward about 20 years and my teenage son expressed an interest in digital art and computer game design.

Was it nature or nurture? Good question. My wife was also interested in art when she was young, though her parents discouraged her as well. We had not actively guided my son in this direction. Of course, he had a keyboard in his hand from age two and we took him to art museums. He and I played video games together. So maybe it was nature and nurture that led him to his interests in art and games.

Now seven years later he and I are working together to make games on nights and weekends. He is doing the 3D art and game design and I am doing the programming.

Building Wizard’s Castle HD

About three years ago, we discovered Unity 3D and realized that it would allow us to fulfill our dreams of creating computer games. We purchased the indie license and began learning how to use it. Around the same time, Raymond began 3D modeling first in Carrara then in Modo and Zbrush.

So finally a year ago, we decided we had learned enough to start building a game. Wizard’s Castle HD is a ten level match and remove game. It was created in Unity 3D using C# scripts. Raymond designed all of the gameplay and the levels. I did all of the programming. Jeff Bucchino, a local cartoonist, did the 2D art work. We worked on the game part-time on nights and weekends. I also used several vacation days during the final crunch. In all, it took us almost one year to the day from the time we began work on the project until the day we submitted the game to the App Store. In addition to Unity, we made use of several Unity plugins including EZ GUI, Message Manager, iTween and Prime 31′s Game Center Plugin.

The Game

In Wizard’s Castle HD, the player enters a castle to find that its friendly Wizard has cast a spell and colored, magic balls are raining down from the ceiling. The goal of the game is to prevent the room from filling up with balls during each three minute round. Players match and remove balls by touching groups of two or more balls of the same color. While manageable at the lowest levels, the game quickly presents a difficult challenge to both hand-eye coordination and finding a winning strategy. Completing one level unlocks the next, and Wizard’s Castle HD features 10 levels of play as well as Game Center leaderboards and achievements. Wizard’s Castle for iPhone 4 has similar gameplay but only has 8 levels.

In addition to locating groups of still and moving balls of the same color and preventing the room from becoming completely filled, in some levels magic gems also drop from the ceiling. These gems have special properties; for example, the flame gem explodes to destroy nearby balls, and the gem with the infinity symbol slows down time.

Wizard’s Castle HD is highly re-playable because the colored magic balls always fall differently. Players may earn up to three stars for each level depending on their score, and may replay any level to reach the maximum rating. Current Score, High Score, Level, and Time Remaining are continuously displayed at the top of the screen.

What Went Right

1. Unity

Using Unity 3D as our game engine and development tool was a great decision. Without Unity, we would not have been able to develop Wizard’s Castle HD. With only one programmer, it just would not have been possible. I cannot say enough about this amazing tool. Besides being a full-featured game engine, Unity has a very easy to use editor. In many cases, Raymond was able to add and modify features in our game using the editor’s drag and drop interface. Unity also made it easy to bring in art assets by simply dragging them into the project.

EZ GUI is an editor plugin that allows you to easily create animated UI elements. Using EZ GUI we were able to quickly create our panels and buttons. Each level has a panel that uses built in animations to slide into place. EZ GUI makes use of sprite atlases to allow Unity to batch the draw calls for the UI elements.

Message Manager is built on top of EZ GUI and provides a quick way to display simple messages to the player. We used it to display a message when the user activities a power-up.

iTween is an animation plugin for Unity with a rich set of animations. We used it to move the walls in and out when a power-up is activated.

In order to integrate with Apple’s Game Center, we made use of Prime 31′s Game Center Plugin. The plugin was extremely easy to setup. Sample code was provided that allowed me to add the Game Center integration to the game in one morning.

2. Professional 2D Artist

Early on we realized that to make a professional game we needed professional artwork. We met Jeff, our cartoonist, at the Atlanta Game Developer’s meetup. Jeff is a very talented artist and since he wanted experience working on a game development team, he volunteered to do our 2D art in return for a share of the game’s income. Jeff provided the art in Illustrator files. Raymond took the raw artwork into Photoshop in order to create the in-game textures.

3. Rapid Iterations

Thanks to Unity, we were able to make hundreds of rapid development iterations through our gameplay. One of the reasons I chose Unity as our development tool was because of its ability to make a change to the game and then immediately play the game in the editor and see the effect of the change. Unity even allows you to make changes while the game is playing in the editor. This was a huge time saver.

4. Father And Son Team

For me, it was extremely rewarding to build a game with my 22-year-old son. Of course, remembering to treat him as a partner and not my child was the most difficult part of that experience. But for me, to pass on my software development experience to my son while we worked on our dream of creating computer games was a blast. I think making Wizard’s Castle HD was the most fun we have ever had together. It was very hard work and there were many stressful times, but overall we really enjoyed working together.

5. User Testing Often

The ability to easily create Windows, Mac and Web builds in Unity allowed us to send test builds to friends often. Their feedback was extremely valuable. Several features in the game came from suggestions by our testers. We also brought the game to the developers meet up multiple times. All of the folks at the meet up were helpful. Whenever we brought a build to the meet up they would play it and provide wonderful feedback. Several of the developers who attend the meetings have many years of game development experience, so their feedback was invaluable.

What Went Wrong

1. Beta Testing Unity 3

We decided early in the process to upgrade to the beta version of Unity 3. One of the first problems we ran into during the game’s development was an issue with EZ GUI and the Unity 3 beta. That slowed us down for a while but Brady, the EZ GUI developer, gave us lots of support and he was finally able to give us a build of EZ GUI that worked with Unity 3 beta. In retrospect, I should have known better than to introduce a beta product into our development cycle, but I just could not wait to get my hands on Unity 3.

2. Updating Unity Without Updating EZ GUI

Another set of issues we ran into was because we always updated Unity to the latest release, but not EZ GUI. This caused a couple of delays and required me to work around some compiler errors by modifying the EZ GUI code myself. Every third party product you add to your game creates an additional dependency, and those dependencies have to be managed carefully. I failed to follow good practices and keep EZ GUI up to date.

3. Hardware Support

The biggest thing that went wrong was that Wizard’s Castle HD was planned for the first iPad, but the A4 iPad would not run our game. With all of the 3D objects falling and reacting to physics, the device could not handle the load. At first, even on the iPhone 4, which had twice the RAM as the first iPad, the game was too sluggish. We were well into the project when we discovered this. But we continued our development since we hoped that the next generation of the iPad would solve the problem, which it did. Graphic performance improvements in later versions of Unity 3 and some coding changes eventually allowed us to get an iPhone 4 version of the game to work.

4. Trying a web release

When we found that the original iPad would not run our game we decided to try a web release while we waited for the iPad 2. That release, however, failed to generate any interest. We found out that it is very hard to attract attention to web games. For one thing, very few sites review them.

5. Unity and iOS 4.3 Bug

When we submitted the iPad 2 version of our game to Apple, it was rejected due to an issue between Unity and iOS 4.3 that caused the game to crash on launch at Apple, even though it worked fine on our development devices. The bug affected all Unity games submitted using iOS 4.3. Within a month, we received a fix from Unity and resubmitted the game and it went live in iTunes on May 20, 2011.

Conclusion

Wizard’s Castle HD for the iPad 2 is the result of a year of hard work and learning. For me it was extremely rewarding to finally realize my dream of creating a video game. To realize that dream while working side by side with my son has been a blast.

Game Data

Developer: Asgard Studios

Partner: Jeff Bucchino

Platform: iOS (iPad 2 and iPhone 4)

Release Date: May 20, 2011 – iPad 2; June 15, 2011 – iPhone 4

Development time: 1 year, part-time

Number of developers: 1 programmer, 1 designer/3D artist, 1 2D artist, 2 volunteer testers

Technology: Unity 3, EZ GUI, iTween, Message Manager, Prime 31 Game Center plugin

Lines of C# code: 5,600 (Source: Game Career Guide)


上一篇:

下一篇: