【问题标题】:Photon Server vs Dedicated Master Client with PUN光子服务器与带 PUN 的专用主客户端
【发布时间】:2017-05-26 19:55:29
【问题描述】:

(对不起,这篇文章看起来很长,实际上它的上下文真的很短)

您好,我是网络编程和概念方面的新手。不过,我之前曾多次与 PUN 合作过。我熟悉 PUN 同步事物的方式。 RPC和序列化等

我想实现一个完全权威且未来可扩展的服务器架构,该架构在专用服务器中工作并为客户管理房间/大厅服务。我计划的服务器架构类似于 Rust/ARK/Hurtworld 等游戏。但是游戏将包含 7v7 比赛(不像他们那样 100 人,最多 15 人),但也会有改变世界的机制。 (比如为世界建造一些东西或通过采矿改变地形等)。游戏玩法在视觉上类似于 Rust,但机制会有所不同。但是服务器架构应该与那些游戏非常相似。这意味着它不会是点对点。

首先:“我知道”我必须使用 Photon Server 来处理这些类型的事情。所以我可以对服务器端逻辑进行编码吗?如果我没记错的话,权威架构、持久化世界、用户和世界数据库、服务器管理所有这些都应该在服务器端完成。然而,正如我在开始时所说的那样,我之前只使用过 PUN,并且我所知道的唯一客户端-服务器架构是:一个受信任的客户端(用户)托管游戏,其他人加入他。

现在。我可以学习 Photon Server 和服务器端编程。 (见鬼,现在甚至开始学习它。它的工作方式有点类似于 PUN 的工作方式。操作和事件而不是 RPC 等。)但是,要创建一个持续的服务器架构,我必须深入学习和实践它。含义:我需要深厚的知识来创建一个商业产品服务器。

因此,对于游戏的初始原型设计阶段,我不想将工作量集中在学习和创建 Photon Server 上。相反,我想出了一个主意。

如果我在专用服务器上创建 Unity 实例,会创建(托管)带有 PUN(云)的房间。世界各地的其他玩家也会加入这些主办的比赛吗?专用服务器只是托管游戏并让其他玩家加入游戏的“非玩家”主客户端。而且还自己做服务器的东西。

因此,我将创建一个独立的“仅服务器”Unity 项目文件,它可以管理服务器、管理数据库、创建和维持持久性世界。所有不在用户客户端中的功能,都可以在服务器(主机/主)客户端的项目中。我可以在专用服务器中自行管理所有这些。

所以澄清一下:运行游戏模拟、管理世界、管理数据库、管理玩家、管理一切和运行一切的“特殊”统一项目将是主客户端。将主持比赛。并且“客户端”统一项目将加入这个游戏,并将“发送”权威架构的输入。服务器将“接受”这些输入,对其进行模拟并将其发送回客户端。

进一步澄清:Photon Server 应该处理的所有内容都将由 PUN 和云中继服务器、RPC 和序列化函数处理。所以我不会用服务器编程来忙我的工作量。双赢。对吧?

我知道,这可能不是最好的解决方案。我还没有找到任何关于它的单一文档/主题。所以这可能是一个非常愚蠢的想法。但我想知道。如果我从这种类型的架构开始,当我通过原型阶段时,将 Photon Server 实现到服务器端是否容易?遵循这种方法是否容易且工作效率高?还是我应该停下手头的工作,开始学习 Photon 服务器?

【问题讨论】:

  • 您需要使用 Photon 吗?有一个有趣的 UNET Framework,它具有您在 Asset Store 中需要的功能。
  • 您好,请问您的解决方案是什么?我正在尝试做类似的事情,在服务器上托管一个统一实例,但我只使用 UNET。

标签: networking unity3d server multiplayer photon


【解决方案1】:

如果您需要制作原型,您可以以任何适合您的方式进行。但如果你开始开发真正的产品,这根本不是解决方案。

为了让开发者的生活更轻松,我们引入了插件。您可以尝试从它们开始。如果在某些时候你发现这对你来说还不够,你可以扩展 PhotonServer。

最后,我们 (PhotonTeam) 和社区肯定会在这里或在我们的论坛上为您提供帮助。 最好的, 光子学

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2019-03-18
    • 1970-01-01
    • 2011-08-07
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多