您的位置:首頁>正文

微信遊戲開發總監:瘋狂資料背後,小遊戲有怎樣的架構能力?

1月15日消息, 微信公開課今日在廣州舉辦。 會上, 微信遊戲開發總監麻華鋒發表了題為“小遊戲介面開放能力解析”的演講。

此前,

微信剛剛宣佈了小遊戲DAU破億, 累計使用用戶達到3.1億的成績。 在這些瘋狂的資料背後, 小遊戲背後的技術問題成為了從業者關心的物件, 其中就包括它的架構能力。

麻華鋒分享的這則演講就從技術角度出發, 解析小遊戲背後的架構能力。

以下為演講實錄:

大家下午好!剛過去的12月28日, 微信小遊戲上線。 我們強調玩法, 讓用戶PK起來非常有樂趣。 在瘋狂資料的背後, 這麼有魔力的背後, 我們來揭開小遊戲背後的架構能力。

首先看一下什麼是小遊戲, 小遊戲與我們傳統所知道的H5遊戲什麼不同?從架構來看, 小遊戲是直接把系統原生能力通過JavaScriptBinding的方式注入到JavaScriptcore與V8引擎中, 提供與H5對齊的canvans與webgl的js介面, 也可以稱作為runtime方式, 同時又提供了微信社交能力、檔案系統等平臺能力。

我們會強化社交能力, 在小遊戲植入很多的社交能力, 像群分享。 往上層來看, H5遊戲開發者依賴的是遊戲引擎, 傳統遊戲引擎比較多。 小遊戲這塊目前也有一些商家引擎做適配, 像layabox、cocos, 與Egret, 他們配合我們做引擎適配,

這樣可以幫助開發者儘快適應小遊戲的開發。

H5遊戲和小遊戲之間的區別是什麼?小遊戲是在H5遊戲的基礎上增加微信社交能力、檔案系統、工具鏈, 我們去掉一些對遊戲開發不是那麼重要的, 像Dom、Bom、Css、Eval。

小程式和小遊戲的區別

小程式與小遊戲之間有什麼區別?在座很多都是小程式開發者。 小遊戲作為小程式的子類目, 它繼承小程式的所有開發介面和能力, 它同時完善渲染、檔案系統, 它又去掉多頁面、Wxss、WXML。 如果你有H5遊戲的開發經驗, 你做小遊戲是很容易的。 如果你同時又具備小程式的開發經驗, 那就是信手拈來。

在上線的四款遊戲當中, 有三款是微信團隊探討社交能力。 星途第一個Demo是用了三個星期時間, 而且這些同學是完全沒有遊戲開發經驗的, 小遊戲開發是非常簡單。

小遊戲的分享轉發能力

小遊戲對外提供分享轉發能力, 我們提供兩種:一種是在遊戲內, 叫主動轉發。 主動轉發是你轉發的時候, 可以在遊戲頁面直接呼起轉發群。 第二種叫被動轉發, 是第二個功能表裡面的相關資訊, 你需要設計、監聽轉發的事件。 同時你還可以設置是不是可以禁止二次轉發, 二次轉發, 大家會覺得為什麼要限制二次轉發。

如果你想跟大家分享這款小遊戲, 其實你不需要設置二次轉發。 設置二次轉發是你群裡面, 你分享群裡面的相關資訊。 如果你想獲得群裡面的相關資訊,你就要禁止二次轉發。同時我們還提供二維碼的能力,大家通過二維碼群裡都可以。

好友互動,剛才提到我們提供分享轉發的能力。在好友互動這裡,你可以自訂分享的內容。以星途為例,大家一起來PK,它是帶來禁止轉發的。你查看動態消息,不會出來一個轉發。這個消息有兩點,第一個是很大的圖片,大家分享圖片的時候有兩種方式。第一種是選擇本地圖片,第二種是選擇動態圖片,如果標題過長的話,我們會截取,這樣可以快速上傳轉發。

