【问题标题】:Server Storing Variables For Each Client服务器为每个客户端存储变量
【发布时间】:2014-10-13 05:12:28
【问题描述】:

我最近开始在 Unity 中处理多人游戏。我没有使用 Photon Unity Networking,而是使用 Unity 中的内置网络。

在我尝试创建的游戏中,每个玩家都有自己的金钱和库存变量。我最初的计划是在客户端存储这些变量,但我意识到这是一个坏主意。

在服务器上存储这些变量(如货币和库存)的最佳方式是什么?我尝试在服务器上创建一个“播放器”类,并为每个连接的播放器创建一个该类的实例。然而,经过几天的研究和实验,我无法找到成功的方法。

我确信这是多人游戏的常见概念。所以我想知道是否有人可以为我指出正确的方向。

【问题讨论】:

    标签: networking unity3d multiplayer


    【解决方案1】:

    我们选择这样做的方式是创建一个非常基本的 Web 服务 (REST),服务器(并且仅服务器)可以与之通信。

    Web 服务是用 Perl 编写的,使用 MongoDB 作为存储后端,但这里的选项几乎是无穷无尽的,因此请使用您认为最适合您的任何内容。

    【讨论】:

    • 我很抱歉。我的问题可能不清楚。我指的是在客户端连接时让服务器存储客户端的变量。例如,假设一名玩家在游戏中有 500 美元。如果客户端想要进行购买,而不是简单地减去货币价值并将物品添加到玩家的库存中,我希望客户端向服务器发送一个 RPC 指定玩家想要购买的东西。这笔钱将被扣除,并且该项目将被添加到存储在服务器上的列表中。这样一来,就无法简单地通过修改玩家的客户端来“生成”物品。
    • 我坚持我的回答。 :) 我知道你想要一个权威的服务器或某种类型的服务器,后端 REST 服务非常适合这个。客户端告诉服务器“这个玩家想买这个”,服务器然后检查它是否正常,如果它更新玩家的钱和库存。然后服务器和客户端同步玩家的库存和货币价值。
    • 啊,好吧。我会检查一下。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多