基于 UNET 的原始版本 CCG Kit 包括一个对抗机器人的单人游戏模式,该模式是使用 UNET 的沙发多人游戏功能构建的。这非常方便,因为它使得在套件的现有多人游戏架构中运行单人游戏模式成为可能(没有单独的代码库)。不幸的是,随着套件迁移到 Mirror,由于 Mirror 移除了沙发多人游戏,相同的方法在技术上不再可行。这意味着在基于 Mirror 的套件版本中有两种选项可以提供单人游戏功能:
- 重新构建套件的整个网络架构以支持机器人,这本质上意味着保持一个单独的单人游戏代码库。
- 使单人游戏模式基于具有一个单独的后台进程,该进程充当离线客户端,因此使用与多人游戏完全相同的网络架构。
从套件的 2.1.0 更新开始,我们包含基于后一个选项的单人游戏模式。虽然在后台为机器人设置一个单独的 Unity 进程听起来像是一种“hacky”的方法,但它使我们能够在单人游戏和多人游戏模式中保持相同的代码库,并避免了完全重写套件经过实战考验的网络架构的需要。
如何使用单人游戏模式
首先需要构建机器人二进制文件。这只需要两个场景,Bot 和 Game。我们建议对机器人使用“专用服务器”生成选项,因为此二进制文件不需要视觉表示。
构建了机器人二进制文件后,您现在可以正常玩游戏并在大厅屏幕中选择“单人游戏”选项:
一旦加载弹出窗口出现,您只需要启动机器人二进制文件,它就会自动加入玩家进行 1v1 比赛。
扩展单人游戏模式
内置的单人游戏模式主要用于展示如何构建一个机器人,该机器人可以与套件的现有网络架构无缝集成,并作为一种无需两名玩家即可测试游戏的便捷方式。它无意展示极其先进的人工智能或故事模式。请注意,机器人的逻辑与我们在基于 UNET 的原始套件版本中使用的逻辑完全相同。
如果您想使用包含的机器人作为在游戏中构建自己的单人游戏/故事模式的起点,您要做的第一件事就是让机器人二进制文件的启动在后台自动且透明地发生。默认情况下,我们不会这样做,因为我们无法假设您最终将如何向玩家部署您的游戏。从 Unity 应用程序内部启动外部进程的最简单方法是通过 Process.Start,这样您就可以在游戏中部署两个二进制文件,并让主游戏客户端在适当的时间(即,当玩家选择单人游戏/故事模式时)自动启动机器人进程。