像鬥地主,之前在微信平臺也上線H5遊戲。H5遊戲資料比小遊戲的資料來看,流失率增加了一倍,因此小遊戲會更加吸引客戶的注意力。大家在開發的過程中,要利用好目前的開發能力。大家在前期可以多瞭解一下這些相關的點如何使用,在技術上做好準備。

排行榜,我們提供兩種能力,一種是獲得好友的排行榜,一個是群排行榜。在技術上,我們做了資料託管。開發者沒辦法獲取使用者的好友資料,我們在技術上做了隔離,通過子域和主域,排行榜是在子域裡面進行展示。排行榜的模擬非常大,就拿跳一跳小遊戲來講,有時候玩了之後,再看一下好友排行榜又忍不住會再玩一回。

排行榜的時限上面,因為用戶度非常廣,你玩的遊戲,有幾十個好友玩就已經很不錯了。但是玩小遊戲的話,可能有幾百個好友在玩。大家在做的過程中要多關心一些可以找哪些方式、更輕便、更流暢的進行體驗。

檔案系統,最近大家諮詢比較多,遊戲包是4兆,而不是10兆。低於4兆是基於用戶體驗來講的,一個遊戲包如果非常大的話,不利於即下即玩,遊戲包很大的話,下載需要很久,這樣體驗就會打折扣。遊戲包低於4兆,這樣可以實現即下即玩。在iOS上面,下載4兆只需要3秒,安卓大概是5秒。從載入、下載在5秒內可以實現遊戲包的下載。

遊戲包的代碼是4兆,有時候是動態更新,核心代碼載入這是禁止的,大家開發的時候,我建議大家好好利用這4兆,把核心代碼放到這4兆裡面。

在這個過程中,大家會問我的遊戲很大,我的遊戲有很多關口,很多資料。我們還提供50兆可支配的空間,大家可以把你們的核心資料放到50兆裡面,這50兆是完全由開發者支配的。這樣二次載入的時候,可以從這裡面取得資料,減免使用者重複性通過網路下載。我們還有一個臨時的200兆,200兆建議大家慎用。臨時200兆是小遊戲共用的空間,它只是在當前生命週期內有效,如果關閉小遊戲、小程式,當前這個就會被釋放。建議大家更好地運用4兆、50兆可利用空間。

針對目前的檔案系統,我們提供像二進位的能力,包括文本二進位能力。同時檔案系統還增加單個檔的增加、刪除、讀寫、目錄管理。這是為了滿足開發者能夠靈活的管理你的檔、資料。

工具鏈:小遊戲會提供整個開發工具,這個開發工具,像開發、調試、測試、一鍵發佈等能力。做過小程式的人都清楚,小遊戲是小程式的小類目,大家開發的時候只要選擇這個子目錄就可以。很多開發者懂ES6,但是ES6可能不支援其他的格式,所以我們提供了轉換工具。前面講到藍牙,4兆的適配小遊戲,大家可以一鍵同步維繫小遊戲的開發。

我們提供調試工具,大家可以在手機上進行調試,裡面有記憶體、日誌,大家都可以很清晰的查看到。未來,我們將提供遠端斷面調試。同時我們支援一個雲測試。作為一個小遊戲開發者,如果要買幾十部手機來做測試,這對開發者的困難是很大的。現在我們建設雲測試平臺,目前這個名類正在規劃中,未來也會向大家開放。

運維輔助支援工具:我們同步對外提供用於輔助工具。我的小遊戲上線的時候,大家可以選擇不同的版本,當天日期內,有什麼使用者出現錯誤。同時我們提供運維報警,如果今天的資料暴漲,我們可以看一下是什麼原因暴漲的。

在開發小遊戲當中,我的用戶留存率是怎樣的?針對這些問題,我們還會同步提供資料助手,資料助手可以説明開發者第一時間瞭解你的遊戲開發資料。不像傳統遊戲一樣,還要關注運維。現在我們會提供一站式的服務,説明開發者提供各種輔助工具,減少他們運維知識方面的投入,他們可以更多聚焦在產品打磨上。

我挑出一些大家比較關注的問題:

第一個是多執行緒。小遊戲相比小程式提供一個多執行緒,為了讓小遊戲運營更流暢,我們可以使用多執行緒來解決這個問題。

