UE5&C++ 多人 TPS 游戏(三)

UE 的在线子系统(Online SubSystem)简单理解

1. IP 地址

先前使用的是,局域网下路由器分配的本地 IP;只有同一局域网下才能连接这些 IP
image

本地 IP 可以通过路由器、光纤连接至互联网,通常是提供宽带服务的供应商(移动、电信、联通)配置这些线路和 外部 IP,即通过 ISP(Internet Service Provider) 分配的 外部IP 互联外部。
image

所以,线上多人游戏需要通过 外部 IP 互联。
image

2. Online SubSystem

IP 连接,每次都要自己去找、去设置吗?

其实,每个厂商都提供了一些联网服务,包括:Steam、Xbox、Live、Facebook 等,我们的游戏需要连接这些服务之一。
image

然而,如果为了适配每一个服务,都要去熟悉和书写一套联网代码的那将太过繁琐。所以,UE 提供 抽离了具体平台的网络服务代码,即用抽象层 Online SubSystem 来解决这种问题。

所以,我们需要编写一套代码适配多个网络服务;玩家进行游戏时,只需要点击一个按钮,就可以自动联网匹配玩家,而非手动输入 IP
image

最好的处理方式:做成 插件(Plugin),以后多人线上游戏可以直接使用。
image

3. Online Sessions

image
Session Interface 主要负责管控 Session;一个 Session 就是一个游戏实例。

3.1 Session 的生命周期

image

Session Interface 主要关心 创建、寻找、加入、开始、销毁 Session。
image

3.2 游戏内设计

image

  • 点击主持 Host -> Interface 配置创建 Session -> 进入匹配大厅;
  • 点击加入 Join -> Interface 配置寻找 Session -> 选择加入 Session -> 通过取得的 IP 进行连接。

下节开始编写配置一个 Steam 网络服务的项目并测试。
之后一步步把处理网络会话的函数包装为一个专门处理 Session 的

下一节:UE5&C++ 多人 TPS 游戏(四)

posted @ 2024-04-17 16:56  bok_tech  阅读(101)  评论(0)    收藏  举报