beiyu
0.38D
V2EX  ›  问与答

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

  •  1
     
  •   beiyu · Apr 13, 2020 · 2014 views
    This topic created in 2223 days ago, the information mentioned may be changed or developed.

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

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