美文网首页
UE4学习005——GamePlay 框架初探(联网版猜数字)

UE4学习005——GamePlay 框架初探(联网版猜数字)

作者: cdf02aaf6ae2 | 来源:发表于2018-08-06 15:52 被阅读49次

联机版游戏

书接上回,这次我们给上个版本的猜数字添加联网功能。

最终项目地址 002GuessNumberMultiPlayer

初始界面

注意

点击 Play 边上的小箭头打开选项

  • Number of players 输入 2
  • 不要勾选 Run dedicated Server
  • Advanced Settings 打开高级选项,不要勾选 Multiplayer Options 部分的 Auto Connect To Server

点击 Play,一个窗口中点击创建服务器,另一个点击加入游戏,开始体验

项目配置

如果使用引擎自带的联网功能,首先要在 DefaultEngine.ini 中添加如下配置
参考官方示例:多人连线的枪战游戏

[OnlineSubsystem]
DefaultPlatformService=Null

更多注意事项参见前文

从属关系

从编辑器中就可以看出,Level 负责 GameMode 实例的生成,GameMode 负责 GameState 实例的生成。

知道这一点很重要,这样你就会理解,虽然你可能只配置了一种 GameMode,但在关卡切换的过程中,会有不同的 GameMode 以及 GameState 的实例生成。你才会意识到管理你的游戏数据的这些类实例的生命周期。你才能理清你必要的游戏流程。

另外要注意的是,在 Server-Client 模式的联机游戏中,GameMode 实例只有一个,存在于 Server 中,作为一个可信实体,管理核心的游戏规则逻辑。

事件复制

本 Demo 中的网络功能使用引擎封装好的 RPC 功能——事件复制。

蓝图中的代码只有事件是可以在网络上复制的,这里复制的含义是在客户端调用而在服务端执行,或才相反。底层其实就是一端调用了另一端的一个 RPC 接口方法,UE4 隐藏了这些底层细节,你只需要修改事件的 Replicates 属性即可。

还有一点要注意的是,一般概念上的 RPC 是单向的,只能是客户端调用服务端,而 UE4 事件复制的 RPC 是双向的,亦即服务端也可以调用客户端。

注意

  • 一定要记得勾选 Reliable
  • 正式的开发中核心逻辑执行前要用 Switch Has Authority 节点检查安全有效性

相关文章

网友评论

      本文标题:UE4学习005——GamePlay 框架初探(联网版猜数字)

      本文链接:https://www.haomeiwen.com/subject/hkdhvxtx.html