《天龍八部3D》中Unity使用介紹

2021-01-12 CSDN技術社區

在過去一年裡,很多端遊進入手遊市場在榜單上大獲成功,但考慮到性能及用戶屬性等,如果僅僅照搬端遊的玩法,在開發過程中可能會遇到很多風險。《天龍八部3D》是搜狐暢遊自主研發的一款遊戲,它是3D的MMO系統,在去年10月進行公測及上線之後,得到了很多玩家的認可,取得了不錯的成績。所以,今天我想來分享一下在使用Unity引擎製作《天龍八部3D》遊戲的過程中遇到的一些經驗和教訓。

《天龍八部3D》技術方案揭秘

首先,我先簡單介紹一下《天龍八部3D》項目的基本情況。《天龍八部3D》在公測之初的24小時便獲得了1257萬的流水,首日導入大概110萬的用戶,在內地以及臺灣、香港的iOS付費及免費榜均取得過TOP1的成績,在iPhone暢銷榜的最高排名是TOP3。正式上線之後的首月流水是2.3億,從「凌波微步」、「武林大會」到最近的「丐世英雄」,《天龍八部3D》推出的資料片流水均高於公測時,這個事例可以體現MMOARPG的生命力還是比較頑強的。

在技術層面上,結合伺服器端和客戶端的整體考量,《天龍八部3D》主要運用了以下幾種技術方案:

完整的動態負載均衡方案。單伺服器支持一萬人同時在線,在人數上漲時可以調動整個伺服器的負載均衡,讓一萬人都能流暢、穩定地運行。伺服器內部通訊機制。充分利用硬體資源。比如在一臺物理機上開兩個伺服器,當一個人多而另一個人少的時候,伺服器會自動通過動態負載均衡調用更多的硬體支持人多的伺服器。異常處理機制。帶有垃圾回收功能的對象池。

在伺服器上,我們有較高的穩定性和容錯性,可以穩定運行三周以上。這對其他類型的遊戲可能並不是一件特別重要的事情,但對於MMORPG來說,卻極為重要。因為MMORPG是具備成長性和完整性的遊戲,而MMORPG用戶對在線時間的要求要高於普通遊戲,我們必須依靠於穩定運行機制來讓用戶在線時長得到保證。

而在客戶端,則有穩定的幀率和順暢的操作感,裡面帶有高效的動態資源管理策略,可以保證客戶端的內存方面不會出現特別大的問題,導致客戶端閃退等。此外,還有成熟的性能優化解決方案,其實在去年剛起步時我們還是一頭霧水,但經過一年多的努力和學習,我們基本上已經學會了一套在客戶端上性能優化的完整解決方案。

從端遊到手遊,如何打造驚豔的移動端畫面表現?

手遊和端遊不同,做移動端遊戲,面數是一個很大的問題,手遊上面數較少,而《天龍八部3D》則將遊戲資源與美術相結合,從定製化的場景到人物材質都是一種3D的表現,這樣可以保證美術資源在面數較少的情況下,也能達到漂亮、驚豔的效果,如圖1所示。


圖1  《天龍八部3D》遊戲界面截圖

《天龍八部3D》項目是從2013年11月開始立項,作為毫無手遊開發經驗的前端遊研發團隊,整個開發流程可以說是摸著石頭過河,不過幸好我們整個團隊已在一起工作六年,非常默契,能夠較快地將想法實現。

項目最初一個月,我們都在探索著嘗試各種美術風格定位,後來開始著手研究Unity引擎開發,在2013年12月底,我們使用Unity做了一個Demo,基本上代表了之後的美術方向和整個玩法的基本雛形。

經過從α、β到Golden版本的優化演進,《天龍八部3D》從初具雛形到公測、正式上線,在此過程中真正運用了哪些Unity技術?

大量的Unity自帶技術,比如導航的組件等;遮擋刪除;LightMapping,用以解決光照問題;將NGUI與Unity相結合可以很方便地構建出一個強大的UI系統;Unity自帶的粒子系統;Editor功能,可以很方便地開發各種小工具,大幅提高工作效率,比如UI輔助、圖片處理、編譯、國際化、阻擋生成等;AssetBundle,一種非常有效的資源管理方式,既可以打包、控制內存使用,還可實現資源的動態更新;Unity自帶的性能分析工具Profiler,能解決所有性能問題。

下面再給大家介紹一下《天龍八部3D》中使用的一些實用方案。

《天龍八部3D》遊戲最初的定位是能夠在512MB的內存上都能良好穩定地運行,於是,我們便使用了一種叫做緩存池的機制,這是一種內存換時間幀率機制,《天龍八部3D》的NPC、玩家、特效、聲音等均有使用,它能夠提供較好的流暢度體驗,但需要一部分小額內存。

在遊戲運行過程中需要找到一個合理的釋放點,如果跑在1G以上的機器上,可能相對容易,但要兼容低端機型,合理的釋放點則非常重要。

