1. 程式人生 > >一些可供參考的遊戲出海技術架構與經驗總結

一些可供參考的遊戲出海技術架構與經驗總結

640?wx_fmt=gif

作者|UCloud         
出品|遇見人工智慧        公眾號|GOwithAI

對於中國遊戲產業來說,2017年至今是一個不太平靜的時間段。在平臺化以及全球服的大趨勢之下,遊戲玩家們的付費意識有了明顯提升。

受益於此,國內湧現出一批獨立遊戲開發者和工作室。在網易、騰訊等遊戲巨頭籠罩之下,這些遊戲廠商們將目光紛紛轉向海外市場。

同時,無論是傳統的端遊、頁遊平臺,還是已成為主流的手遊平臺,在內容和玩法之外,都越來越重視遊戲體驗本身。

7月21日,由UCloud舉辦的“UCan下午茶”沙龍成都站,UCloud架構總監周浩城等五位嘉賓作為遊戲全球化先行者的代表,從遊戲的雲端部署、技術架構、玩法設計、市場觀察等角度,分享了他們在遊戲全球化過程中的實踐與思考。

全球化背景下,出海業務的雲端實踐

海外情況錯綜複雜,產品全球化對於底層IT架構提出了新的嚴峻挑戰。UCloud於2012年成立至今已有6年,憑藉其覆蓋眾多國家和地區的海外節點與骨幹網路,以及穩定可靠的底層技術架構,幫助數百企業成功出海。

在這個過程裡,UCloud的研發團隊也遇到了很多挑戰,來自UCloud互動娛樂事業部架構總監周浩城結合自身經驗,現場分享了在為使用者提供出海服務時,遇到的幾個常見挑戰和解決方案。

挑戰一:海外運營商及運營情況複雜,會出現突然被上聯運營商限頻寬,卻沒有收到任何反饋等情況,當遇到流量洪峰時,網路將嚴重擁堵。

解決方案:

1、採用模擬實際攻擊的方式,來測試從各個國家、地區、各個線路到資料中心整條鏈路是否OK。通過測試,可以知道海外的上聯線路被限了、整個機房的安全檢測、封堵、清洗的流程是否正常工作等,然後針對具體問題定製解決方案;

2、增加運營商合作渠道,當某一運營商出現問題時,切換資料中心的網路服務,在這個遷移的過程中,需要做到使用者無感知。

640?wx_fmt=jpeg

挑戰二:封堵攻擊流量,凌晨聯絡不到運營商。對於一些海外的運營商尤其是基建比較弱的地方,其服務並非24小時線上,尤其是凌晨時分網路出現問題時,基本上無法及時聯絡工作人員對接處理。

解決方案:讓運營商提供自動封堵的介面,一旦出現攻擊,UCloud可以自動排程骨幹網上封堵介面,在骨幹網上攔截攻擊流量。

挑戰三:大網路由選路會出現次優路徑,如特殊情況下臺灣到香港公網延遲突然從20ms飆升到80ms。

解決方案業務覆蓋。根據使用者的業務建立資料中心的覆蓋範圍,通過天眼監控系統監控該範圍內的網路訪問、丟包情況等等。如高雄某個時刻出現了丟包問題,系統會自動抓監控點到資料中心MTR的圖,使用者可以通過MTR,檢視丟包節點。

挑戰四:部分國際運營商區分國內路由和國際流量,如韓國、泰國、印尼的國際頻寬和國內頻寬是分開算的。

解決方案:針對這種情況,UCloud研發了一個具有深度包檢測功能的工具ShockWave,它可以根據選取的IP地址,按照協議,分析出流量/包量的趨勢,並按照運營商、地域對流量進行統計並支援排序。獲取每個國家、每個運營商的資料後,可以為以後的流量採購建立資料基礎。

挑戰五:海外回國需要單獨引入回國線路 。

解決方案:擴建資料中心,並將全球的資料中心全部聯網。下圖為UCloud全球骨幹網示意圖,綠色代表已接入的骨幹網,紅色代表計劃建設的可用區,通過供應商提供的多條海纜,建立自主可控的網路,保證資料中心的連線不會出現丟包等情況。

640?wx_fmt=jpeg

除了上述策略,UCloud基於出海需求,研發出了高速通道UDPN、全球動態加速PathX、SSH加速服務GlobalSSH等多種解決方案。

聊聊小遊戲這個“風口”

微信小遊戲、QQ輕遊戲和Facebook Instant Game 已經成為遊戲行業新的“風口”。“海盜來了”在微信小遊戲上已經實現了月流水超億的表現。武漢映象科技技術總監曾嶸現場詳細分享映象團隊在立項、開發、上線過程中的實戰經驗。

目前,市面上常見的小遊戲型別大概分為四種:微信小遊戲、Facebook Instant Game、QQ玩一玩以及Google Play Instant。目前,國產主流HTML5引擎對微信小遊戲、支援 QQ 玩一玩以及 Facebook Instant Game這三種類型都具有較好的支援,並且支援IDE 、Java/Type及跨平臺開發。

