事後諸葛:《Bonnie’s Brunch》的對與錯

各位好,我和我的伙伴(樂風創意視覺)是來自台灣的獨立遊戲開發者。我們的團隊有四位核心成員,我是其中唯一的程式設計者。最近我們在蘋果的 App Store 上釋出了我們開發的第一款遊戲《Bonnie’s Brunch》,是一款屬於模擬與策略類型的食物製作遊戲。

自《Bonnie’s Brunch》上市以來,已經過兩個月左右,現在我想要以「事後分析」文章的形式,分享一些我們目前獲得的經驗及想法,期望對有志於進行遊戲開發的人有些許助益。

若您未玩過或不熟悉《Bonnie’s Brunch》的話,建議先看看這篇簡短的介紹文章,會比較易於理解後續的遊戲開發分析內文。

(本文首發於 Inside

我們做對的事

1. 令人愉快的視覺設計

在我先前的遊戲業界經驗裡,我發現許多人,特別是工程師,會將美術設計師視為一種「可取代的資源」,可以輕易地外包出去,或是以合約方式進行工作。但我堅信任何一位能力出色的美術設計師,其貢獻價值絕對不會少於傑出的工程師或設計師。

在開發過程中,我們在視覺設計上花費了大把的功夫,以確認我們的遊戲擁有非常棒的美術品質,讓每個人看到遊戲畫面時,都會覺得眼睛一亮。我們的目標是製作出具有獨特風格的美術視覺,不僅能吸引台灣的玩家,也同樣能夠吸引世界各地的玩家。

由於在《Bonnie’s Brunch》中有 10 種不同類型的客人,我們決定花費更多的精力在角色設計上。以其中的一名角色「流浪漢」為例,他的出現會導致明顯的負面效應;不僅其他客人會被他的壞味道影響而減少等候餐點的耐心值,而且在給予他餐點之後,他也不會給玩家額外的小費。為了讓這個角色吸引玩家的目光且討喜,我們經歷了數次的修改與調整,才讓他看起來惹人憐愛。

結果證明,我們在美術視覺上的努力確實獲得了玩家們的讚賞。許多玩家以為《Bonnie’s Brunch》是一款來自國外遊戲開發者製作的高品質遊戲,我們認為這點對於遊戲的推廣來說,應該是一個很不錯的正向徵兆。

2. 使用 Lua 撰寫的組件式架構

談到程式設計,我完全是個 Lua 語言的愛好者。《Bonnie’s Brunch》是我以 Lua 程式碼為主撰寫的第二款商業遊戲。在這款遊戲中,我使用了三種程式語言,調合比例分別是 60% 的 Lua、30% 的 C++,以及 10% 的 Objective-C 語言。C++ 主要用來處理圖像繪製與資源管理的任務,而所有的遊戲邏輯程式碼皆為 Lua 所寫。

幾年以前,在我讀完幾篇關於「組件式架構」的文章後,我清楚地意識到這是一個比「繼承架構」更好的程式設計架構,於是我就開始使用 C# 語言撰寫此架構。然而,直到我開始使用 Lua 時,才真正地發揮了組件式架構的優點。

使用 Lua 實做組件式計架構,給予了我相當大幅度的程式設計彈性,目前我已實做出數個常用的遊戲組件,例如:Transform、Sprite、Motion、State Machine 等等。

每一個遊戲物件均由一到多個遊戲組件所構成,且每一個遊戲組件打從一出生就得以被重複使用。當我需要額外的遊戲功能時,我只需要創建出一個新的遊戲組件,而非產生一個繼承自上古時代父類別的子孫類別。乾淨,俐落。

一旦組件式架構完成後,我可以在幾小時內迅速地做出各種遊戲玩法的雛形。在《Bonnie’s Brunch》的早期開發中,我們只有一些靜態的草圖以及許多的顏色色塊用來代表遊戲中的各種物件。儘管此時遊戲的外觀看起來其貌不揚,但「組件式架構」確實幫助我們一開始就集中火力在核心的遊戲性設計層面上。

3. 額外的磨亮時間

我們的開發時程原先預期會在三個月之內結束,最終我們投入了整整六個月的時間完成它。在第三個月結束時,我們幾乎已完成了所有的遊戲功能,但大家都清楚還有很長的路要走。我們必須決定是否要急促地釋出遊戲,或是咬緊牙關、拉緊腰帶投入更多時間精力,讓遊戲發出光芒。

像 Noel Llopis 說過的:「好東西需要時間醞釀。」我們的團隊成員都同意我們需要更多的時間來磨光擦亮《Bonnie’s Brunch》,使它從一款平庸的遊戲,搖身一變成為一款好遊戲,甚至是一款優秀的遊戲。最終為了產出高品質的遊戲作品,我們加倍了開發時間以及開發預算。

舉個例子來說,在某些遊戲測試的過程中,我們發現有些玩家在完成十幾個關卡後,無可避免地會對近乎相同的遊戲玩法感到疲乏。因此,我們決定從原有的遊戲玩法中,衍生出某種特殊的關卡類型,以讓玩家們保持對遊戲的興趣。

為了提升這些特殊關卡的節奏,我們讓所有的客人一一排隊按照順序點餐。玩家們必須盡可能迅速地移動手指完成餐點,看他們能夠在有限的時間內服務多少位客人。此外,我們也在這些關卡中安排了十分緊湊的背景音樂,藉以進一步刺激玩家們的遊戲情緒。

4. 強力的台灣首發成績

在《Bonnie’s Brunch》正式上市後,我們立即藉由 Facebook、Twitter、Plurk 與電子郵件通知我們所有的親朋好友。我們的家人與朋友給予了我們巨大的支持,不僅馬上購買遊戲,也主動將遊戲推薦給其他朋友,幫助我們在台灣的遊戲 App 市場中建立了一個強而有力的基礎。

一開始,我們的遊戲空降在 iPhone 付費遊戲排行榜第 30 名的位置,然後我們開始看著它瘋狂地向上攀升。非常幸運地,在上市後的第三天,我們擊敗了《Angry Birds》,並榮登台灣 iPhone 付費遊戲排行榜的第一名寶座!在台灣的成績表現,也大幅提升了我們在香港、印尼、泰國、馬來西亞以及新加坡等地的排名。

由於《Bonnie’s Brunch》的出色成績,我們在短期內接受了一家報紙、兩家電視新聞,以及數家遊戲網站的採訪,報導的標題就像是:「短短三天之內,《邦妮的早午餐》擊敗了《憤怒鳥》登上第一名!」真是不得了的恭維與讚美哩。

許多人對於我們遊戲的首發佳績感到十分驚訝,也很好奇我們是如何做到的。事實上,我們在市場行銷層面上,並沒有做出什麼特立獨行的舉動。在此我們學到的一課,是「讓遊戲自己說話」,並使人們打從心裡願意分享它。

我們做錯的事

1. 笨拙的食物機器介面

我們從玩家們的回饋意見中,所得到關於遊戲的最大抱怨,就是關於製作食物機器的操作使用。

遊戲裡除了點擊後即刻完成的餐點,像是貝果與飲料之外,另有三大種類的食物製作機器:鬆餅、吐司與煎鍋機器;在這些食物準備妥當並可將食物遞送給客人之前,需要花費幾秒鐘的時間等待。畢竟我們都清楚烘烤鬆餅需要時間,不是嗎?

在《Bonnie’s Brunch》中,要烤個鬆餅,你必須先點擊「鬆餅機」,然後它會跳出一個介面,你必須在這個介面中選擇你所想要製作的鬆餅類型。接著你可以點擊介面之外的區域以關閉它,先去做其他事情。幾秒鐘後,當鬆餅烤好了,你必須再點擊一次鬆餅機打開它的介面,然後選擇剛烤好的鬆餅,選擇後它就會自動關閉鬆餅機器的介面。

在設計這些需耗費時間的食物機器時,我們非常努力地試圖平衡遊戲設計的「多樣性」與「直覺性」。為了提供寬廣多樣的食物材料組合(圓形鬆餅、方形鬆餅等等),我們做了個困難的決定,就是使用彈出式的介面做為這些食物機器的操作方式。

身為遊戲開發者,我們瞭解我們應當不惜一切代價,使機器的操作方式比現在的作法更簡單直覺。為了達到多樣性,我們犧牲了易用性 (Accessibility)。我原先認為這是一種不得不這樣做的取捨,但它顯然並非如此。易用性,永遠該放在我們的第一優先順序上。

2. 缺乏長期的遊戲目標

在遊戲設計階段中,我們幾乎沒有考慮過任何「超遊戲」(Meta-Game) 的設計機制,以及使玩家願意一玩再玩的策略。

玩家們在關卡中所獲得的金錢,只扮演著「分數」的單一角色而已。許多玩家希望他們能夠花費這些金錢去購買一些升級道具,讓食物機器運作得更快,或擁有一個額外的餐盤空間。

因為我們沒有預先將玩家們的長期遊戲目標納入設計的規劃中,事後要再增加這些功能就顯得困難重重。玩家們或許非常喜愛《Bonnie’s Brunch》,但它的生命週期可能無法長久持續,因為遊戲本身的可重複遊玩性很低。

在遊戲團隊的整體發展計畫中,我們原先的想法是「以小開始」、「打安全牌」。事後來看,這或許不是一項很好的決定。

3. 陡峭的難度曲線

在前 10 個關卡中,遊戲簡單的就像是一塊蛋糕,既使是七歲的小女孩,也能夠以三顆星的成績通過這些關卡。然而,當玩家們抵達第二章節(第 11 至 20 關)後,遊戲難度就隨著吐司機器的出現而提升許多。更甚者,到了遊戲的第三章節及第四章節後,某些特殊客人如食評家及流浪漢的出現,更劇烈地升高了遊戲的困難度。

有些玩家指出,在非常努力地嘗試過關後,卻依舊只能得到一顆星的評價,讓他們感到非常地挫敗。雖然只需要得到一顆星,玩家們就可以繼續遊玩下個關卡,但這些玩家仍然覺得相當沮喪,因為他們認為「遊戲實在太難了」。

儘管《Bonnie’s Brunch》是被歸類在模擬及策略類型的遊戲中,但它需要玩家們的快速反應力及高度專注力。我們發現某個族群的玩家,不是特別喜歡這種類型的遊戲。他們不想要搞砸事情,更不想讓自己看起來像是手忙腳亂、不知所措的樣子。

如果你的遊戲需要玩家善用他們的「多工反射神經」,你真的該仔細斟酌你的目標玩家是否會喜歡它。

4. 模糊不清的市場方向

我們是一個超小型的團隊,來自一個東南亞地區的小國家叫做台灣。而且「台灣」還經常被西方人誤認為「泰國」。更糟糕的是,身為獨立遊戲開發者,我們既不熟悉也缺乏對於美國及歐洲遊戲市場的接觸管道。

誠如許多 App 開發者所知,我們正站在 App Store 的戰場中,打一場關於「能見度」的戰爭。若我們沒能向世界展現出自己的作品,我們將會跌落在沈默中安靜地死去。

於是我們把所有的遊戲促銷代碼發送給各大 App 評論網站,希望能夠引起他們的興趣進一步探究《Bonnie’s Brunch》的內容。然而,大多數的行動就像是石沈大海一樣沒有半點回音。其中 AppAdvice 是唯一給予我們機會的網站,我們真心地感謝他們。

再者,為了進一步試驗廣告是否能造成任何影響,我們在 Touch Arcade 的主站與論壇中,購買了兩組小型的廣告空間。截至目前為止,呈現出來的效果非常有限,每天只產生少於 50 次的連結點擊,而點擊率甚至不到 0.1%。

我們在思考的是,是否我們遊戲的目標族群(女性為主)並不符合 Touch Arcade 的讀者群?我們的美術設計風格,是否難以符合西方人的口味?或者它只是被視為另一款餐廳經營類型的老梗遊戲而已?這些是我們正努力嘗試想要得到答案的關鍵問題。

目前《Bonnie’s Brunch》(iTunes 連結)已推出最新的 1.1 版本,內容包含全新的關卡場景、Game Center排行榜以及多項功能修正,期望將來有機會和各位分享更多我們的開發心得及成績表現。

若您有住在國外或看不懂中文的朋友,歡迎將本篇文章的英文版轉發給他們。謝謝您的收看!

15 Replies to “事後諸葛:《Bonnie’s Brunch》的對與錯”

  1. 你好
    看了你的文章对“2. 使用 Lua 撰寫的組件式架構”很感兴趣
    有空希望能写文章介绍一下

  2. 猴子和樂風的各位前輩好:
    我也是對「組件式架構」有興趣的。
    其實不一定要寫長篇文章介紹,就算說說讀過那幾篇文章已經可以讓我們受益不淺。

  3. “或者它只是被視為另一款餐廳經營類型的老梗遊戲而已”,的確,第一眼的觀感就如同你說的。

  4. @Nicole:
    我希望有時間可以整理一點程式架構心得,但最近應該不會寫喔。

    @LungZeno:
    在《Game Programming Gems》系列中有幾篇文章,有在講組件式架構。另外網路上也有一些簡介教學文章,可以用 Component-based、Game Entity、Game Object 這幾個關鍵字去查詢。

    @Nicolas:
    阿阿。 Orz

    @phenix:
    我有看過 cjcat 的這幾段演講影片,非常出色,也推薦給各位!

  5. 能否問一下用Flash Cs5轉App功能的話,能不能做到您這樣的遊戲,執行效率是不是會受到很大影響

  6. 很令人深思的事後檢討
    事實上,食物機器和難度曲線兩點跟我玩過的感想不謀而合
    總覺得可以把前~中期的難度再進行適當的調整

    另外,我也對於component-based programming很有興趣
    我猜結構上的設計可能不是最麻煩的,真正的難關應該是在各個component之間、以及它們自己的組成物(object or component?)之間的訊息溝通、傳遞
    可以的話希望半路前輩願意連這個部分一起解釋您的想法XD
    另外我對於Lua和objective-C之間的合作也很有興趣
    以前聽過Corona這個Lua based的跨mobile OS平台遊戲腳本語言
    其他還有什麼Lua運用在iphone開發的tool之類的嗎?

  7. @xisailuo:
    我並沒有使用過 Flash CS5 轉 iOS App 的功能,所以無法得知是否能夠做出這種類型的遊戲。

    據我所知,Flash 轉 App 確實不太合適使用在需要密集運算效能的遊戲上。以《Bonnie’s Brunch》來說,執行效能應該不算是特別吃緊。

    @Necromancer:
    最近應該是沒有時間可以整理相關的程式心得。Corona 完全是使用 Lua 的程式語法來寫遊戲,包裝得很不賴,目前也已經有一些不錯的遊戲實例,有興趣的話可以去下載研究看看。

    謝謝你對遊戲的意見回饋喔~

  8. 美术真的很赞,让人羡慕不已,我觉得最关键的问题还是产品没能自己说话,没有击中欧美玩家的G点,虽然在台湾取得了Game分类第一,应该也就是一百多的量吧,基本上依靠您个人的影响力就足够了,没有充分的曝光机会的原因有很多种,产品定位是一个,在上线几天充分宣传也是很重要的,可惜在同种同源的大陆和香港地区,我们甚至不知道这么一款产品的存在。
    我们大陆这边有个公司叫triniti,它们的游戏说客气一点也只能算中等水准,但是必须承认它们的美术是老美喜欢的风格,因此,它们的产品百分之80获得了苹果的官方推荐,虽然现在博得编辑垂青获得官方推荐仅仅是苹果给予的一个机会,但是这是打入全球市场成本最低最有效的手段。
    至于美国的媒体推荐,这个真不能太指望,我们的经验总结下来是:免费的几乎不起作用,收费的也是投入大于产出,有充分预算才能去做。

    一直很喜欢半路大大的文章和不做游戏会死的理想主义,我也是一样,希望今后多多指教。

  9. 很同意你說的”讓遊戲自己說話”和”磨光擦亮”的態度, 我們也有著相同的信念!

    雖然這個遊戲未能打開歐美市場, 希望你們下個遊戲可以成功!

  10. 順帶一提, 大西瓜和在下都是 cocoachina 的版主, 有時間歡迎你來和我們國內的開發者多交流.

    另外一點是如果把華人市場做好, 也是可以很成功的, 像吳剛的二戰風雲, 光中國每天就有過萬美元的收入, 當然這只是個很特殊的例子, 但可以想像中國市場之大.

  11. @大西瓜焚岚:
    你說的很老實,《Bonnie’s Brunch》確實沒能自己說話,至少在老外的眼裡是如此。總結來說,我個人認為這是多方因素所造成的結果,從遊戲題材、操控性、美術風格到關卡設計,我們都還有太多需要改進之處。

    就我們目前的銷售數來看,香港的成績算是相當出色,大陸這邊的營收則是屈指可數。往後的遊戲作品,我們會更加重視面向大陸市場的行銷與宣傳,非常感謝你的經驗分享。

    @Dr.Watson:
    感謝你的迴響。從開始寫 iOS 以來,我就一直是 CocoaChina 的忠實讀者,我非常喜歡貴站提供關於 iOS 以及遊戲開發的全面性資訊。不過以前我比較少關注論壇裡的訊息,往後會多多拜訪,也會試著參與討論。

    誠心感謝兩位的來訪。 :)

  12. 游戏的美术真的很赞!
    这种美术风格应该是可以获得最大受众群体的,无论是亚洲还是欧美,支持作者们在原创上投入的功夫!!
    在欧美不受欢迎应该是由于题材方面的限制。
    四个人,6个月的开发时间确实有点过多了。希望这段时间的产出不会白费,设计好的人物可以在将来的游戏里继续重用。
    祝越来越成功!!

Leave a Reply