我和父母都是台湾游戏开发者。我们团队有4个成员，我是唯一的程序员。最近我们于App Store推出首款iPhone游戏《Bonnie’s Brunch》。这是款模拟/策略回合游戏，其特色是融入各种食物组合和有趣角色。
说到编程，我是Lua语言的倡导者。《Bonnie’s Brunch》是我的第二款商业Lua语言作品。我在这款游戏中采用3种编程语言写编码，比例分别是60% Lua、30% C++和10% Obj-C。虽然渲染和资源管理内容使用的是C++，但所有机制编码都采用Lua。
就像Noel Llopis说的那样，“好事多磨”。我们团队所有成员都赞同投入更多时间完善《Bonnie’s Brunch》，将作品由普通变成优秀，甚至是杰出。结果我们投入双倍时间和预算，旨在制作高质量内容。
由于我们在台湾App Store取得杰出成就，一家当地报纸，两家电视新闻媒体和若干网站采访了我们，它们都刊登诸如“发行3天，《Bonnie’s Brunch》打败《愤怒的小鸟》，蹿升第一”之类的标题。算是种称赞，是吧？
我将所有优惠券发送给App评价网站，希望他们会有兴趣分析《Bonnie’s Brunch》。但大多数邮件最后都了无音讯。 AppAdvice是唯一给我们机会的网站。
Postmortem: Bonnie’s Brunch on iPhone
by Lucifer Jheng
My partners and I are independent game developers from Taiwan. Our team has 4 core members and I am the sole programmer. Recently we released our first iPhone game, Bonnie’s Brunch, on App Store. Bonnie’s Brunch is a simulation/strategy dash-making game featuring various food combination and interesting characters.
If you’d like to investigate Bonnie’s Brunch further, we recommend you to read the article from Aftertot and the review from AppAdvice.
It has been 2 months since Bonnie’s Brunch’s published, and now I would like to share some experiences and thoughts we’ve got so far in the form of postmortem.
What Went Right
1. Cheerful Visual Design
In my previous experiences in game industry, I found that lots people, especially engineers, may regard artists as an ‘substitutable resource’ which can be easily outsourced or subcontracted. However, I firmly believe that great artists are no less valuable than any engineer or designer.
During the development process, we spent a great deal of time on visual design to make sure our game has great quality to catch everyone’s eyes at first sight. Our goal is to make a stylish art which appeals not only to Taiwan players, but also to players all over the world.
Since Bonnie’s Brunch has 10 different types of game characters, we decided to put extra effort on the character design. Take one of the characters, the beggar, for example. His appearance in game causes an obvious negative impact (other customers will easily get annoyed by his stinky smell, and become much more impatience to wait for their order served). Further more, after fulfilling his order, he gives you neither extra tips nor bonus scores. To make him attractive and pleasing to players, we underwent several revision to make him actually look adorable.
It has been proven that our effort on art truly gained admiration from our players. Many people think Bonnie’s Brunch is a high quality game developed by western developers, and we consider it is a positive symptom of popularizing our game.
2. Component-based Architecture in Lua
As for the programming, I am a Lua advocator. Bonnie’s Brunch is my second commercial game written mainly in Lua. In this game, I wrote the code in 3 different programming languages that the ratio of each one is 60% Lua, 30% C++, and 10% Obj-C. While C++ is used for rendering and resource handling tasks, all gameplay code is written in Lua.
Several years ago, I read some articles about component-based architecture and consciously recognize that component-based is a better architecture than inheritance-based so I start to build a component-based architecture in C#. However, not until I start using Lua do I leverage the true power of the component-based architecture.
Implementing a component-based architecture in Lua granted me a great deal of flexibility. I have implemented several game components, such as Transform, Sprite, Motion, State Machine, Interpolator, etc.
Every game object comprises one or more game components and every game component is reusable on its first day. When I need extra functionality I only have to create a new component instead of a child-child-child class inherited from one of the ancient parent classes. Neat and clean.
Once the architecture and game components are implemented, I can rapidly do gameplay mockups in just a few hours. In the early months of Bonnie’s Brunch’s development, there were only static raw images and a lot of ‘color blocks’ which represented game objects. Although the game didn’t look pretty at its beginning, the component-based architecture did help us to focus on core gameplay design.
3. Extra Polish Time
Our development plan was originally scheduled to be finished within 3 months. Ultimately, we devoted 6 months to complete the game. At the end of the third month, we had almost finished all the in-game functionalities. However, there’s still a long way to go. We must decide whether to release the game hastily or to bite the bullet and put much more effort into the game to make it shine.
As Noel Llopis said, ‘good things take time’. All our teammates agreed that we need more time to polish Bonnie’s Brunch from a mediocre game to a good, even a great game. As a result, we doubled our development schedule and budget to produce a high quality game.
A perfect example of what I mentioned above is that, during some play-testing session, we discovered that some players inevitably got tired of the repetitive gameplay after finishing a dozen of the game levels. So we decided to create some sort of special level derived from the original gameplay to keep players interested.
To up-beat the gameplay in this special level, we make all customers line up to make their orders. Players have to move their fingers as quickily as possible to see how many customers they can serve in the limited amount of time. Furthermore, we arrange dramatically intense background music in these special levels to stimulate players’ emotion.
In every 5 level of progress, players will encounter a special level which plays a role of ‘boss stage’ in action games that challenges players’ skill. It turns out that a lot of players truly love the special levels.
4. Strong Local Launch
After Bonnie’s Brunch launched, we immediately informed all our friends via Facebook, Twitter, Plurk and mails. Our family and friends gave us enormous support and were being very helpful to recommend and advertise our game, which resulted in a strong foundation in Taiwan local marketing.
At first, we watched our game show up with the ranking #30 in Taiwan’s Top Paid iPhone Games, and then started climbing like crazy. Luckily enough, on the third day after the release, we brought down Angry Birds and ranked Top 1 Paid iPhone Games in Taiwan! The achievement in Taiwan also boosted our sales in Hong Kong, Indonesia, Malaysia, Singapore and Thailand.
Because our outstanding performance in Taiwan App Store, we’re interviewed by one local newspaper, two local TV News and several websites — with a title such as: “In just 3 days, Bonnie’s Brunch has defeated Angry Birds and ranked Top 1.” Quite a compliment, isn’t it?
Many people were amazed at what we’ve achieved and wondering how we did it. In fact, we did nothing particular in the aspect of marketing and promotion. The lesson we learned is to let the game talk itself and make people want to share it.
What Went Wrong
1. Clumsy Food-Making Machines UI
The biggest complaint we received from players is about the operations of the food-making machines/devices.
In addition to the one-tap-ready foods such as bagel and drinks, there are 3 other kinds of food machines (waffle, toast and pan) that will take a few seconds before the food to be well-baked and dragged to the waiting customer. We all know that baking a waffle requires some time to complete, right?
In Bonnie’s Brunch, to bake a waffle, you have to tap the waffle machine and then it pops up an UI. In the UI, you need to tap to choose which kind of waffle you’d make. Then you can tap outside the UI to close it. A few seconds later, when the waffle is ready, you have to tap the machine again to open the UI, and select the baked one, and then the UI closes itself automatically.
To design these time-consuming machines, we tried really hard to balance the gameplay between ‘variety’ and ‘intuition’ aspects. In order to provide a wide variety of food combination (circular & square waffles, etc), we made a difficult decision to use a popup UI for machine operations.
Being game developers, we recognized that we should have done our best to make the operation simpler than what it is now. To achieve the variety, we had sacrificed the accessibility. I thought it was kind of a tradeoff, but it is apparently not. Accessibility is always the first priority.
2. Lack of Long Term Goals
In the design phase, we barely pondered any meta-game mechanics and retention strategies.
The money players earned in each level plays only one role as being the score. Many players request that they wish to spend the money to buy some upgraded items to make food machines operate faster or to have one extra plate.
Because we didn’t take players’ long-term goals into consideration beforehand, it is difficult to add these features later. People may love playing Bonnie’s Brunch very much, but the life cycle of it won’t last long because the replayability is low.
We planned to start small and play safe. In retrospect, this might not be a good decision we had made.
3. Steep Difficulty Curve
The game is easy as a piece of cake in the first 10 levels. We had investigated that even a 7-years-old little girl can complete each of the first 10 levels in 3 stars. However, when they go to episode 2 (level 11 to 20), the difficulty suddenly rises after the toast machine is added. What worse is that, in episode 3 and 4, the arrivals of some special customers such as food critics and beggars acutely and sharply increase the difficulty of the game.
Some players indicated that they felt frustrated when they tried hard to fulfill customers’ orders but only can get 1 star in later levels. Although players can still proceed to next level as long as they achieved 1 star in the preceding level, some players are depressed and consider the game ‘too hard to play with’.
Despite being categorized in simulation/strategy game, Bonnie’s Brunch requires players’ quick reaction and high attention in the game sessions. We found that there’re a handful of players who do not enjoy this genre of games much. They don’t want to screw up things and make themselves look awkward.
If your game requires multitasking reflex from players, you should really think twice whether your target audience will love it or not.
4. Unclear Marketing Direction
We are a tiny team from Taiwan , which is usually mistaken by Westerns as Thailand (No, Taiwan is not Thailand). Being a independent developer, it is a shame to be unfamiliar and lacking contacts with the U.S. and Europe markets.
As many developers know, we are all fighting a visibility war in App Store. If we fail to make the presence known to the world, then we’re going to fall in silence.
We sent all of our promotional codes to App review sites in the hope that they might have interest in looking into Bonnie’s Brunch. However, most of these e-mails ended up with no reply at all. AppAdvice is the only website which gave us an opportunity and we much appreciate their kindness.
In order to further experiment whether advertisements can make any difference or not, we bought 2 Ad banners in TouchArcade’s main site and forums. As far as it goes, the effect is very limited. Each day it generates less than 50 clicks to our iTunes link and the click through rate is even less than 0.1%.
We are wondering if our target audience (female mainly) is different from the target readers of TouchArcade, who frequently visit professional game review websites. Does the art style of Bonnie’s Brunch hardly match western players’ taste? Or maybe it can easily be taken as another ‘me-too’ dash-making game? These are the critical questions we’re desperately trying to figure out.
Since the latest update of Bonnie’s Brunch (iTunes Link) has been released and it is on 50% off sale now, we would like to invite you to give it a try and tell us what you think about Bonnie’s Brunch. Any suggestions and comments are welcomed.
This is our story so far, and we’ll be sure to keep you posted. Thank you for your reading!（Source：gamasutra）