UE4服务器模式

UE4 架构在构建时就充分考虑了多人游戏因素。只要您遵守基本的架构原则,通常就无需太费事即可将单人游戏体验扩展为多人游戏。

UE4 网络连接是基于服务器/客户端模式构建。也就是说,这个模式中有一个担当主控(authoritative)的服务器端(做出所有重要决定),用于确保所有连接的客户端可以持续更新,以便其持续获得服务器环境的最新近似复本。

Actor

在单人游戏体验中,actor 被用于呈现游戏世界。而在多人游戏中,这一点丝毫没有变化,只不过客户端将获得每个 actor 的近似复本,而服务器将保持主控(authoritative)版本。

Actor 是服务器让客户端保持最新的主要途径。当服务器需要更新特定的客户端时,服务器将收集所有的相关 actor(也就是其认定在上次更新后发生变化的 actor),然后向客户端发送足够的信息,以便让这些 actor 保持最新状态。

启动服务器

监听服务器

UE4Editor.exe ProjectName MapName?Listen -game

专用服务器

UE4Editor.exe ProjectName MapName -server -game -log

客户端

UE4Editor.exe ProjectName ServerIP -game

连接过程

主要步骤如下:

  1. 客户端发送连接请求。

  2. 如果服务器接受连接,则发送当前地图。

  3. 服务器等待客户端加载此地图。

  4. 加载之后,服务器将在本地调用 AGameMode::PreLogin。

    • 这样可以使 GameMode 有机会拒绝连接

  5. 如果接受连接,服务器将调用 AGameMode::Login

    • 该函数的作用是创建一个 PlayerController,可用于在今后复制到新连接的客户端。成功接收后,这个 PlayerController 将替代客户端的临时 PlayerController (之前被用作连接过程中的占位符)。

    • 此时将调用 APlayerController::BeginPlay。应当注意的是,在此 actor 上调用 RPC 函数尚存在安全风险。您应当等待 AGameMode::PostLogin 被调用完成。

  6. 如果一切顺利,AGameMode::PostLogin 将被调用。

    • 这时,可以放心的让服务器在此 PlayerController 上开始调用 RPC 函数。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值