五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)驗教訓的評論 (共 條)

分享到微博請遵守國家法律
辽阳县| 西昌市| 依安县| 边坝县| 峨眉山市| 盐津县| 惠东县| 周至县| 美姑县| 清苑县| 布拖县| 阳泉市| 景洪市| 将乐县| 兰坪| 昌图县| 金阳县| 巴马| 宜阳县| 东丽区| 舞钢市| 南宁市| 邢台市| 定陶县| 海淀区| 全南县| 迭部县| 长兴县| 南丹县| 台南县| 蚌埠市| 惠州市| 南漳县| 洱源县| 正定县| 青海省| 突泉县| 奉贤区| 新泰市| 翁源县| 武胜县|