国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Unity的冒險(xiǎn)游戲設(shè)計(jì)與實(shí)現(xiàn)

2021-11-17 23:33:04劉夢(mèng)穎馬宏琳
河南科技 2021年17期
關(guān)鍵詞:網(wǎng)絡(luò)游戲

劉夢(mèng)穎 馬宏琳

摘 要:目前,數(shù)字游戲產(chǎn)業(yè)已經(jīng)成為數(shù)字經(jīng)濟(jì)不可或缺的一部分。本文以Unity平臺(tái)為基礎(chǔ),圍繞冒險(xiǎn)游戲的設(shè)計(jì)目標(biāo),闡述了游戲開發(fā)的整個(gè)過(guò)程。玩家可以通過(guò)計(jì)算機(jī)客戶端進(jìn)行聯(lián)機(jī)對(duì)戰(zhàn),操控機(jī)器人發(fā)射激光射線進(jìn)行大賽比拼。同時(shí),設(shè)計(jì)了雪天特效,并根據(jù)玩家數(shù)量的不同,動(dòng)態(tài)擴(kuò)容校園場(chǎng)景地圖。經(jīng)驗(yàn)證,系統(tǒng)運(yùn)行時(shí)網(wǎng)絡(luò)資源和設(shè)備資源占用率低,實(shí)現(xiàn)效果良好。

關(guān)鍵詞:Unity;Photon Engine;網(wǎng)絡(luò)游戲

中圖分類號(hào):TP317文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2021)17-0030-03

Design and Implementation of Adventure Game Based on Unity

LIU Mengying MA Honglin

(School of Information Science and Engineering, Henan University of Technology,Zhengzhou Henan 450001)

Abstract: At present, the digital game industry has become an indispensable part of the digital economy. Based on the Unity platform, the entire process of game development is explained around the design goals of adventure games in this paper. Players can conduct online battles through the computer client, and control robots to emit laser rays for competition. At the same time, special effects in snow are designed, and the campus scene map is dynamically expanded according to the number of players. It has been verified that the network resource and equipment resource occupancy rate is low when the system is running, and the implementation effect is good.

Keywords: unity;photon engine;online games

計(jì)算機(jī)游戲歷經(jīng)幾十年的發(fā)展,由最初使用FORTRAN程序編寫躲避遮擋物場(chǎng)景游戲開始,逐漸衍生出多人對(duì)戰(zhàn)、扮演角色(RPG)、卡牌休閑、放置養(yǎng)成、橫板闖關(guān)等各式各樣的游戲;從平面2D游戲到立體生動(dòng)的3D游戲,在玩法創(chuàng)意、游戲畫面設(shè)計(jì)以及開發(fā)技術(shù)方面的發(fā)展水平都令人觸目興嘆[1]。其中,多人冒險(xiǎn)網(wǎng)絡(luò)游戲是通過(guò)互聯(lián)網(wǎng)將大量玩家即時(shí)聯(lián)系起來(lái),在虛擬世界中進(jìn)行冒險(xiǎn)。它不僅能帶給用戶身臨其境的游戲體驗(yàn),也更注重游戲的互動(dòng)性與趣味性。

1 Unity與Photon引擎結(jié)合開發(fā)冒險(xiǎn)游戲

PUN(Photon Unity Networking)是一個(gè)Unity多人游戲插件包。它提供了身份驗(yàn)證選項(xiàng),并能夠快速、可靠地通過(guò)Photon后端實(shí)現(xiàn)游戲內(nèi)部通信。PUN可以輸出幾乎所有Unity支持的平臺(tái),它提供了兩個(gè)C#接口IPunCallbacks和IPunObservable,可以在類中實(shí)現(xiàn)[2]。

本游戲軟件采用Unity進(jìn)行開發(fā),分為客戶端和服務(wù)器端。客戶端包含接口、數(shù)據(jù)、界面、資源、網(wǎng)絡(luò)、房間和戰(zhàn)斗管理系統(tǒng)等;服務(wù)器端處理游戲運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù),包括玩家數(shù)據(jù)、房間數(shù)據(jù)和戰(zhàn)場(chǎng)數(shù)據(jù)等,同時(shí)對(duì)網(wǎng)絡(luò)通信進(jìn)行管理。游戲支持個(gè)人計(jì)算機(jī)(PC)運(yùn)行終端,并且具有良好的自適應(yīng)性[3]。

2 游戲設(shè)計(jì)與實(shí)現(xiàn)

2.1 游戲總體設(shè)計(jì)

針對(duì)冒險(xiǎn)游戲的特點(diǎn),采用Unity客戶端與Photon服務(wù)器相結(jié)合的架構(gòu)進(jìn)行設(shè)計(jì),通過(guò)Unity客戶端之間的信息傳遞,實(shí)現(xiàn)同時(shí)多人在線游戲。游戲整體框架設(shè)計(jì)如圖1所示,游戲流程設(shè)計(jì)如圖2所示。在游戲功能的總體設(shè)計(jì)中,分別設(shè)計(jì)客戶端功能與服務(wù)器端功能,主要的功能模塊可劃分為四大模塊,即戰(zhàn)斗模塊、界面模塊、場(chǎng)景模塊和網(wǎng)絡(luò)模塊。游戲模塊設(shè)計(jì)如圖3所示。對(duì)于多人在線的網(wǎng)絡(luò)同步,采用玩家輸入請(qǐng)求,然后通過(guò)客戶端向服務(wù)器提交請(qǐng)求的方式來(lái)實(shí)現(xiàn)。

