您想找什么?
Games

用Netcode for GameObjects制作成品级多人游戏

SAMUEL BELLOMO Netcode Engineer
Apr 5, 2023|5 Min
用Netcode for GameObjects制作成品级多人游戏
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

您是否在用Unity制作多人合作游戏?我们为您提供完美的按需资源:Multiplayer团队推出的四部分网络研讨会系列 – 现已在 YouTube上发布。本系列深入探讨 Boss Room 示例游戏,探索如何使用Unity和 Netcode for GameObjects构建可投入生产的多人游戏。

1.了解基本的游戏实现和服务器权限

制作多人游戏并不仅仅是调用些API。第一场讲座介绍了开发多人游戏时为玩家引入互联网这种混乱的技术的最佳做法和建议。

我们聊到了:

  • 什么是Netcode for GameObjects(NGO)和Unity Gaming Services(UGS)?
  • NetworkVariables对比RPC及选择两者的原因
  • 什么是权威及优先选择服务器权威的理由
  • 应对延迟的移动和客户端权威(Client Authority)等其他模型,及寻路移动的优化技巧
  • 基本游戏结构及State(netvar、network list)和RPC的使用方法
2.构建角色能力、生成和场景对象

第二集介绍了 Boss Room 中角色能力的实现以及如何在游戏中实现能力。

我们深入讨论了:

  • 服务器驱动技能的总体实施流程
  • 可靠性与不可靠RPC的含义
  • 近战攻击与可能出现的动画问题
  • 坦克护盾功能及环境互动
  • 弓箭手充能射击与范围效果(AOE),持续在客户端读取输入
  • 法师炎之箭和带宽的使用
  • 技能系统的总架构

我们还探讨了:

  • 动态生成的对象
  • 生成静态的场景放置对象
  • 生成可摧毁的场景放置对象
  • 后期加入时小怪们带来的教训
  • 对象池等的自定义生成逻辑,及怎样将其整合至NGO
3.让你的多人游戏能够适应你的玩家

在第三场,我们覆盖了更多游戏实施细节,然后深入讨论了怎样让多人游戏更为耐玩。

我们探讨了:

  • 物理互动、对象与父子关系、场景与场景管理
  • 使用 RelayLobby 将您的游戏带到线上,以及为什么您不能使用 NGO 来加入玩家
  • 用NGO和自定义序列化来同步选角界面
  • 让游戏能应付玩家的加入和离开,及重连流程、后期加入、断连和连接超时
  • 应对静态条件及需要完成的各种测试
4.优化带宽和游戏开发流程

在最后一场,我们探讨了多人游戏开发的最佳做法。

这一场涵盖了:

  • 带宽优化和分析工具,NetworkTransforms优化及其他提示
  • 联网条件模拟器、数据监测和自定义调试等调试工具
  • 项目架构(动作系统、玩家架构等)
  • Boss Room的未来
开启多人游戏开发

已经看完了?分享您的反馈,以便我们将来可以计划更好的会议。

如果您打算用Unity和Netcode for GameObjects开启下一个多人游戏项目,这里有些实用的上手资源:

对Unity的多人游戏开发抱有疑问或希望反馈?欢迎随时加入 Discord论坛上的讨论。