0

我的想法是制作一个可以单人或多人玩的简单 2D 游戏。这个概念很简单:创建游戏的是主机,加入的是客户端。

问题/问题: 1. 启动这样一个项目的先决条件是什么?2. Unity 如何处理基于服务器-客户端的情况?3. 是否可以通过编写脚本手动实现联网?(不使用 3rd 方库和包)

4

2 回答 2

1

好吧,您首先需要定义如何将这些玩家完全连接起来。如果我要做那个游戏,我会拥有某种后端服务,作为所有玩家的共同点。

但是,拥有后端服务器是不够的。你必须有一个实时代理来玩游戏(除非你想要的游戏是回合制系统)。这将确保每个玩家与您的游戏同步。

总的来说,如果你不得不问这些问题,那么我认为你还没有准备好接受这种范围。好吧,当然,如果您渴望这样做,以下是您的答案:

  1. 先决条件是后端服务器(支持套接字)、实时代理、多人系统架构设计(不确定这是否是术语。基本上你需要设计某种系统来定义什么,在哪里,以及数据将如何相互交互,即谁将是主机、服务器或玩家?)

  2. Unity 的工作方式取决于您希望它如何工作。您可以使用 UNet 或 Photon 作为您的实时代理。(相信我,这不是你想要自己做的事情)。

  3. 是的,只要你有头脑,你就可以。您可以使用 .NET 网络类并使用 .NET 的网络 API 自由连接到您的后端服务(您自己的后端)。我只会将它用于我的后端的 REST API,而不是其他任何东西。

同样,您更愿意使用一些东西,例如 Gamesparks、Playfab、UNet、Photon 等。我建议您先尝试看看您需要什么,然后看看这些后端服务/实时服务是否有它。如果他们不这样做,那就是你自己做的时候了。

于 2019-10-19T15:04:17.327 回答
1

无论您是制作 2D 还是 3D 游戏,多人游戏的主要内容是 BaaS(后端即服务)。您可以使用您喜欢的服务器端语言和数据库编写自己的自定义后端,但长期管理起来确实很困难。因此,我们可以通过使用一些最好的 BaaS 来快速快捷地做到这一点。

这是清单。

  1. 预制件
  2. 游戏火花
  3. 光子

还有更多在这里

您可以按照他们的文档简单地下载他们的 SDK 并导入到您的统一项目中。

于 2019-11-04T09:14:19.080 回答