《天龍八部3D》中常用的釋放點有兩個,分別為轉場景時釋放一些非全局資源、每次打開界面一秒後進行一次主動調用GC的操作。這是我們權衡了很久的做法,但實際效果還很不錯。當時我們為了兼容低端機型運用了緩存池的功能,在512MB設備上運行會變卡,而且還無法控制,最終我們在打開操作界面時執行緩存池,儘管實際出現卡頓但玩家卻不會有感覺,這屬於是一種比較取巧的方式。

值得開發者們注意的是,在將所有東西打包成AssetBundle時,需劃分出依賴關係,單個界面的AssetBundle最好不要超過1M,單個模型骨骼數不超過32個,角色和NPC控制在2000面以下。

最後,再來說一下《天龍八部3D》遊戲中使用到的優化方案。

《天龍八部3D》在剛立項時,市面流行的客戶端大小都在100M以下,當時我們做了很多策略,包括分包下載、動態資源更新、壓縮貼圖、儘量重用資源等,最後,在上線時客戶端大小為150M。

代碼中申請內存一般是New來操作,用完內存還要進行一次標記釋放,比如置空或發送Destroy消息。如果讓GC幫助釋放內存的話,會出現卡頓,這個時候就需要選擇合適的時間點來控制GC。

一般貼圖佔用內存大,如果儘可能地重用會很節省內存。程序代碼中的內存池、對象池如果用完,在必要的時候可以主動調用GC釋放。而做好AssetBundle資源關係的動態加載、卸載等也能省下很多內存。

按照C++的思想來管理內存,比如使用內存池、對象池、手動卸載、主動GC等,能夠在內存和幀率之間做好平衡。另外,規劃好美術資源的重複利用也相當重要,它能夠減少包的大小,比如NPC變色多場景可共用,製備、水等很多場景的美術資源製作也可重複利用。

佟慶 《天龍八部3D》製作人;王華 《天龍八部3D》主程

本文將刊登在《程式設計師》5月A刊上,訂閱詳情可點擊:http://dingyue.programmer.com.cn/

