《動物餐廳》湯庭泉:如何優雅的實現遊戲調優
以下是湯庭泉的演講全文:
各位微信小遊戲開發者的同僚們,大家下午好!我是湯庭泉,也是創意小遊戲《動物餐廳》的主創人之一,今天很榮幸在這裡跟大家進行一些分享,分享我們的經驗和反思,希望作為拋磚引玉,能壯大微信小遊戲開發群體。
立項之初我們一直在思考一個問題,什麼樣的遊戲能夠稱之為微信小遊戲,肯定與其他遊戲不同。我們從微信小遊戲這五個字中拆出兩個關鍵資訊,第一個是“微信”,微信是一道閘門,代表微信背後成千上萬的流量。在這樣強大的流量面前開發商非常開心,因為解決了獲取使用者難的痛點。但微信使用者量這麼大,對開發商提出至少兩個挑戰:第一,這麼大的使用者量,怎麼明確遊戲設計出後核心使用者的需求;第二,像《動物餐廳》這樣近乎於單機的遊戲環境怎麼將使用者聯絡起來,怎麼建立使用者連結。
這兩個挑戰是比較廣的話題,所以在這裡我不想進行深入的分析理解。
下一個資訊,我們拆解出的是“小”字。我們團隊一直認為一個好的遊戲首先是來源於生活,脫離了生活肯定沒有立足之本。像我們開發遊戲,如果比較玄幻,就像踩在雲端。構想這樣一個場景,在一個簡單的地方進行吃飯、付費。這樣一個簡單場景,我們覺得它就能夠用於立項,而且對於食物,它的覆蓋面足夠廣,覆蓋的人群足夠多,在它之上可以做的花樣也比較多。微信小遊戲《動物餐廳》在這樣一個前提下應運而生。
《動物餐廳》的核心玩法非常簡單,就是玩家通過不斷的點選招募按鈕來招募一個客戶,客戶吃飯付錢。
我們會給予玩家一定的小魚乾獎勵,通過這個小魚乾可以用來裝潢自己的餐廳來提升自己的星級。
就這樣一個簡單的遊戲,它到底能不能成功。明確了目的之後我們開發時間非常快,一個半月時間完成雛形。但我們非常忐忑,這樣的遊戲推出後能不能經受住市場的檢驗。
我們推出後和自己的朋友進行分享,一段時間後拿到一筆非常珍貴的資訊,就是我們的遊戲推出後長期留存達到平均水準,但次日留存非常差。對於次日留存差的問題,有非常多原因,其中一個最簡單的問題是我們缺乏一個次日留存獎勵機制。比如平常的遊戲,3天、5天、7天登陸會達到什麼獎勵,獲得提出一些任務線,不斷玩最後兌取獎勵。我們這麼簡單的遊戲沒有足夠的支撐做一個連續的登陸系統,因為沒有東西獎給使用者。
我們做一些改變,聯想到跟餐廳相關的另外一個生活場景,就是外賣定單。
第一天一個使用者在你這裡下了一個定單,第二天再上線時就可以完成這個定單。我們通過這個系統達到兩個目的,第一個,這是邏輯自洽的,在餐廳裡存在定單是很和諧的,沒有天馬行空;第二個,達到吸引玩家次日完成的目的。這個動作做完,次日留存有了非常棒的提升。
另外一個核心指標,長期留存。《動物餐廳》是一個線上有互動、離線有收益的掛機遊戲。這樣一個遊戲天生有一個稟賦,它具有一定的長尾效應。一旦留下來的使用者,一定會在很長一段時間內持續不斷的玩這個遊戲。我們的資料只是平均水準,顯然不能讓人滿意。前幾年有一個《旅行青蛙》,相信很多人玩過。裡面有一個功能系統,青蛙出去之後有一定概率帶回一張隨機的明信片。我們覺得這個非常具有借鑑意義,就想整合到《動物餐廳》。在花園板塊完成後就進行了系統整合。
這時候我們團隊落入了兩個陷阱。第一個,它已經邏輯不自洽了,在一個餐廳環境裡,是不是需要一個信件這樣的東西,很值得商榷。你吃飯時會要看一封信或者在這個場景裡需要有這個東西嗎?花園跟餐廳結合得也不是很好。但我們的運氣很好,在這個系統上線後,玩家的反饋很熱烈。因為我們的玄學的信件系統引起了廣泛的話題,這個話題性已經遠遠概括這個小小的瑕疵。因為玩家在討論怎麼獲取信件,獲取信件的方法是什麼。第二個陷阱,堆量的陷阱。這是設計底層決定的。當這個系統需要周圍不斷有設計支援時,這個陷阱就會被不斷放大。特別是小型公司,對成本的控制非常嚴格。如果疲於奔命的更新東西,玩家消化速度又非常快,就會陷入惡性迴圈。這樣的情況下進行了改良,首先是簡化信件模型。信件就只有一張照片,有些劇情相關的東西。第二,從數學上遏制玩家的獲取速度,進行一個平衡。
結合這兩點,我們取得了一個比較中庸的能夠接受的開發速度和消耗速度。在保持玩家獲取信件熱度的情況下,也能夠滿足開發的進度。我們認為一個遊戲的核心玩法雖然簡單,但可以通過一些特殊的操作或者特殊的系統來達到他們自己產生玩法的目的。以花園為例,開始時想將整個《動物餐廳》做成UGC內容,裡面的物品可以到處拖放或者擺動。但由於第一個演示版做出來我們發現這樣的成本太高,於是在花園裡完成了自己的想法,大膽採用去UI化,能不用UI的地方就不用。常見的遊戲,都是進入揹包,在揹包裡都是按照順序、數量一個個擺放,顯然不能滿足UGC,於是我們把這個揹包去掉,玩家的花落下來就零亂的散落在整個花園裡。剛開始會有一些顧慮,這個花到底是不是按照我們的想法。其實玩家自發創造力非常強。在我們了他這樣一個工具之後,他們依靠自己的想象力發揮創造做了一些東西。這樣的東西有擊中了目標客戶的特點,他們富有創造力,非常有活力。當一個東西滿足他們的審美需求時,他們會進行一些分享,所以產生了非常良性的裂變。這個在整個社群的傳播度非常廣,甚至有人會專門要求一個做出這樣造型的人幫他完成這樣一個造型。
我們完成線上/線下打通,我們始終相信線下的連結比線上更緊密,像我們周邊的朋友會進行遊戲連線,會自動帶動周邊的朋友進行相同的遊戲。線下玩家會自發產生一些內容,形成一些非常良性的話題。比如左邊是玩家給《動物餐廳》裡一些他比較喜歡的角色提煉出畫的一張全家福。右邊是有一個玩家老婆過生日時,他利用遊戲裡一些元素自己創作的東西,贈送給他老婆當禮物。這種東西非常良性,刺激了線下社交,把線上線下打通,大家的連線就非常緊密。但這個東西也會帶來一個問題,隨著玩家體量越來越多,他們會對我們的遊戲提出各種各樣的疑問和挑戰。在這樣的情況下,開發者有時候會陷入一個思維困局。
我們最終的目的是要利已,但想要達到這個目的首先要利他,就會成為欲取之先予之。我覺得我們處理這個問題的方法,就是要重視問題,但更要注重自己的目的。像花園裡一個典型的系統是點選花朵之後,花朵將飛向瓶子,會供吃完飯的客人賞花,會進行一系列的消耗。這樣一個操作會導致一個問題,假設花園裡產生了一些非常珍稀的物品,點選後物品放到花瓶上被消耗掉,玩家就會覺得自己很吃虧,像自己失去了一些寶貝一樣。
當時有玩家提出反響,能不能做一個彈窗,只要彈窗存在就會大大減少誤操作。因為出現一個彈窗就阻止了連續操作,必須要思考。確實這種做法肯定會減少誤操作。但轉念一想,我們做這個花園的目的是為了讓玩家產生UGC的內容,點選和拖動操作一定是在花園場景裡頻發的。在這樣一個頻發的場景裡一旦做出比如彈窗等,就會打斷體驗,導致遊戲設計出現繃壞的情況。我們覺得給他一個後悔藥,放上去之後可以拿下來。這樣一個操作玩家也坦然接受了,也沒有再反饋出現這樣一些問題。
策劃方面的東西,《動物餐廳》由於是體量比較小的UG,遊戲設計比較簡單。我覺得當一個拋磚引玉的作用,看後面幾位開發者對策劃方面有沒有更多的理解。
效能方面,我們也遇到了一些挑戰。我們總結了三個比較大的問題,各位開發者在開發時可以注意一下。
第一個問題,記憶體和效能的消耗。
因為我們經常會出現右邊的提示,“執行記憶體不足導致該小程式無法使用”。這種玩家很多都流失了,包括我身邊的朋友,我安利他們玩時,突然出現這個,就消失了。在這樣的情況下,我們進行了一波優化,只保留必須要用到的資源,當一個資源不需要用到時直接釋放掉。首包載入效率問題。下面有一張圖是遊戲的圖,首包載入,讀條介面大於兩秒或者三秒時,留存率相當於四成,相當於100個使用者進來等了兩秒鐘就只有40了,非常誇張。減少首次場景載入東西,沒有更多複雜的東西。合理的利用微信給我們的工具,像灰度釋出。我們在進行遊戲開發時,不可避免會遇到一些BUG。在體量這麼大的情況下,一股腦的釋出絕對會引起繃壞。我們常用的功能是灰度釋出,甚至每次釋出時放5%,先讓玩家玩一下,觀察玩家的反饋,再逐步擴大量。
從各方面說,《動物餐廳》並不是一款非常完美的遊戲,但正因為使用者理解、包容我們,我們這個遊戲才有機會進行反覆的調優。我希望所有開發者要敬畏使用者同時也不害怕改變,只要你能不害怕改變,逐步滿足使用者的要求,就能把微信小遊戲做成全民的大遊戲。
問答環節:
觀眾:是不是原來有一個APP端的版本?
湯庭泉:沒有。
觀眾:具體資料可以透露嗎?留存等。
湯庭泉:資料這次沒有展出,可以接下來交流。
觀眾:剛才您說第一版時資料是一般的。在這種情況下,一般的小遊戲CP,拿到發行商或者市面資料一對比就會放棄自己的遊戲,剛才你們講調了很久。
第一,你們當時堅持調這個遊戲時,判斷標準是什麼,在新立項時什麼時候會放棄?
第二,你們當時有考慮整個ROI模型嗎?比如買量等,綜合從資料維度評估這個遊戲應該往下走還是從遊戲回收部分放棄?
湯庭泉:作為一個創業者,對自己的專案必須要有信心,如果你沒有足夠的判斷力,就不要做這件事。我們拿到第一版資料時,並不覺得是因為我們的遊戲做得很爛所以留存不好,它肯定是因為遊戲中出現了某種問題,有病應該醫,不應該一刀砍死。當時我們的想法是繼續調優資料、分析問題,並沒有想過這個遊戲什麼時候放棄。
第二個問題,有沒有考慮過ROI的模型,是有考慮的。既然在微信這顆大樹下乘涼,周邊就不要太關注。我們確實進行了買量,但第一層都沒有通過,我們花5000塊錢買的量,他們是不是我的核心使用者,無法判斷,買的量到我們手上能不能滿足轉化效率,無法判斷。買量的東西是非常值得商榷的。
我們初期的種子使用者就是我們周邊的朋友,他們進行自發傳播,周圍有些朋友再進行傳播。這樣低成本的獲取一些量。作為處於嬰幼兒期的開發團隊,也沒有那麼大的資本進行買量的操作。
觀眾:你們初期的種子量是多少?大概是百級、千級還是萬級?
湯庭泉:團隊的投資我不太清楚。
觀眾:剛才說朋友的朋友的朋友。
湯庭泉:種子使用者大概一兩千。
觀眾:一天還是總的?
湯庭泉:總的使用者,這批使用者持續運營了半個月到一個月時間。
相關文章
- 如何實現優雅的重試?
- [javascript]如何優雅的實現網頁自動滾動JavaScript網頁
- 「React」如何在React中優雅的實現動畫React動畫
- [WebAssembly 入門] 實現數獨遊戲 - 如何優雅的組織Rust程式碼Web遊戲Rust
- 如何優雅的實現訊息通訊?
- 優雅的實現動態載入 css、jsCSSJS
- .Net Core如何優雅的實現中介軟體
- 如何優雅的實現自己的Android元件化改造?Android元件化
- 如何優雅地實現分頁查詢
- 網頁設計如何優雅的實現垂直居中網頁
- 遊戲如何長效且優雅地蹭熱點?遊戲
- Flutter和Rust如何優雅的互動FlutterRust
- Java 如何實現優雅停服?刨根問底Java
- 如何優雅的搞垮伺服器,再優雅的救活伺服器
- efcore如何優雅的實現按年分庫按月分表
- 純JS實現貪吃蛇遊戲 —— 可能是全網程式碼最優雅的實現。JS遊戲
- 如何實現線上優雅停機和調整執行緒池引數?執行緒
- 如何在遊戲設計中實現優雅藝術?從流程解析到具體例項遊戲設計
- Redis優雅實現分散式鎖Redis分散式
- 更優雅地實現策略模式模式
- Spring Boot中如何優雅地實現非同步呼叫?Spring Boot非同步
- 如何優雅的使用介面
- 如何優雅的寫Markdown
- 如何優雅的使用MyBatis?MyBatis
- OkHttp優雅的實現下載監聽HTTP
- Egg優雅的實現異常處理
- python 中 try...finally... 的優雅實現Python
- 如何在 Linux 下使用 TC 優雅的實現網路限流Linux
- 如何將優秀的遊戲調成爆款? 次留超50%的《Hide 'N Seek!》調優覆盤遊戲IDE
- 我們是如何將史上最優雅的武器做進遊戲裡的?遊戲
- 如何優雅的將Flutter引入現有應用?Flutter
- 如何優雅使用 vuexVue
- 如何優雅地求和?
- 如何TypeScript中相對優雅地實現類的多繼承TypeScript繼承
- 如何優雅地實現多資料庫的發件箱模式資料庫模式
- 用proxy實現一個更優雅的vueVue
- Python 使用 backoff 更優雅的實現輪詢Python
- Redis刪除特定字首key的優雅實現Redis