2.2 游戲詳細(xì)設(shè)計(jì)

基于游戲的總體設(shè)計(jì),進(jìn)行游戲各部分的詳細(xì)設(shè)計(jì),主要包括玩家模型、游戲場(chǎng)景、游戲天氣、游戲界面、游戲管理器和關(guān)卡、玩家生命值、網(wǎng)絡(luò)同步等功能。

2.2.1 玩家模型設(shè)計(jì)。在Blender軟件中建造好機(jī)器人模型后導(dǎo)入U(xiǎn)nity,使其成為一個(gè)無(wú)須連接PUN就可以正常工作的預(yù)制體。

2.2.2 游戲場(chǎng)景設(shè)計(jì)。該游戲擁有4個(gè)場(chǎng)景,根據(jù)玩家人數(shù)的不同分別加載不同的游戲競(jìng)技場(chǎng)景,不僅節(jié)省網(wǎng)絡(luò)資源和硬件資源,而且滿足不同玩家人數(shù)的場(chǎng)景設(shè)置需要。當(dāng)只有一名玩家時(shí),進(jìn)入等待大廳的游戲場(chǎng)景。超過(guò)兩人時(shí),玩家進(jìn)入多人競(jìng)技場(chǎng)場(chǎng)景,該場(chǎng)景設(shè)計(jì)仿照河南工業(yè)大學(xué)校園的一角,運(yùn)用草地、云朵、小山、樹木、小橋等多組模型搭建而成。當(dāng)玩家人數(shù)為三人或四人時(shí),場(chǎng)景模型數(shù)量和場(chǎng)景架構(gòu)也隨之變化[4]。

2.2.3 游戲天氣設(shè)計(jì)。利用Unity中的Particle System組件模擬了雪天等特效。

2.2.4 游戲界面設(shè)計(jì)。利用Canvas和Button等組件創(chuàng)建界面和按鈕,并使用PlayerPrefs插件記住玩家名字,創(chuàng)建Player UI界面動(dòng)態(tài)展示玩家生命值狀態(tài)。

2.2.5 游戲管理器和關(guān)卡設(shè)計(jì)。設(shè)計(jì)LoadArena()方法,將基于所在房間的PlayerCount屬性加載至適當(dāng)?shù)姆块g。利用GameManager腳本監(jiān)聽(tīng)連接及斷開連接的玩家情況。

2.2.6 游戲玩家設(shè)計(jì)。獲取Animator組件,編寫玩家對(duì)于角色的控制,使玩家能夠使用輸入設(shè)備來(lái)操作該角色,完成行走、跑、跳躍、開火等多種動(dòng)作互動(dòng)[5]。

2.2.7 玩家生命值設(shè)計(jì)。當(dāng)玩家被光束撞擊時(shí),整個(gè)光束撞擊過(guò)程要實(shí)時(shí)顯示生命值的減少過(guò)程。另外,當(dāng)對(duì)戰(zhàn)時(shí)玩家的生命值降為0,系統(tǒng)將判定其游戲失敗并退出房間。進(jìn)行代碼設(shè)計(jì)時(shí),先在GameManager腳本中創(chuàng)建一個(gè)離開房間的方法,然后在玩家腳本的Update方法中添加一個(gè)if (Health <= 0f)判定方法,再通過(guò)調(diào)用GameManager腳本中的LeaveRoom()方法退出房間。

2.2.8 戰(zhàn)斗系統(tǒng)設(shè)計(jì)。游戲設(shè)計(jì)從機(jī)器人眼里發(fā)射出的激光作為戰(zhàn)斗系統(tǒng)的武器,將激光束與機(jī)器人的頭部綁定,玩家按下開火鍵時(shí),激光束將從機(jī)器人眼里發(fā)射出來(lái)。

2.2.9 玩家相機(jī)設(shè)計(jì)。根據(jù)增加的偏移量來(lái)計(jì)算所需的相機(jī)位置,達(dá)到跟隨玩家的效果。使用距離參數(shù)反映水平偏移,使用高度參數(shù)反映垂直偏移,然后使用Lerping平滑運(yùn)動(dòng)以趕上所需的位置,最后使用簡(jiǎn)單的LookAt使相機(jī)始終指向播放器。

2.2.10 服務(wù)器端運(yùn)行。本游戲在運(yùn)行客戶端時(shí)必須連接Photon服務(wù)器,提前架設(shè)服務(wù)器端。服務(wù)器引擎封裝了一系列網(wǎng)絡(luò)通信方法,通過(guò)調(diào)用這些方法,可以實(shí)現(xiàn)網(wǎng)絡(luò)通信和網(wǎng)絡(luò)同步。