CSDN移動將持續為您優選移動開發的精華內容,共同探討移動開發的技術熱點話題,涵蓋移動應用、開發工具、移動遊戲及引擎、智能硬體、物聯網等方方面面,如果您有想分享的技術、觀點,可通過電子郵件(tangxy#csdn.net,請把#改成@)投稿。

第一時間掌握最新移動開發相關信息和技術,請關注mobilehub公眾微信號(ID: mobilehub)。


本文為CSDN原創文章,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • 天龍八部3D逍遙時裝日月同輝介紹
    天龍八部3D逍遙時裝日月同輝介紹 時間:2014-12-01 作者:五月之戀 來源:18183天龍八部3D
  • 《天龍八部3》龍紋裝備系統詳細介紹
    本文來源:網易遊戲頻道 作者:天龍八部3
  • 金庸的小說《天龍八部》是啥意思?何謂「天龍八部」?
    無論有沒有讀過金庸的小說,你都一定聽說過「天龍八部」。其實,除了金庸的「飛雪連天射白鹿」之外,中國古代的很多小說中都提到過「天龍八部」。比如,《西遊記》裡的白龍馬最後就被如來佛祖封為「八部天龍廣力菩薩」。那麼,天龍八部到底是個什麼東西呢?武俠大師金庸是根據佛經內容來寫的。
  • 天龍八部手遊專屬珍獸企鵝王怎麼樣 天龍八部手遊企鵝王怎麼獲取
    導 讀 天龍八部手遊超級QQ會員專屬珍獸企鵝王,高級絕版珍獸企鵝王擁有很好的生存能力和輸出它是個平衡性珍獸,企鵝王珍獸獲得需要玩家是天龍八部手遊超級QQ會員才能擁有
  • 《天龍八部3》魚類道具詳細介紹
    天龍八部3》魚類道具詳細介紹" src="https://nimg.ws.126.net/?
  • 《天龍八部》中虛竹對應的是八部之一,他的意義究竟是什麼
    天龍八部最初的寫作計劃是寫8個人,對應八部金庸先生最初寫這部小說時,原是打算按佛家的八部天龍來分別寫八個字,其他人就作為這八個人的輔助性人物來襯託他們的存在,豐富他們的故事。八部天龍在佛教理論中是指天眾,龍眾、夜叉、乾達婆、阿修羅,迦樓羅,緊那羅,摩呼羅迦。
  • 《天龍八部手遊》螳螂珍獸在哪抓 螳螂捕抓方法介紹
    導 讀 天龍八部手遊螳螂珍獸捕捉地點 螳螂寶寶技能大全,25級珍獸螳螂在攻擊速度和傷害上新區前期用起來不錯
  • 8星屬性《天龍八部》第四代神器誕生
    《天龍八部》10月全新資料片的消息一經放出,更新內容中有關神器的部分就立刻引來玩家熱烈關注。據參加過剛剛結束的滿級深海內測的玩家介紹,第四代神器不僅外形炫酷加倍,屬性更是逆天飛升,而且,玩家還可以自行對神器進行通靈「解封」,6星神器瞬間變8星!
  • 金庸小說《天龍八部》指的是哪八部?分別指哪八個人?
    金庸老爺子已駕鶴西去,留下了14部皇皇經典武俠大作——飛雪連天射白鹿,笑書神俠倚碧鴛,《射鵰英雄傳》是儒家的正義、《笑傲江湖》是道家的灑脫、《鹿鼎記》是世俗的修煉,而《天龍八部》則是佛家的眾生皆苦。
  • 犀牛免費騎《天龍八部》新版今日上線
    隨著《天龍八部》玩家熱情的水漲船高,新版本開發的腳步也在不斷加快。6月4日10點,《天龍八部》版本號正式升級為0.19.0144。本次新版中加入了兩大神秘的驚喜活動,輕鬆輕鬆參與,開開心心贏獎!除此之外,讓廣大「天龍眾」們期待已久的拉風新騎乘「犀牛」也將在今日更新的版本中出現!
  • 深淵魅影 《天龍八部》海洋生物大百科
    廠商特供稿,以下內容並不代表網易言論《天龍八部》(搜狐暢遊出品)不僅有著國風蕩漾的陸上江湖,遼闊的水下世界也是氣象萬千。在剛剛登場的「神兵海域」世界裡,全球8000萬註冊玩家見到了一幅美輪美奐的深海畫卷。
  • 仗劍江湖別芳塵 《天龍八部榮耀版》四大門派之峨眉前瞻
    》繼承了端遊十二門派中的四大經典門派:丐幫、逍遙、天山和峨眉,今天我們就來為大家介紹下手遊中的峨眉,一起來看看端遊門派中的「帶刀奶媽」——峨眉會在全新的天龍江湖中有什麼變化吧!峨眉弟子還能習得「九陰神爪」,在1V1的戰鬥中為敵人施加高達10秒的流血Debuff。當然在必要時刻,峨眉弟子可以使用金庸小說中名震江湖的怒氣大招——「九陰真經」,對周圍所有敵人造成大量傷害。 以上就是《天龍八部榮耀版》中有關門派丐幫的介紹。
  • 相似度120% 十大Coser出演《天龍八部》
    當《天龍八部OL》(搜狐暢遊出品)中的人物穿越到現實世界,他們將擁有什麼樣的個性外型?由十位遊戲動漫圈著名Coser出演的《天龍八部OL》十大門派俠客今日登場,國風水墨營造出超現實的震撼視覺效果,全套102神器與四代門派時裝,更是做到了1:1原版重現。像不像?看完你說了算!
  • 《天龍八部3》神秘商店詳細介紹
    本文來源:網易遊戲頻道 作者:天龍八部
  • 《天龍八部》之「八部」,其實分別指8組主角,知道的人寥寥無幾
    很多人第一次聽到或看到「天龍八部」這4個字時,或許並沒有在意它是什麼意思。但想必絕大多數人都曾有過這樣一個念頭:「天龍八部」跟小說的主題到底有什麼聯繫呢?我們實在想不出「天龍八部」跟小說所講的故事有什麼奇妙的關聯。
  • 荒野求生《天龍八部》海底世界四大險地
    現實中的海底,若非藉助沉重的潛水設備,也許你一輩子也無法見到它的精彩。但是在《天龍八部》(搜狐暢遊出品)裡,只需邁入「神兵海域」世界,宏大浩瀚的海底風光即刻呈現在你眼前。不過,「神兵海域」中有四處極為兇險的所在,貿然接近的話,甚至會有性命之憂的哦!
  • Unity3D 尋路系統
    給需尋路的物體添加NavMeshAgent組件(Unity主要通過NavMeshAgent組件實現自動尋路的功能,角色添加NavMeshAgent組件後,就可以在NavMesh尋路網格上尋找最優路徑找到目標)選中物體,然後在屬性面板中點擊Add Component,搜索Nav Mesh Algent,添加此組件。
  • 天龍八部是八種神道怪物名字出自法華經
    天龍八部這個名字一看就高大上,西遊記白龍馬取經功成,獲封南無八部天龍廣力菩薩。金庸小說看完了也沒弄明白,天龍八部和這個北宋為背景的武俠小說有什麼關係。天龍八部究竟是哪些天龍,八部又是哪八部呢?迷迷糊糊的一頓找,略有心得、一偏之見,聊聊這個天龍八部。
  • 【天龍八部】發布海底地圖 21日滿級深海內測
    背景神秘、隔絕獨立的異世界,能夠與他服玩家進行無障礙交流的跨服戰場——相信不少玩家都對《天龍八部》(搜狐暢遊出品)的「天外江湖」體系記憶猶新。時隔一年,《天龍八部》今日終於正式發布「天外江湖」的第二個獨立MOD世界。
  • 《新天龍八部》嘉年華上演夢幻汴京,武俠經典引十四年國韻無雙
    (圖:《天龍八部》開創了武俠網遊中「門派詩句」的先河)經過長達14年的打磨,從《天龍八部》到《天龍八部2》、《天龍八部3》,再到今天的《新天龍八部》,玩家在遊戲中體驗到的除了2.5D到3D畫面的升級,還有一個日益飽滿的江湖世界。