• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Unity引擎下多人在線網絡游戲設計及開發(fā)

      2022-09-09 05:50:50王駿
      電子技術與軟件工程 2022年12期
      關鍵詞:服務器端賬號面板

      王駿

      (北京江娛互動科技有限公司 北京市 100029)

      本文的服務器的相關資源統(tǒng)一部署在公有云提供商的云環(huán)境上,數(shù)據存儲使用Mysql和Redis,服務器端使用Java語言在Eclipse集成環(huán)境內開發(fā)。而客戶端采用Unity3D引擎,支持手機等移動客戶端,也支持PC(Personal Computer)端。游戲內通過通信協(xié)議建立、UI框架設計、以及豐富的NPC應用等,進而滿足了玩家的娛樂需求。

      1 游戲設計

      1.1 游戲背景

      游戲背景設定為末日生存的動作角色扮演游戲,其創(chuàng)作理念來源于《愛麗絲夢游仙境》,是一款經典的通關性游戲,玩家通過穿越的方式來到不同的場景,面對各種挑戰(zhàn),以末日生存的方式拯救世界,迎接僵尸、死士等敵方的進攻。在此游戲之中,受資源、天氣、野獸、敵國等影響,需要玩家從零開始收集物資、建設房屋、制作工具與武器、提升自身的生存能力,并與隊友一同戰(zhàn)斗。玩家在游戲之中的游戲發(fā)展線設定方面,以以設計線路圖的形式解鎖,在玩家某一關卡通關之后,會前往下一個世界,展開新的戰(zhàn)斗。

      1.2 游戲功能

      游戲功能的核心設計主要包括如下幾個部分:

      (1)賬號管理系統(tǒng):新玩家首先要進行注冊,并且可以選擇與自己的相關社交賬號,比如微信賬號、QQ賬號、微博賬號進行綁定。這樣在下次登錄的時候可以直接選擇社交賬號登錄。玩家的注冊信息將被存儲到數(shù)據庫中,未綁定社交賬號的玩家會把玩家的客戶端設備唯一標識與游戲內的賬號進行綁定映射,從而下次用該設備登錄的時候能夠直接登錄之前注冊的賬號。注冊成功后,在登錄界面輸入玩家信息進入游戲。受我國國家法律影響,設計之中需要用戶完成實名認證才能夠完整的體驗游戲的所有內容。

      (2)戰(zhàn)場管理系統(tǒng):玩家登錄成功后,可以看到自己賬號所屬大區(qū)內已經創(chuàng)建好的場景列表,然后可以通過點擊加入按鈕進入場景。由于每個場景有自身的游戲進度限制,若未達到相應等級則無法解鎖,可選擇其他場景加入。反之加入成功,顯示加載進度條,等待游戲開始。玩家可以根據自身實際情況選擇是否加入場景,是做普通的任務還是做難度較高的升級任務。

      (3)NPC系統(tǒng):游戲內除了玩家自己和其他在線玩家之外,還有很多NPC可以與玩家進行交互、戰(zhàn)斗。這些NPC的設計有多種形態(tài),比如喪尸、僵尸、死士、怪物、幸存人類等。NPC會根據游戲劇情來觸發(fā),由程序設定,他們可能會在地圖上巡邏,與玩家對話,還可能與玩家發(fā)生戰(zhàn)斗,在戰(zhàn)斗中會攻擊、躲避、釋放技能等,從而提升游戲的真實感。戰(zhàn)場場景的進入需在特定時間段或是特殊任務執(zhí)行之后開啟。

      (4)玩家操控系統(tǒng):由于游戲支持手機移動設備和PC設備,在這兩類設備上玩家對游戲的操控是不同的。在移動設備上,游戲界面會提供虛擬十字控制鍵和按鈕控制鍵,玩家通過對應的虛擬按鍵來對游戲人物進行控制。在PC上,玩家操作主要是以鼠標來控制方向,鍵盤上的按鈕來控制功能。在游戲內,玩家可以制作裝備,升級技能,并發(fā)生戰(zhàn)斗,在戰(zhàn)斗中可以通過動作控制來與敵人進行攻防戰(zhàn),釋放角色技能,使用道具等操作。

      (5)界面特效系統(tǒng):為了提升游戲的整體畫面感和沉浸感,利用了Unity3D引擎的優(yōu)勢,當玩家遇到特殊事件、NPC,以及戰(zhàn)斗過程中都設計了大量的特效或者音效,盡量做到給玩家?guī)砩砼R其境的感覺。

      1.3 系統(tǒng)整體架構

      游戲系統(tǒng)整體架構主要分為客戶端和服務器端兩個部分,具體內容包括:

      (1)客戶端:數(shù)據管理系統(tǒng)、界面管理系統(tǒng)、資源管理系統(tǒng)、網絡管理系統(tǒng)。本游戲由于需要支持手機、平板等移動設備以及PC,僅對于手機而言,還有Android、IOS等不同手機操作系統(tǒng),因此對不同客戶端類型的兼容和界面的適配就顯得尤為重要。Unity3D引擎提供了對應的解決方案,從而使得游戲開發(fā)變得更加輕松,并能讓游戲具備良好的實用性。相關的美術資源、模型等在集成之后導入到Unity3D中,從而完成游戲場景的搭建。

      (2)服務器端:賬號管理系統(tǒng)、戰(zhàn)場管理系統(tǒng)、地圖系統(tǒng)、玩家數(shù)據系統(tǒng)、戰(zhàn)斗系統(tǒng)、NPC系統(tǒng)和網絡通信管理系統(tǒng)。各個系統(tǒng)模塊設計盡量相互獨立,低耦合,從而便于后期的維護和擴展。

      1.4 游戲設計難點

      服務器端的設計是本游戲的設計難點,服務器端的架構需要考慮游戲的穩(wěn)定性、可伸縮性和擴展性等幾個方面。游戲的服務器資源都部署到了云環(huán)境中,這樣能大大降低運維的維護成本,業(yè)內優(yōu)秀的云廠商的SLA(Service Level Agreement)也保證了其可以穩(wěn)定的運行,并且部署到云環(huán)境中可以讓服務器的相關資源隨時能根據游戲運營情況來動態(tài)伸縮,云環(huán)境豐富的第三方服務也有益于擴展整個服務器的業(yè)務能力。服務器由于采用Java語言開發(fā),通過JVM(Java Virtual Machine)它可以部署到任意操作系統(tǒng)類型上,可以是Windows、Linux或者Unix等。

      服務器端可以分為一個分發(fā)總控服務器和多個戰(zhàn)場服務器。分發(fā)總控服務器主要包括賬號管理系統(tǒng)和戰(zhàn)場管理系統(tǒng),其對玩家的賬號信息和戰(zhàn)場服務器進行統(tǒng)一管理。玩家每創(chuàng)建一個戰(zhàn)場就會分配一個戰(zhàn)場服務器,戰(zhàn)場服務器就是一個游戲邏輯服,它負責當前戰(zhàn)場內相關數(shù)據的存儲和消息的處理與轉發(fā)。這里的戰(zhàn)場服務器是一個虛擬服務器概念,可以理解為一組虛擬服務器的資源,在云環(huán)境中它能以服務器容器的形式存在,比如每個戰(zhàn)場服務器就是一個Docker服務器容器。圖1為服務器端系統(tǒng)結構圖。

      圖1:服務器端系統(tǒng)結構圖

      圖4:NPC動畫狀態(tài)機

      2 關鍵技術及系統(tǒng)實現(xiàn)

      2.1 網絡通信協(xié)議

      網絡通信協(xié)議是一種網絡通用語言,為連接不同操作系統(tǒng)和不同硬件體系結構的互聯(lián)網絡來提供通信支持,是一種網絡通用語言。一般由語義、語法、時序三個要素組成,其中語義表示要做什么,語法表示要怎么做,時序表示做的順序。這里的通信協(xié)議主要定義的是客戶端和服務器端之間的網絡通信協(xié)議,由于本游戲是ARPG這種動作類的游戲,因此使用UDP(User Datagram Protocol)協(xié)議來進行網絡傳輸,可以有效的降低網絡的延遲,保證游戲的實時性。客戶端和服務器端的數(shù)據傳輸通過Google Protobuf將格式化的數(shù)據轉換成二進制的格式來傳輸,減少了格式化數(shù)據序列化和反序列化的時間消耗,并且可以加密和壓縮傳輸,提高數(shù)據傳輸效率。

      在本游戲中,網絡通信協(xié)議中格式化的數(shù)據被定義成了兩種格式:

      (1)客戶端向服務器端發(fā)送的格式化數(shù)據定義如下:

      Length Type Code Data

      Length:協(xié)議的長度,以字節(jié)byte為單位。

      Type:請求類型,本游戲有三種請求類型,分別是賬號數(shù)據類型請求,戰(zhàn)場數(shù)據類型請求和游戲邏輯數(shù)據類型請求。

      Code:每個編碼對應于服務器端定義的一個功能接口編號,服務器端通過編碼映射關系來找到具體的功能實現(xiàn)。

      Data:客戶端調用服務器端功能接口的具體參數(shù)數(shù)據,可以是JSON(JavaScript Object Notation)格式的字符串然后加密轉換的字符串格式。

      (2)服務器端向客戶端發(fā)送的格式化數(shù)據定義如下:

      Length Code Data

      Length:協(xié)議的長度,以字節(jié)byte為單位。

      Code:請求接口編碼。

      Data:服務器端返回給客戶端的結果,可以直接是JSON字符串,也可以選擇加密轉換。

      比如,客戶端向服務器端發(fā)起一個玩家登錄游戲的協(xié)議請求,其中Type是賬號數(shù)據類型1,Code是登錄協(xié)議101,Data為玩家的賬號信息,比如設備信息以及包含綁定的第三方社交賬號的相關信息等。當服務器端接收到該請求后,解析Data中的相關信息然后查詢存儲在數(shù)據庫中的賬號系統(tǒng)數(shù)據,如果找到匹配數(shù)據后,就返回Success給客戶端,否則返回Fail表示登錄失敗??蛻舳私邮盏椒掌鞫说姆祷亟Y果,如果從返回數(shù)據中解析到的是Success,則表示登錄成功,進入到戰(zhàn)場選擇界面,否則彈出登錄失敗的提示。其時序圖如圖2所示。

      圖2:登錄請求的客戶端與服務器的通信時序圖

      2.2 UI 框架設計

      UI框架設計主要包括內容為:人機交互、玩家操控系統(tǒng)、界面設計。

      高質量的UI設計可以提升游戲的可玩性,使游戲變得更加有趣,玩家的黏性也能有效提升,且受眾也會因為其操作的靈活度、爽點等來主動下載。因此,一個優(yōu)秀的UI設計,不僅會讓玩家的體驗感獲得提升,也能充分地表達設計者的游戲設計思路,其就像一個大綱一樣,使游戲設計內容及思路能固定在一條線上,承擔起游戲設計的中心點。

      本游戲的UI框架設計方案主要為:

      (1)每個界面定義成一個面板,每個面板對應一個Panel類來實現(xiàn)面板的具體功能。每個面板通過動態(tài)加載資源,然后進行實例化。

      (2)所有的Panel類都繼承一個面板基類BasePanel,在這個面板基類中定義了path和layer這兩個成員變量,以及onInit、onShow和onClose這三個方法。path變量表示該面板的資源路徑,系統(tǒng)會根據該路徑動態(tài)加載資源管理系統(tǒng)內的相應界面資源。layer變量代表該面板的層級,通過設置優(yōu)先級來確定各面板的上下級關系。onInit和onShow這兩個方法主要是做一些初始化的操作,比如添加按鈕事件監(jiān)聽、網絡消息監(jiān)聽等。例如登錄面板的onShow方法就會初始化登錄按鈕組件,之后添加登錄按鈕的事件監(jiān)聽,當玩家點擊登錄按鈕時,向服務器發(fā)送登錄協(xié)議請求。onClose方法是在面板被關閉的時候被執(zhí)行,該方法會對界面資源進行釋放,取消網絡監(jiān)聽等。

      (3)面板管理器PanelManager類來控制界面的顯示和關閉,其中open和close為兩個最主要的方法。當PanelManager的open方法被調用時,其會依次調用對應panel類的onInit和onShow方法。當close方法被調用時,其會依次調用對應penel類的onClose方法。除此之外,PannelManager類中的panels成員變量是一個Map數(shù)據結構,用來保存已經打開的panel對象列表,當打開一個界面中的面板時,如果之前已經打開過該面板會在panels中找到該panel對象,如果沒有找到,則創(chuàng)建新的panel對象并添加到panels中,一個界面被關閉銷毀之后也需要將其從penels中移除。PanelManager類的layers成員變量是維護每個panel的層級列表。圖3為面板相關類圖。

      圖3:面板相關類圖

      2.3 NPC設計

      NPC是游戲設計之中必不可少的部分,其存在可以有效提升玩家的刺激性心理,激發(fā)出玩家的挑戰(zhàn)欲望。目前游戲之中設計了兩種攻擊類的NPC,分別是普通喪尸Zombie和怪物頭目Boss,其二者在動畫狀態(tài)機的設計上一致的,只是在屬性的強弱,動畫表現(xiàn)的復雜度等有所差異。

      2.4 系統(tǒng)特效

      游戲是否成功與特效有著緊密地聯(lián)系,華麗炫酷的特效對于游戲情景的營造有著重要影響,其具體包含場景特效與人物技能特效。每種特效都是由多個特效效果組合而成的。本游戲利用Unity3D引擎來制作了大量的特效,比如場景特效中的火焰、煙霧,人物技能特效中的爆破、掃射等特效。

      2.5 游戲運行及操作控制

      本游戲的客戶端可以在PC和移動設備上運行,總體來說對處理器和內存的要求不算太高,但是由于設計了很多特效,對GPU的硬件有一定的要求。

      (1)PC端的運行需求如表1所示。

      表1:PC端游戲運行需求

      (2)而對于移動設備而言,游戲運行需求如表2所示。

      表2:手機端游戲運行最低需求

      游戲的操作在PC端和移動端也有所差異:

      (3)PC端:鼠標控制方向,鍵盤上的W、A、S、D是控制的通用鍵,Q、R、T 是人物技能鍵,B為背包鍵。

      (4)移動端:在界面上提供虛擬十字鍵盤和虛擬按鈕來操控

      3 結束語

      綜上所述,本文主要針對Unity引擎下多人在線網絡游戲設計及開發(fā)展開研究,主要研究內容為游戲功能、系統(tǒng)整體架構、游戲設計難點、關鍵技術及系統(tǒng)實現(xiàn)等方面內容。同時在基礎的系統(tǒng)設計之中保證設計內容和優(yōu)化游戲顯示效果,從而提升玩家的游戲體驗感、情景感等。

      猜你喜歡
      服務器端賬號面板
      彤彤的聊天賬號
      面板燈設計開發(fā)與應用
      施詐計騙走游戲賬號
      派出所工作(2021年4期)2021-05-17 15:19:10
      MasterCAM在面板類零件造型及加工中的應用
      模具制造(2019年4期)2019-06-24 03:36:50
      淺析異步通信層的架構在ASP.NET 程序中的應用
      成功(2018年10期)2018-03-26 02:56:14
      Photoshop CC圖庫面板的正確打開方法
      Google Play游戲取消賬號綁定沒有Google賬號也能玩
      CHIP新電腦(2016年3期)2016-03-10 14:52:50
      在Windows中安裝OpenVPN
      高世代TFT-LCD面板生產線的產能評估
      網頁防篡改中分布式文件同步復制系統(tǒng)
      眉山市| 天镇县| 武穴市| 南开区| 西林县| 亚东县| 于都县| 襄城县| 淳安县| 湄潭县| 泸溪县| 龙川县| 灵璧县| 武威市| 城步| 玉林市| 桂林市| 繁昌县| 晋宁县| 常熟市| 深水埗区| 阜宁县| 英吉沙县| 汨罗市| 肇庆市| 高邮市| 井陉县| 娱乐| 西平县| 凤阳县| 鄯善县| 清远市| 松溪县| 乌拉特前旗| 全南县| 岑巩县| 虎林市| 蚌埠市| 观塘区| 田林县| 辽宁省|