第二、離線訪問就是斷網路之後,你可以繼續在網,這對用戶體驗提升非常大。

第三、GC回收,你有一些場景圖片原理非常佔用記憶體空間,我們需要開發者場景切換,主動釋放一些記憶體,主動進行垃圾回收。

第四、後臺運行,今天大家談小遊戲推出之後使用很爽,使用完之後還可以再繼續玩。

第五、離屏渲染,一方面它可以幫助我們做一些遊戲內的合程效果,同時它也會帶來一些新的消耗。離屏渲染會額外開通一個緩衝區,它跟主屏之間有產品切換,這導致GP性能的消耗,這可以根據你的靈活使用來設定。

第六、代碼包增量更新,我們只是把你改變的資料進行部署。

未來我們會提供分包下載,如果開發一個中度遊戲,4兆根本不夠,4兆會改變代碼包的詞性代碼,如何滿足做中度遊戲的基礎能力?後續我們會提供遊戲代碼包的增量,就是分包下載,這個能力也請大家後續關注。

這些是小遊戲具備的能力,還有更多更詳細的介面能力,大家參考目前我們已經發佈的開發者文檔。在開發者文檔裡面有很詳細的描述。今天由於時間有限,很多技術點都沒有一一展開跟大家詳細講,如果大家有技術上的疑慮、技術上的交流,大家可以登陸微信公眾開放平臺,裡面有一個開發者社區,在這裡面進行交流,我們每天都會在裡面搜集大家的回饋,定期給大家進行回復和交流,更多的能力盡情期待。

我今天的分享完畢,謝謝大家。

如果你想獲得群裡面的相關資訊,你就要禁止二次轉發。同時我們還提供二維碼的能力,大家通過二維碼群裡都可以。

好友互動,剛才提到我們提供分享轉發的能力。在好友互動這裡,你可以自訂分享的內容。以星途為例,大家一起來PK,它是帶來禁止轉發的。你查看動態消息,不會出來一個轉發。這個消息有兩點,第一個是很大的圖片,大家分享圖片的時候有兩種方式。第一種是選擇本地圖片,第二種是選擇動態圖片,如果標題過長的話,我們會截取,這樣可以快速上傳轉發。

像鬥地主,之前在微信平臺也上線H5遊戲。H5遊戲資料比小遊戲的資料來看,流失率增加了一倍,因此小遊戲會更加吸引客戶的注意力。大家在開發的過程中,要利用好目前的開發能力。大家在前期可以多瞭解一下這些相關的點如何使用,在技術上做好準備。

排行榜,我們提供兩種能力,一種是獲得好友的排行榜,一個是群排行榜。在技術上,我們做了資料託管。開發者沒辦法獲取使用者的好友資料,我們在技術上做了隔離,通過子域和主域,排行榜是在子域裡面進行展示。排行榜的模擬非常大,就拿跳一跳小遊戲來講,有時候玩了之後,再看一下好友排行榜又忍不住會再玩一回。

排行榜的時限上面,因為用戶度非常廣,你玩的遊戲,有幾十個好友玩就已經很不錯了。但是玩小遊戲的話,可能有幾百個好友在玩。大家在做的過程中要多關心一些可以找哪些方式、更輕便、更流暢的進行體驗。

檔案系統,最近大家諮詢比較多,遊戲包是4兆,而不是10兆。低於4兆是基於用戶體驗來講的,一個遊戲包如果非常大的話,不利於即下即玩,遊戲包很大的話,下載需要很久,這樣體驗就會打折扣。遊戲包低於4兆,這樣可以實現即下即玩。在iOS上面,下載4兆只需要3秒,安卓大概是5秒。從載入、下載在5秒內可以實現遊戲包的下載。

遊戲包的代碼是4兆,有時候是動態更新,核心代碼載入這是禁止的,大家開發的時候,我建議大家好好利用這4兆,把核心代碼放到這4兆裡面。