與其他技術採用 HTML5 技術不同的是,Google 依然使用 APK 作為發行包,採用 JAVA/Kotlin 作為開發語言。它提供更高的APK大小限制(10MB),Google Play Instant 還支援可執行程式碼和遊戲資產的漸進式下載,並允許開發人員使用NDK和遊戲引擎與現有的工具鏈結合使用。

在效能上,微信小遊戲使用的是修改過的渲染引擎和 JS 引擎,Java 引擎執行效能低於原生 HTML5 瀏覽器,效能較差;QQ玩一玩是經過渲染的引擎,QQ輕遊戲的整個質量比微信好很多,但穩定性較差;Facebook Instant Game基於HTML5開發,它需要在網頁上呈現,效能非常好,基本上沒有卡頓;Google Play Instant使用的是APK機制,效能是非常好的。大家可以根據自身的遊戲定位和效能需求來選擇合適的遊戲型別。

640?wx_fmt=png

目前,小遊戲市場已經經過了野蠻的增長階段,市面上有大量低質量與同質化嚴重的小遊戲,同時由於微信大力打壓誘導分享機制,所以,誘導分享現今也無法對遊戲運營起到太多作用。因此,在遊戲立項上,曾嶸基於自身的開發經驗給出了一些實用、有效的建議:

微信封鎖了好友鏈,遊戲需要建立自己的好友鏈。微信雖然能夠看到好友榜的資訊,但那只是一個黑盒子,只能放東西,不能存東西;

需要使用者主動自發分享,不要使用誘導分享,可以通過分享獲取小遊戲資源的方式代替原來的分享復活等機制;

謹慎做對戰類遊戲。小遊戲是一種輕量級遊戲,而對戰遊戲通常會給玩家的帶來非常強的挫敗感,尤其在移動端,強烈的挫敗感會導致大量使用者流失;

放置類玩法比較受歡迎;

在設定小遊戲玩法時,一定要基於微信的規則去做。

出海遊戲全球服架構及解決方案解析

一款成功的全球遊戲離不開後端技術和運維,但全球各地網路質量參差不齊,國與國之間的網路擁堵,導致國際網路訪問經常出現延遲、丟包等問題,給後端支援和運維人員帶來了龐大的工作量,亦嚴重影響終端使用者的使用體驗。

UCloud互動娛樂事業部架構師沈皓現場為大家闡釋了遊戲全球化的三種主流架構:純網路轉發的集中部署、分散式業務部署、分散式部署+網路優化轉發綜合部署,及其業務邏輯,並結合UCloud出海遊戲成功案例,講述不同架構的使用場景及優劣勢分析。

目前,市場上比較熱門的遊戲依然是對戰類遊戲。區別於傳統PVE的遊戲,對戰類遊戲著重展現人與人之間的競爭。每一次戰鬥都是智力、運氣、策略的挑戰。通過天梯激發人們的好勝心,並通過組隊、地圖場景、遊戲道具(卡牌)以及其他社交類元素來增加遊戲自身的趣味性、黏著性。

基於對戰類遊戲的玩法和策略,這類遊戲有四大特性:UDP和幀同步,資料包互動量巨大;玩家快照和幀資料儲存需要高效能大容量的記憶體儲存;網路穩定要求高;架構主要以模組化為主,有的甚至可以兩地三中心容災。而云平臺的產品,可以為使用者解決這些問題。

下圖為UCloud資料中心網路設計圖,圖上有幾個叫可用區的方框,這個其實就是傳統意義上的機房,公有云在此基礎上開發出了可用區架構,將機房池化,網路出口獨立通過不同的物理路徑走到不同的出口POP點,這個POP點是UCloud自建BGP和運營商建立連線的地方。

640?wx_fmt=jpeg

這種方式可以將所有的機房資源池化並通過專線打通內網,為使用者免費提供相同地區的不同機房網路互通,可以方便使用者實現跨機房高可用的容災架構,同時多POP點也可以保證網路出口的持續高可用,不論是物理路徑問題還是運營商本地都會網路故障(比如北京本地),都可以進行規避。

對戰類遊戲的框架設計淺析及快速上線

遊戲開發除了需要好的設計及創意外,如何快速上線也是大家關心的問題,特別是出海遊戲,進度緩慢很可能會導致自己的目標市場已經被佔領。LeanCloud的遊戲事業部首席工程師于振宇以對戰類遊戲為切入點,詳細講解了開發中遇到的痛點及阻礙開發進度的常見問題,現場與大家探討了如何加快遊戲的開發部署上線。

對戰遊戲大概可以分為弱聯網、回合制、MMORPG、MOBA四類:

弱聯網的遊戲。它的實現方式大部分和單機遊戲沒有太多的區別,首先發起戰鬥,服務端把戰鬥過程回饋給客戶端,客戶端進行戰鬥的重演;

回合制。對於實時性要求不高,只要在回合操作內,完成對服務端的共性就可以了;

MMORPG。對遊戲實時性要求比較高,這種遊戲一般是採用狀態同步去做開發;

MOBA。與前三者相比,對於實時性要求最高,一般採用幀同步的方式。

那麼,如何實現這些遊戲的框架設計呢?下圖是一個簡化的對戰類遊戲設計框架示意圖,客戶端會先向路由伺服器請求一個大廳的地址,請求到大廳地址之後,系統會根據使用者選擇的戰鬥連線到具體的遊戲伺服器,這背後就是資料伺服器的支撐。

640?wx_fmt=png

具體連線時序為,客戶端首先向伺服器請求大廳的地址,然後返回大廳地址,客戶端向大廳伺服器發出請求連線大廳,根據玩家的需要選擇建立房間,再返回房間地址,斷開大廳伺服器連線,最後是客戶端連線房間。

那麼,開發者如何進行快速開發和上線?

首先是連線,需要一些介面傳遞gameVersion的版本號,可以根據遊戲版本號路由到不同版本的伺服器;第二步是匹配,包括建立房間和加入房間;第三步資料同步,主要是Object 型別和CAS 檢測;最後一步,自定義事件,這個相對簡單,就是一個訊息的ID和訊息的Date。

最後,于振宇介紹到,LeanCloud釋出了一個新的服務——Play,提供可擴充套件的後端雲服務,能夠靈活匹配玩家介面、支援Unity引擎,並實現了多人實時通訊功能。

如何從一無所有到最終完成互動電影製作

從2015年的火爆到2016年的平靜至2017年的低谷,再到2018年唱衰,VR行業一直都存在著諸多問題。來自颶風地帶的CTO夏思源帶著這些問題,以從一無所有到最終完成互動電影的製作流程為例,進行了翔實而有趣的分享。

夏思源介紹到,互動電影製作的全部流程,主要包括劇本構建、世界觀設定、概念設定、劇情內容豐滿、玩法設計、實現與測試、場景搭建與角色製作、動畫製作、以及最後的優化與完成八大步驟。下面對其中的幾個關鍵點進行展開。

劇本構建:劇本的主要目的是確定要做一個什麼樣的遊戲,它的價值觀、主題、表現形式是什麼,以及它的世界觀和它應該帶給我們的玩家一個什麼樣的體驗和心情,所以劇本的大綱構建需要放在第一步,而且十分重要。

世界觀設定:選定了劇本大綱之後,接下來要確定劇本大綱所展現的藍圖、設計並內容細化,從而去奠定世界觀,讓製作人、工作人員,觀眾、以及使用者知道要做的是一個什麼樣的東西。

玩法設計、實現與測試:玩法制作上,可以做一個比較簡單的編輯方式,讓策劃來進行整個關卡的設計和安放。在完成整個遊戲之後,需要內部人員對遊戲關卡進行體驗。這裡,也可以邀請海內外玩家或者非玩家體驗,對目標人群進行畫像。

場景搭建與角色製作:這塊可以直接按照商業遊戲的標準進行搭建,製作場景的時候,可以出一張很簡單的圖,把整個場景的分佈和格局做出來。角色製作跟場景搭建基本是一樣的,只是留存會略有區別。整個製作過程為概念設計到細化,到整體調優。

動畫製作:第一步還是傳統的繫結角色,接下來在整個動作階段全部使用演員,用Vicon(運動捕捉系統)進行捕捉,利用Dynamixyz(面部捕捉系統)進行面部捕捉,然後用MotionBuilder對動作進行修正,在UE4中進行配製,最後調整優化,這整個也是一個拍戲的流程。

結 語

目前,全球人均遊戲時間仍呈現上升趨勢。而隨著技術的革新和人文領域的不斷挖掘,出海遊戲的內涵和應用必將愈加豐富,遊戲正在突破傳統休閒娛樂領域,跨界到社會更多的應用場景,相信與遊戲互融共生的電競、直播、VR等產業生態也將更加完善。

----End----

加·真社群|國內頂級人工智慧公司已集結,每天分享激動人心的AI大事、新應用。如想進入,加微信:623974966,備註:遇見人工智慧+單位和職位,符合條件,擇優邀請。
領·好福利|點標題下藍字,或微信搜“遇見人工智慧”,關注後回覆"報告",1秒鐘獲取麥肯錫、德 勤等198份頂級最新AI報告。

獨家精選欄目文章合集(點選圖片即可進入

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=png

兼具內容品質和設計顏值的AI全媒體

「AI名利場」「這很AI」「AI新聲」

商務合作、轉載、投稿請聯絡微信 

▼ 

Lxz216216216

640?wx_fmt=jpeg