实现单账号多游戏的方法(Unity)

问题描述 投票:0回答:1

我目前正在 Unity 上开发 2 款不同的多人游戏,用户必须注册(并随后登录)才能玩。

我希望它的工作方式是只拥有一个帐户,因此只能注册一次,然后用同一个帐户玩两个游戏(想想《魔兽世界》、HS 等的《Battle.net》)。

当然,这两个游戏都有自己的特定物品、硬币等,这些物品会存储在它们的数据库中。 我需要的是一种建立数据库架构的好方法(我正在使用 SQL)。

我认为可以在后端使用单个数据库和一个表进行身份验证,然后为每个游戏使用多个表,但我看到了一些问题:

  • 单个数据库看起来已经与 2 个游戏混淆了,更不用说如果我想在未来添加更多游戏了
  • 如果一款游戏要受欢迎,我无法自行扩展其部分数据库,而是需要扩展整个数据库

另一种想法是使用一个专用于身份验证的数据库(使用用户的帐户),然后每个游戏使用一个包含对象、硬币等的数据库。这当然会使架构更加复杂。

我的担忧有道理吗?这两个想法之一是行业中的制造方式吗?还有更好的方法吗?这些是什么以及正确实施它们的方法是什么?谢谢大家!

database unity-game-engine architecture system-design
1个回答
0
投票

让我们以相反的顺序来处理您的问题:

还有更好的方法吗?这些是什么以及正确实施它们的方法是什么?

如果每个游戏都需要注册,并且使用相同的注册,那么注册应该与游戏分开。这可以防止这两个游戏重复注册功能。由于注册在逻辑上是独立的,因此数据也应该是独立的,这意味着您有一个存储玩家身份和 ID 的身份验证服务。然后在游戏中,为每个玩家存储这个ID。玩家使用其凭据对您的服务进行身份验证,并收到编码其玩家 ID 的JWT。这与游戏是如此不同,你可以直接购买现成的游戏。通过让游戏开发人员专注于游戏开发,您可以最大限度地提高制作成功游戏的机会。

这两个想法之一是行业中的制造方式吗?

是的,我上面描述的架构适用于游戏平台,如 Steam 和 Bethesda.net,但也适用于一般在线平台,如 Apple 和 Google。您无需单独注册 Gmail 和 Google 文档等服务。您注册并针对一项服务进行身份验证,然后允许访问许多应用程序。

我的担忧有道理吗?

是的,您的担忧是有道理的,但有一个例外:不用担心您的游戏会变得流行。这几乎不会发生:)

© www.soinside.com 2019 - 2024. All rights reserved.