五月天青色头像情侣网名,国产亚洲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)驗教訓的評論 (共 條)

分享到微博請遵守國家法律
日照市| 中超| 长治市| 紫金县| 鹤庆县| 仙桃市| 舞钢市| 汉中市| 大渡口区| 商水县| 康平县| 高尔夫| 城固县| 冀州市| 神木县| 宣城市| 永仁县| 自贡市| 扎囊县| 富源县| 察雅县| 府谷县| 视频| 鹤庆县| 开化县| 神池县| 黎川县| 娄底市| 葵青区| 修水县| 淄博市| 裕民县| 通化市| 涪陵区| 望奎县| 齐齐哈尔市| 常山县| 大竹县| 疏勒县| 东丽区| 武乡县|