2.2.11 網(wǎng)絡(luò)同步設(shè)計(jì)。通過(guò)Unity提供的Photon Transform View組件和Photon Animator View組件進(jìn)行基礎(chǔ)的同步。因?yàn)榧す馕淦髦挥性趐hotonView.IsMine為真時(shí)才需要工作,為此在PlayerManager腳本中繼承IPunObservable接口來(lái)手動(dòng)同步IsFiring布爾值。在IPunObservable.OnPhotonSerializeView方法中,獲得一個(gè)變量流,判定玩家是本地玩家(即photonView.IsMine == true)時(shí)才能使用stream.SendNext()將IsFiring值附加到數(shù)據(jù)流中寫入,否則只能使用stream.ReceiveNext()閱讀。另外,生命值的網(wǎng)絡(luò)同步方法和激光武器類似,同樣使用變量流進(jìn)行同步設(shè)計(jì)。

2.3 游戲?qū)崿F(xiàn)效果

圖4至圖7展示了多名玩家登錄、連接游戲客戶端、等待到進(jìn)行多人對(duì)戰(zhàn)的整個(gè)過(guò)程。實(shí)踐證明,游戲運(yùn)行效果良好。

3 結(jié)語(yǔ)

本文以Unity平臺(tái)為基礎(chǔ),結(jié)合Photon引擎技術(shù)與Blender模型設(shè)計(jì),采用C#語(yǔ)言進(jìn)行開發(fā)和技術(shù)研究,實(shí)現(xiàn)了以機(jī)器人為主視角的網(wǎng)絡(luò)對(duì)戰(zhàn)冒險(xiǎn)游戲。實(shí)踐證明,Unity與Photon技術(shù)相結(jié)合可以高效地進(jìn)行網(wǎng)絡(luò)冒險(xiǎn)游戲的開發(fā),游戲運(yùn)行狀態(tài)和可操作性良好。

參考文獻(xiàn):

[1]呂學(xué)琴,蘇閏,陳彥軍.基于Unity引擎制作塔防游戲[J].智能計(jì)算機(jī)與應(yīng)用,2018(5):95-99.

[2]龔高強(qiáng).基于Unity引擎的3D游戲客戶端系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2016:20-24.

[3]翟濤.基于Unity3D的游戲智能行為體的研究與設(shè)計(jì)[D].沈陽(yáng):沈陽(yáng)師范大學(xué),2018:17-20.

[4]王海嘯.基于Unity3D游戲引擎的三維動(dòng)畫虛擬攝像機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京大學(xué),2014:18-19.

[5]邱競(jìng)峰,王洪源,陳慕羿.Unity3D引擎實(shí)現(xiàn)游戲人物的基本操控[J].中國(guó)新技術(shù)新產(chǎn)品,2016(19):24-25.

猜你喜歡
網(wǎng)絡(luò)游戲
網(wǎng)絡(luò)游戲的虛擬財(cái)產(chǎn)的法律性質(zhì)及其刑法保護(hù)
停止侵害在網(wǎng)絡(luò)游戲侵權(quán)案件中的適用
大學(xué)生網(wǎng)絡(luò)游戲行為及其影響調(diào)查分析
青春歲月(2016年22期)2016-12-23 22:53:44
網(wǎng)絡(luò)游戲的品牌推廣策略研究
商情(2016年42期)2016-12-23 15:01:46
冰川網(wǎng)絡(luò)股份有限公司財(cái)務(wù)報(bào)表綜合案列分析
修改游戲賬戶網(wǎng)絡(luò)游戲銀兩的行為應(yīng)如何定性
人間(2016年30期)2016-12-03 20:25:34
青少年網(wǎng)絡(luò)模仿性暴力犯罪特點(diǎn)、成因及預(yù)防對(duì)策
網(wǎng)絡(luò)游戲?qū)Ξ?dāng)代大學(xué)生造成的危害研究
科技視界(2016年21期)2016-10-17 18:16:24
淺析網(wǎng)絡(luò)對(duì)青少年成長(zhǎng)的影響
考試周刊(2016年63期)2016-08-15 23:08:53
我國(guó)網(wǎng)絡(luò)游戲產(chǎn)業(yè)SCP范式分析
商(2016年22期)2016-07-08 22:06:14
怀来县| 宁化县| 绵阳市| 竹山县| 沧州市| 夏邑县| 合江县| 平远县| 临安市| 台安县| 庆阳市| 洛川县| 思茅市| 射洪县| 荥阳市| 曲沃县| 重庆市| 黄大仙区| 赤水市| 彰武县| 诏安县| 日照市| 嘉黎县| 贡嘎县| 喜德县| 绵阳市| 富阳市| 平安县| 西乌珠穆沁旗| 区。| 客服| 增城市| 顺昌县| 峨山| 忻城县| 安达市| 巨鹿县| 大新县| 华池县| 玛曲县| 永宁县|