Networking 光子服务器与带双关语的专用主客户端

Networking 光子服务器与带双关语的专用主客户端,networking,unity3d,server,multiplayer,photon,Networking,Unity3d,Server,Multiplayer,Photon,(很抱歉,这篇文章看起来很长,实际上内容很短) 你好,我是网络编程和概念方面的新手。然而,我以前曾多次使用双关语。我熟悉用双关语同步事物的方法。RPC和序列化等 我希望实现一个完全权威且未来可扩展的服务器体系结构,该体系结构在专用服务器中工作,并为客户管理房间/大厅服务。我计划的服务器架构类似于Rust/ARK/Hurtworld等游戏。不过,游戏将包括7v7比赛(不是像他们那样的100ish,最多15场),但也将有改变世界的机制。(比如建造一些东西以适应世界或者通过采矿改变地形等)。游戏在视觉

(很抱歉,这篇文章看起来很长,实际上内容很短)

你好,我是网络编程和概念方面的新手。然而,我以前曾多次使用双关语。我熟悉用双关语同步事物的方法。RPC和序列化等

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

首先:“我知道”我必须使用光子服务器来处理这类事情。所以我可以编写服务器端逻辑,对吗?权威架构、持久化世界、用户和世界数据库、服务器管理——如果我没有弄错的话,所有这些都应该在服务器端完成。然而,正如我在开始时所说,我以前只使用过双关语,我知道的唯一客户机-服务器体系结构是:一个受信任的客户机(用户)主持游戏,其他人加入他

现在。我可以学习光子服务器和服务器端编程。(见鬼,甚至现在就开始学习了。它的工作原理有点类似于双关语。操作和事件,而不是RPC等)。然而,要创建一个持续的服务器体系结构,我必须深入学习和实践它。意思:我需要渊博的知识来创建一个商业产品服务器

因此,对于游戏的初始原型阶段,我不想将工作重点放在学习和创建光子服务器上。相反,我想出了一个主意

如果我在专用服务器中创建Unity实例,用PUN(云)创建(主机)房间,会怎么样。世界各地的其他玩家也加入到这些主办的比赛中?专用服务器将只是“非玩家”主客户端,托管游戏并让其他玩家加入游戏。而且服务器本身也做一些事情

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

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

进一步澄清:光子服务器应该处理的所有事情都将由PUN和云中继服务器、RPC和序列化功能处理。所以我不会用服务器编程来增加我的工作量。双赢。对吧?


我知道,这可能不是最好的解决办法。我没有找到任何关于它的文档/主题。因此,这可能是一个非常愚蠢的想法开始。但我想知道。如果我从这种类型的架构开始,当我通过原型阶段时,实现光子服务器到服务器端是否容易?遵循这种方法是否容易且工作效率高?或者我应该停止我正在做的任何事情,开始学习光子服务器吗?

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

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

最后一件事,我们(PhotonTeam)和社区肯定会在这里或在我们的论坛上帮助你们。 最好的,
光子仪

您需要使用光子吗?有一个有趣的UNET框架,它具有您在资产存储中需要的功能。嗨,我可以知道您使用的解决方案是什么吗?我试图做一些类似的事情,在服务器上托管一个unity实例,但我只使用UNET。