在這個過程中,大家會問我的遊戲很大,我的遊戲有很多關口,很多資料。我們還提供50兆可支配的空間,大家可以把你們的核心資料放到50兆裡面,這50兆是完全由開發者支配的。這樣二次載入的時候,可以從這裡面取得資料,減免使用者重複性通過網路下載。我們還有一個臨時的200兆,200兆建議大家慎用。臨時200兆是小遊戲共用的空間,它只是在當前生命週期內有效,如果關閉小遊戲、小程式,當前這個就會被釋放。建議大家更好地運用4兆、50兆可利用空間。

針對目前的檔案系統,我們提供像二進位的能力,包括文本二進位能力。同時檔案系統還增加單個檔的增加、刪除、讀寫、目錄管理。這是為了滿足開發者能夠靈活的管理你的檔、資料。

工具鏈:小遊戲會提供整個開發工具,這個開發工具,像開發、調試、測試、一鍵發佈等能力。做過小程式的人都清楚,小遊戲是小程式的小類目,大家開發的時候只要選擇這個子目錄就可以。很多開發者懂ES6,但是ES6可能不支援其他的格式,所以我們提供了轉換工具。前面講到藍牙,4兆的適配小遊戲,大家可以一鍵同步維繫小遊戲的開發。

我們提供調試工具,大家可以在手機上進行調試,裡面有記憶體、日誌,大家都可以很清晰的查看到。未來,我們將提供遠端斷面調試。同時我們支援一個雲測試。作為一個小遊戲開發者,如果要買幾十部手機來做測試,這對開發者的困難是很大的。現在我們建設雲測試平臺,目前這個名類正在規劃中,未來也會向大家開放。

運維輔助支援工具:我們同步對外提供用於輔助工具。我的小遊戲上線的時候,大家可以選擇不同的版本,當天日期內,有什麼使用者出現錯誤。同時我們提供運維報警,如果今天的資料暴漲,我們可以看一下是什麼原因暴漲的。

在開發小遊戲當中,我的用戶留存率是怎樣的?針對這些問題,我們還會同步提供資料助手,資料助手可以説明開發者第一時間瞭解你的遊戲開發資料。不像傳統遊戲一樣,還要關注運維。現在我們會提供一站式的服務,説明開發者提供各種輔助工具,減少他們運維知識方面的投入,他們可以更多聚焦在產品打磨上。

我挑出一些大家比較關注的問題:

第一個是多執行緒。小遊戲相比小程式提供一個多執行緒,為了讓小遊戲運營更流暢,我們可以使用多執行緒來解決這個問題。

第二、離線訪問就是斷網路之後,你可以繼續在網,這對用戶體驗提升非常大。

第三、GC回收,你有一些場景圖片原理非常佔用記憶體空間,我們需要開發者場景切換,主動釋放一些記憶體,主動進行垃圾回收。

第四、後臺運行,今天大家談小遊戲推出之後使用很爽,使用完之後還可以再繼續玩。

第五、離屏渲染,一方面它可以幫助我們做一些遊戲內的合程效果,同時它也會帶來一些新的消耗。離屏渲染會額外開通一個緩衝區,它跟主屏之間有產品切換,這導致GP性能的消耗,這可以根據你的靈活使用來設定。

第六、代碼包增量更新,我們只是把你改變的資料進行部署。

未來我們會提供分包下載,如果開發一個中度遊戲,4兆根本不夠,4兆會改變代碼包的詞性代碼,如何滿足做中度遊戲的基礎能力?後續我們會提供遊戲代碼包的增量,就是分包下載,這個能力也請大家後續關注。

這些是小遊戲具備的能力,還有更多更詳細的介面能力,大家參考目前我們已經發佈的開發者文檔。在開發者文檔裡面有很詳細的描述。今天由於時間有限,很多技術點都沒有一一展開跟大家詳細講,如果大家有技術上的疑慮、技術上的交流,大家可以登陸微信公眾開放平臺,裡面有一個開發者社區,在這裡面進行交流,我們每天都會在裡面搜集大家的回饋,定期給大家進行回復和交流,更多的能力盡情期待。

我今天的分享完畢,謝謝大家。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示