天天看點

小遊戲關系鍊能力更新,能做互動功能

有開發過微信小遊戲的同學最近應該會收到一個叫“小遊戲關系鍊能力更新”的服務通知。

小遊戲關系鍊能力更新,能做互動功能

媒體們好像都沒怎麼報導這個,但花叔覺得這個特性其實蠻厲害的,畢竟目前能做關系鍊資料功能的技術載體中,就隻有小遊戲。可以說,關系鍊資料的調用是微信賦予小遊戲的專屬特性,而這次帶來的更新是補充以往很大的一個缺口能力。

既然說到更新,我們複習一下在這之前關系鍊資料在小遊戲中是怎麼用的:

小遊戲關系鍊能力更新,能做互動功能

舊版機制中,為了保護關系鍊資料,微信開發團隊提出了“開放域”的機制,目的是把關系鍊資料鎖死在開放域中,讓開發者能在開放域中進行關系鍊資料的計算,卻不讓其上報至開發者伺服器,也不讓其透傳到主域中。

這種機制其實主要是依靠微信側提供伺服器去托管使用者的關系鍊和遊戲行為資料(即普通托管資料),同時在前端提供一個隔離的子域運作環境來杜絕前端層面資料的主動上報。

這種機制下,關系鍊資料得到很好的保護,但局限性也是很顯然的,這種情況下,關系鍊資料的展示非常單一,開發者隻能沉澱和展示目前使用者與其好友們的遊戲資料。而他的好友間的互動資料是沒法沉澱也是沒法展現的。

小遊戲關系鍊能力更新,能做互動功能

比如說在太空引力遊戲中的好友排行榜,就是基于這個機制做的,它能顯示玩過這個遊戲的所有好友的成績,但如果好友間存在互動(比如說“好友點贊”、“贈送禮物”之類的強互動功能),基于這個機制是沒法做到沉澱以及曝光的。

也就是說,如果要一個小遊戲實作類似一起來捉妖中的好友贈禮功能,以往是沒法做到的。

小遊戲關系鍊能力更新,能做互動功能

是以,也許是為了解決這個問題,現在,微信開發團隊更新了這個機制。

這次更新非常有誠意,裡面涉及的底層架構一定非常複雜,很慶幸微信一直堅持着技術革新。

花叔為了讓開發同學更容易了解和上手,對官方的流程圖做了個優化:

小遊戲關系鍊能力更新,能做互動功能

紅色流程為新增流程,其中提到“JSServer”和“互動型托管資料”的兩個新概念。

簡而言之就是在開放域中,開發者可以捕獲使用者的互動資料(比如點贊、贈禮資料,實際上這種資料就是使用者間的關聯關系資料),然後通過JSServer伺服器幹兩個事情:

1.進行校驗并把此資料存到微信提供的“互動型托管資料”伺服器中;

2.同步資料到原本的普通托管資料中(這樣就能夠實作你點贊某好友,所有好友都能看到)。

依靠這個機制,能把使用者的好友篩選出來,同時還能把使用者好友間發生的事情表達出來。

可以說技術機制設計得很巧妙了,而實際上,有一些小遊戲已先行開發了類似功能:

小遊戲關系鍊能力更新,能做互動功能

開發流程有一點點複雜,花叔結合cocos creator也做出了個demo:

小遊戲關系鍊能力更新,能做互動功能

其實邏輯上做起來也不算很麻煩,但是個人覺得資料管理成本可能會變高吧?

然而,花叔相信廣大開發者們是聰慧的,也許多花點時間就能總結出高效開發的套路。

期待大俠們的見解~

ps.需要源碼的話,留言呗。