V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beiyu
V2EX  ›  问与答

在游戏开发中,关于涉及到"时间"与"产出"的,请问该如何设计?

  •  1
     
  •   beiyu · 2020-04-13 13:57:49 +08:00 · 1392 次点击
    这是一个创建于 1687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    游戏中拥有类似 [农田] 的建筑,该建筑每小时的产量是 [x] 。那么就需要每隔指定时间(不一定是一小时),为玩家添加 [x] 份资源。
    请问添加资源这个步骤,是由玩家客户端定时器发送资源结算请求,还是由游戏服务器定时器直接结算,还是有更好的处理方法呢?

    6 条回复    2020-04-13 19:32:11 +08:00
    favourstreet
        1
    favourstreet  
       2020-04-13 14:16:31 +08:00 via Android
    这位策划自己的工作请自己完成[滑稽]客户端免费的计算能力不香吗,为什么让自己的服务器干活
    mcfog
        2
    mcfog  
       2020-04-13 15:26:03 +08:00 via Android
    一个复杂度是 O(日活)另一个是 O(注册)你觉得呢
    mizzle
        3
    mizzle  
       2020-04-13 15:31:31 +08:00   ❤️ 1
    服务端存上一次访问时的时间和存量。
    登录时发给客户端。
    用户查看时客户端自己算。
    交互时服务端结算。
    Vdream
        4
    Vdream  
       2020-04-13 15:42:16 +08:00
    @favourstreet 客户端修改自己本机时间咋办
    LucasW
        5
    LucasW  
       2020-04-13 18:26:12 +08:00   ❤️ 1
    假如你是款农场养成类游戏,分为在线产出收入和离线产出收益,两种收益方式产出额不一样,你需要这样做:
    1 、服务器与客户端之前有 ping-pong 通信或帧同步,或其他方案,能拿到玩家上线和下线时间戳;
    2 、玩家上线固定收益、操作收益由客户端定时器计算,服务端校验;
    3 、玩家离线收入由服务端根据上次离线时间与离线产出比计算返回给客户端;
    4 、假如你是随机类收益,如类 moba 暴击,上线、开始时直接发送给客户端随机种子,保证收益数据固定,单位时间或者节点服务端校验。
    beiyu
        6
    beiyu  
    OP
       2020-04-13 19:32:11 +08:00
    #5 感谢方案。目前有些许思路了,正在尝试。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1007 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.