天天看點

UE4 C/S模式推薦大家一個寫的很不錯的部落格(深入淺出UE4網絡):https://www.cnblogs.com/Leonhard-/p/6511821.html舉例講一下C/S模式:UE4啟動參數或者 bat腳本啟動

推薦大家一個寫的很不錯的部落格(深入淺出UE4網絡):https://www.cnblogs.com/Leonhard-/p/6511821.html

舉例講一下C/S模式:

用戶端負責表現、伺服器端負責資料。

  • 以掉血為例:

一、玩家A砍了B一刀

二、伺服器計算傷害,修改B的血量

三、把B的血量發給B,A砍B的動作發給所有能看到的玩家

四、用戶端播放掉血量(如果允許可見),播放動作

  • 以抽卡為例:

一、用戶端發起抽卡請求

二、伺服器端根據此玩家的消費、等級等随機産生一張卡牌

三、伺服器把結果發給用戶端

四、用戶端播放抽卡動畫,然後出結果。

  • 如何防外挂:

一、關鍵的計算,放在伺服器

二、伺服器做足驗證,超出正常人為水準就了解為外挂

三、有些隻能在用戶端計算,可以進行代碼混淆、資源加密

  • 語言選擇

一、技術線路的選擇,和需求、偏好、能力都有關

二、用戶端受限于引擎,Cocos(C++,Lua,JS),Unity(C#,Lua),UE4(C++,藍圖)

三、伺服器可選方案更多:C++、Python、Java、PHP

UE4啟動參數或者 bat腳本啟動

  • 監聽伺服器

  UE4Editor.exe ProjectName MapName?Listen -game -log

UE4 C/S模式推薦大家一個寫的很不錯的部落格(深入淺出UE4網絡):https://www.cnblogs.com/Leonhard-/p/6511821.html舉例講一下C/S模式:UE4啟動參數或者 bat腳本啟動
  • 專用伺服器

  UE4Editor.exe ProjectName MapName -server -game -log

UE4 C/S模式推薦大家一個寫的很不錯的部落格(深入淺出UE4網絡):https://www.cnblogs.com/Leonhard-/p/6511821.html舉例講一下C/S模式:UE4啟動參數或者 bat腳本啟動
  • 用戶端

  UE4Editor.exe ProjectName ServerIP -game -log

UE4 C/S模式推薦大家一個寫的很不錯的部落格(深入淺出UE4網絡):https://www.cnblogs.com/Leonhard-/p/6511821.html舉例講一下C/S模式:UE4啟動參數或者 bat腳本啟動

連接配接過程,主要步驟如下:

  •   用戶端發送連接配接請求。
  •   如果伺服器接受連接配接,則發送目前地圖。
  •   伺服器等待用戶端加載此地圖。
  •   加載之後,伺服器将在本地調用 AGameMode::PreLogin。這樣可以使 GameMode 有機會拒絕連接配接
  •   如果接受連接配接,伺服器将調用 AGameMode::Login, 該函數的作用是建立一個 PlayerController,可用于在今後複制到新連接配接的用戶端。成功接收後,這個 PlayerController 将替代用戶端的臨時 PlayerController (之前被用作連接配接過程中的占位符)。
  •   此時将調用 APlayerController::BeginPlay。應當注意的是,在此 actor 上調用 RPC 函數尚存在安全風險。您應當等待 AGameMode::PostLogin 被調用完成。
  •   如果一切順利,AGameMode::PostLogin 将被調用。這時,可以放心的讓伺服器在此 PlayerController 上開始調用 RPC 函數。