(对不起,看起来很长,实际上在上下文中确实很短)
您好,我是网络编程和概念的新手。但是我之前和PUN一起工作了好几次。我熟悉PUN同步事物的方式。 RPC和序列化等。
我希望实现一个完全权威且未来可扩展的服务器架构,该架构可在专用服务器中运行,并为客户管理房间/大厅服务。我正在计划的服务器架构类似于Rust / ARK / Hurtworld等游戏。但是游戏将包括7v7匹配(不像他们一样100,最多15个),但也会有改变世界的机制。 (比如通过采矿等方式建造世界或改变地形)。游戏玩法在视觉效果上会像Rust一样,但机制会有所不同。但是服务器架构应该与那些游戏非常相似。这意味着它不会是Peer to Peer。
开始:“我知道”我必须将Photon Server用于这些类型的事情。所以我可以编码服务器端逻辑吗?权威架构,持久世界,用户和世界数据库,服务器管理所有这些都应该在服务器端完成,如果我没有弄错的话。然而正如我在开始时所说的那样,我之前只使用过PUN,而且我所知道的只有客户端 - 服务器架构是:一个受信任的客户端(用户)主持游戏而其他人加入他。
现在。我可以学习Photon Server和服务器端编程。 (地狱,甚至现在开始学习它。它有点类似于PUN的工作方式。操作和事件而不是RPC等)但是,为了创建一个持续的服务器架构,我必须深入学习和实践它。含义:我需要深刻的知识来创建商业产品服务器。
因此,对于游戏的初始原型设计阶段,我不想将我的工作量集中在学习和创建Photon Server上。相反,我提出了一个想法。
如果我在专用服务器中创建Unity实例,创建(主机)具有PUN(云)的房间,该怎么办?世界各地的其他玩家加入这些主办的比赛?专用服务器只是主持游戏并让其他玩家加入游戏的“非玩家”主客户端。而且服务器本身也是如此。
因此,我将创建一个独立的“仅服务器”Unity项目文件,该文件可以管理服务器,管理数据库,创建和维持持久世界。不在用户客户端中的所有功能都可以在服务器(主机/主站)客户端的项目中。我可以在专用服务器中管理所有这些。
所以要澄清:一个“特殊的”统一项目,它运行游戏模拟,管理世界,管理数据库,管理玩家,管理一切并运行一切,将成为主客户端。将举办游戏。而“客户”统一项目将加入到这个游戏中,并将“发送”权威架构的输入。服务器将“接受”这些输入,模拟它并将其发送回客户端。
更清楚一点:Photon Server应处理的所有内容都将由PUN和Cloud中继服务器,RPC和Serialize功能处理。所以我不会通过服务器编程来惹恼我的工作量。双赢。正确?
我知道,这可能不是最好的解决方案。我还没有找到任何关于它的文件/主题。所以开始时可能是一个非常愚蠢的想法。但我想知道。如果我从这种类型的架构开始,当我通过原型阶段时,将服务器端的Photon Server实现起来会很容易吗?遵循这种方法会容易和有效吗?或者我应该停止我正在做的事情,并开始学习Photon服务器?
答案 0 :(得分:0)
如果你需要原型,你可以用任何方便的方式来做。但如果你开始开发真正的产品,这根本不是解决方案。
为了让开发人员更轻松,我们引入了插件。你可以尝试从他们开始。如果在某些时候你发现这对你来说还不够,你可以扩展PhotonServer。
最后一点,我们(PhotonTeam)和社区肯定会在这里或我们的论坛上为您提供帮助。 最好, Photonians