前言
《王者榮耀》屬于典型的Moba類游戲涮阔,和《英雄聯(lián)盟》屬于同一種游戲類型,那么《王者榮耀》這種游戲是如何制作的灰殴?又需要學(xué)習(xí)哪些技術(shù)點(diǎn)呢敬特?今天我們一起來分析一下。
Moba游戲是什么牺陶?
《王者榮耀》屬于Moba類型游戲伟阔,Moba英文全稱(Multiplayer Online Battle Arena)
縮寫為Moba, 中文翻譯為多人在線戰(zhàn)術(shù)競技游戲, 又稱動(dòng)作即時(shí)戰(zhàn)略游戲, 這種游戲最重要的是玩家的手感,為了獲得更好的玩家手感, 一般Moba類的游戲同步方式和傳統(tǒng)MMORPG的狀態(tài)同步方式不一樣掰伸,采用的是幀同步皱炉,《王者榮耀》就是采用幀同步,也有使用狀態(tài)同步的Moba游戲狮鸭。
這里有個(gè)游戲開發(fā)交流小組 大家可以一起來學(xué)習(xí)交流
幀同步是什么
游戲服務(wù)器每隔一段時(shí)間(邏輯幀)采集各個(gè)客戶端的玩家操作合搅,然后把采集到的玩家操作多搀,發(fā)往每個(gè)客戶端,客戶端自己來計(jì)算游戲邏輯灾部,根據(jù)同樣的玩家輸入+同樣的代碼邏輯康铭,得到同樣的運(yùn)行結(jié)果,這樣每個(gè)客戶端就同步了。
服務(wù)器每隔一段時(shí)間赌髓,這個(gè)一段時(shí)間是多長合適呢从藤?原則上來說時(shí)間越短越好,時(shí)間越短春弥,玩家操作響應(yīng)反饋就越及時(shí)呛哟,但是隨之而來的網(wǎng)絡(luò)帶寬和計(jì)算成本也增加了,于是就有了一個(gè)原則匿沛,在不影響玩家手感的情況下,越少越好扫责,根據(jù)研究,玩家的反應(yīng)時(shí)間約為50~100毫秒,所以幀同步設(shè)計(jì)為10~20幀逃呼,不會(huì)影響玩家手感, 據(jù)小道消息鳖孤,暴雪的《守望先鋒》每秒20幀。幀同步主要的業(yè)務(wù)邏輯全部都放客戶端計(jì)算抡笼,所以服務(wù)器基本沒有什么運(yùn)算量, 性能好苏揣。由于所有的計(jì)算都放客戶端,幀同步也有容易作弊的缺點(diǎn)推姻。
幀同步比狀態(tài)同步獲得更好的手感
在網(wǎng)速正常的情況下平匈,其實(shí)狀態(tài)同步也能獲得很好的手感,同時(shí)狀態(tài)同步又是放服務(wù)器計(jì)算的更安全藏古,為何我們不用狀態(tài)同步做Moba而是用幀同步呢增炭?狀態(tài)同步和幀同步最大的區(qū)別在于網(wǎng)絡(luò)波動(dòng)的時(shí)候,網(wǎng)絡(luò)經(jīng)常會(huì)有波動(dòng)拧晕,狀態(tài)同步隙姿,如果服務(wù)器由于網(wǎng)絡(luò)波動(dòng)沒有及時(shí)的發(fā)送狀態(tài)數(shù)據(jù)包到客戶端,這樣客戶端就會(huì)卡住(雖然時(shí)間很短厂捞,但影響手感)输玷,而幀同步就不一樣,如果由于網(wǎng)絡(luò)波動(dòng)靡馁,幀同步客戶端沒有及時(shí)的收到玩家的操作欲鹏,客戶端還可以基于上一幀來做預(yù)測,因?yàn)橥婕?秒能有3個(gè)不同操作就很不錯(cuò)了(一秒你能點(diǎn)幾次按鈕臭墨,自己可以測試一下),所以當(dāng)網(wǎng)絡(luò)波動(dòng)的時(shí)候赔嚎,通常基于上一幀的預(yù)測是非常準(zhǔn)確的裙犹,所以幀同步應(yīng)對(duì)網(wǎng)絡(luò)波動(dòng)的時(shí)候獲得更好的手感尽狠。同時(shí)配合UDP的傳送衔憨,能讓手感更好。
《王者榮耀》采用了哪些技術(shù)?
《王者榮耀》整個(gè)分為:程序開發(fā)袄膏,美術(shù)設(shè)計(jì)践图,游戲策劃。程序開發(fā)分為客戶端與服務(wù)端兩個(gè)部分沉馆,客戶端采用的是現(xiàn)在應(yīng)用比較廣泛的3D游戲引擎Unity來開發(fā)码党,服務(wù)端采用的是C++來開發(fā)。一般像騰訊這些大公司都會(huì)獲得Unity引擎的源碼授權(quán)斥黑,每個(gè)項(xiàng)目開始的時(shí)候揖盘,都會(huì)自己定制渲染管線來獲得最佳的游戲畫面效果與性能,同時(shí)也會(huì)有自己的項(xiàng)目引擎框架锌奴。C++做服務(wù)器兽狭,性能非常的好,同時(shí)技術(shù)也非常的成熟鹿蜀,《王者榮耀》項(xiàng)目組也是之前做的一個(gè)項(xiàng)目轉(zhuǎn)變而來箕慧,技術(shù)也積累了很久,服務(wù)端也有自己的一套框架茴恰。游戲美術(shù)分為游戲原畫颠焦,角色建模,場景建模往枣,動(dòng)作粒子特效伐庭,游戲UI幾個(gè)部分組成,原畫負(fù)責(zé)設(shè)計(jì)每個(gè)英雄的美術(shù)風(fēng)格分冈,外形, 平面地圖等圾另,角色建模根據(jù)原畫,把每個(gè)角色模型都建好丈秩,模型建好后盯捌,動(dòng)作美術(shù)調(diào)好動(dòng)畫特效淳衙,游戲場景也類似蘑秽,原畫設(shè)計(jì)后,場景建模人員建3D場景模型箫攀,打上光照肠牲,最后烘培場景出來給程序使用。王者榮耀的策劃做的很好靴跛,各職業(yè)的平衡也設(shè)計(jì)的非常好缀雳,這也是它受廣大玩家喜歡的原因之一。
好今天的分享就到這里梢睛,喜歡王者榮耀肥印,對(duì)王者榮耀技術(shù)感興趣的同學(xué)识椰,上面是客戶端+服務(wù)器 視頻教程 你們準(zhǔn)備好自己開始做了么?^_^