最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

UE4/5 實現(xiàn)多人聯(lián)機的經(jīng)驗教訓

2023-06-24 23:49 作者:Jenkins_Gage  | 我要投稿

我花了半個多月給已經(jīng)發(fā)售了的Koler突然加入多人聯(lián)機功能,重置了幾乎所有的Gameplay邏輯,踩了好多的坑。如果你也想給游戲加多人聯(lián)機那最好也參考一下我的經(jīng)驗教訓。

1. 盡可能早地去考慮多人聯(lián)機相關功能的實現(xiàn)

只要有那么一點可能性那你就應該在項目一開始的時候就著手這些網(wǎng)絡功能。這句話是寫在ue網(wǎng)絡文檔一開始的地方的,可見有多重要,不然到頭來重構的時候感覺像是在屎山蹦迪。

2. 和網(wǎng)絡相關的實現(xiàn)絕對不要用TMap(Dictionary)這種數(shù)據(jù)結構

Koler里的屬性系統(tǒng)大量地用了TMap,但是TMap不支持Replicate,我在論壇上翻的時候看見Tim Sweeney說他在1999年的時候就在考慮這個實現(xiàn)了,但是到現(xiàn)在都還沒支持,可見有多坑了。就算是在RPC里你確實可以拿TMap當作參數(shù)傳遞,但是它有時候會被直接drop掉,服務器根本收不到client發(fā)的TMap。如果你真的需要用TMap,那我建議你自己寫個結構體放兩個數(shù)組,一個放key一個放value然后去replicate這個結構體(結構體里也不支持TMap的)。

3. 對于超大數(shù)組應該考慮用Fast Array Replication(FFastArraySerializer)

普通的TArray在很大的時候,如果其中某個元素改變了,那它可能是不會replicate的,這時候你該用FFastArraySerializer。

4. Steam Sockets 在ue4.26里 用戶無法正常通過steam網(wǎng)絡來加入一個session

我用steam sockets可以正常創(chuàng)建session,也可以被steam網(wǎng)絡找到,但是加入不了(log里的原因記不清了反正沒找到解決方法),最后是通過換成老的steam net driver才能正常加入session的(但是ping這個session時又有問題了,ping值9999。我在網(wǎng)上查了這個問題,epic那邊反饋是steam那邊的問題所以他們不管了)

5. 避免在多人聯(lián)機游戲里用Load Level Instance

Server上調(diào)用Load Level Instance后Client是看不見的。就算你multicast給所有人,每個人的level instance里的actor也都不是replicate的,找不到同步的方法,解決方法無。


UE4/5 實現(xiàn)多人聯(lián)機的經(jīng)驗教訓的評論 (共 條)

分享到微博請遵守國家法律
哈尔滨市| 郓城县| 礼泉县| 庄河市| 安新县| 沙雅县| 托克逊县| 望谟县| 大冶市| 金湖县| 天气| 南江县| 乌鲁木齐县| 三门县| 新平| 略阳县| 鱼台县| 东辽县| 穆棱市| 大余县| 滁州市| 宣化县| 乐东| 鄂州市| 甘孜| 鸡东县| 沂源县| 兴山县| 河北省| 乌拉特前旗| 铁岭县| 泗阳县| 娱乐| 松滋市| 中阳县| 揭西县| 从化市| 慈溪市| 津南区| 龙江县| 富顺县|