金文玥 于嘉鈺
摘 要:近年來,隨著智能手機的普及,人們接觸游戲更加便捷,這使得游戲產業迅猛發展,尤其是3D網絡游戲,受到了人們熱烈的追捧。本文首先介紹了什么是Unity3D,之后又分析了基于Unity3D的多人在線網絡游戲的設計情況,希望能夠為相關的游戲設計和開發提供一定的借鑒和參考。
關鍵詞:Unity3D;網絡游戲;系統;算法
引言
目前,3D網絡游戲受到了人們廣泛的歡迎,尤其是一些大型多人在線網絡游戲,占據著游戲產業的半壁江山。對于3D網絡游戲而言,開發工具以及開發平臺具有決定性的作用,而Unity3D具有得天獨厚的優勢,完全能夠滿足游戲開發設計的需求。
1.Unity3D概述
Unity3D是丹麥一家公司推出的游戲開發工具,這款工具更加重視對游戲可玩性方面的研究,并且便于游戲設計者和開發者操作,同時價格低廉。Unity3D的顯著特點包括:能夠呈現出高品質的畫面,尤其是使用的光照貼圖技術處于行業領先地位,玩家在近距離觀察時可以看到陰影以及表面的細節。同時渲染延遲的能力不俗,可以在特定場景內創建不同的光源,并且不影響整體的運行性能。另外,無論是微軟系統還是蘋果系統,Unity3D的腳本都完全兼容,同時在設計游戲時可以斷點執行,隨時處理問題。至于具體的音頻參數,Unity3D產生的衰減曲線可以進行編輯,這樣使用者就能夠做到對聲音的環境進行控制和調整。值得一提的是,對于一些大型的游戲,比如王者榮耀、絕地求生、龍之谷等,占用空間都在1G以上,而Unity3D內存管理器可以迅速查找相關的內容,并且可以預覽和進行標記。因為很多玩家需要在手機、電腦以及PAD上同時存儲游戲,而Unity3D完全支持在不同設備上運行同款游戲,并且進度保持一致,不需要下載和更新。
2.基于Unity3D的多人在線網絡游戲的設計
多人在線網絡游戲對于網絡流暢方面的要求特別嚴格,一旦出現網絡延遲,就會對整個游戲產生不可逆轉的影響,所以游戲的客戶端的實時率需要得到很好的保證,而且對于游戲人物的配音、皮膚以及動態效果,需要保證逼真同時形象生動。下面從結構、算法、腳本和程序四方面簡要分析一下基于Unity3D的多人在線網絡游戲的設計過程。
2.1系統結構
一般而言,多人網絡在線游戲的結構分為兩大部分:服務器與客戶端??蛻舳税ㄓ螒蚩刂啤⒚佬g處理與接口管理三部分,而服務器包括數據庫、賬號管理與網絡服務三部分。通常情況下,服務器下面有多個子程序相互連接,這樣可以避免多個模塊之間出現干擾,尤其是能夠提高編譯的耦合度。至于客戶端,因為采用Unity3D技術,能夠減輕后期維護的壓力。網絡游戲與單機游戲最大的區別在于能夠實現玩家之間的實時互動,相關的代碼都在服務端運行,這樣能夠避免一些玩家在游戲中使用外掛,維護健康的游戲環境。具體的服務器代碼如下:
public class CreateServer:MonoBehaviour{
int port=100000;
void On(){
switch(Network.peerType){
case Disconnected:
Server()
break;
case PeerType.Connecting:
break;}
}
}
2.2取值算法
對于大多數網絡游戲而言,鼠標的作用不容小覷,雖然在手機端或者是移動端,無法使用鼠標,但是Unity3D開發出的可觸摸操作桿,與鼠標的作用一致,從而實現了交互式的替代控制。通過具體的角色,通過取值進而控制角色的行為,尤其是在一些立體場景中,需要借助地圖,找到相應的位置,并根據坐標指示進行移動,而且在移動之后,移動結果會上傳到服務器中,這樣才能做到同步。取值算法的核心在于對角色進行精準的控制和定位,而且不應該受到場景的影響,以往在游戲中常常出現卡屏的情況,就是取值算法的代碼出了問題,并不能很好地取點,對于一些特殊點也不能實現替代[1]。通過Unity3D可以對點進行分析,如果不符合要求,則會果斷拋棄,之后就近選擇可以替代的點。
2.3腳本系統
對于網絡游戲而言,人工智能在其中發揮著巨大的作用,如果游戲配有智能系統,那么會極大地提升游戲體驗。Unity3D的腳本系統采取組合的方式,不同的數據庫之間腳本文件相互獨立,便于查詢。具體的設計流程如下:首先判斷狀態是否出現變化,如果出現變化,則需要切換模式動畫,產生動態的效果,并且根據取值結果進行調試。以三國殺為例,當場上同時存在八名武將時,需要制定相應的出牌順序,尤其是一些武將技能特殊,可能多次出牌或者是在回合外行動,所以需要根據人工智能啟動相應的策略,決定誰有優先的行動權,并且在對戰過程中,由于反饋會有順序,而武將技能會出現類似的情況,所以一定要合理安排順序,避免游戲出現混亂[2]。同時三國殺還有特殊的模式,就是武將暗置,身份不明,這就需要人工智能根據狀態和行為的腳本,確定攻擊范圍,尤其是超過攻擊范圍應該變換顏色,禁止出牌,這樣才能保證游戲卡牌產生應有的效果,并與卡牌說明保持一致。
2.4協同程序
對于游戲玩家而言,操作簡單的游戲界面更易受到歡迎,尤其是創建角色和更換皮膚時,動態效果能夠讓人賞心悅目,同時如果游戲不占用內存,會縮短游戲的等待時間。尤其是目前很多游戲等待時間過長,通常一局游戲半小時左右,但是等待時間可能在五分鐘以上,而通過協同程序,可以保證游戲中途有玩家進入,并且在游戲結束后統一計算功勛、貢獻以及正負值等。雖然協同程序占據了系統的空間,但是能夠顯著縮短數據的讀取時間,尤其是能夠保證內存不被泄露。正是因為協同程序發揮作用,使得玩家能夠頻繁進行武將技能以及模式的切換。
結論
綜上所述,筆者對基于Unity3D的多人在線網絡游戲的設計進行了詳細的分析,并且結合相關的例子,發現Unity3D開發和設計的網絡游戲場景逼真,更為突出的是,無論是在電腦端還是手機端,游戲的運行都十分流暢,能夠為玩家提供良好的游戲體驗。
參考文獻
[1]鄧華麗.探討基于Unity 3D游戲開發流程[J].電腦編程技巧與維護,2018(07):156-157+176.
[2]薛玉倩.基于Unity3D的網絡游戲[J].內蒙古科技與經濟,2018(13):86-87.
(作者單位:大連工業大學藝術與信息工程學院藝術設計系)