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

2020-04-13 13:57:49 +08:00
 beiyu

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

1251 次点击
所在节点    问与答
6 条回复
favourstreet
2020-04-13 14:16:31 +08:00
这位策划自己的工作请自己完成[滑稽]客户端免费的计算能力不香吗,为什么让自己的服务器干活
mcfog
2020-04-13 15:26:03 +08:00
一个复杂度是 O(日活)另一个是 O(注册)你觉得呢
mizzle
2020-04-13 15:31:31 +08:00
服务端存上一次访问时的时间和存量。
登录时发给客户端。
用户查看时客户端自己算。
交互时服务端结算。
Vdream
2020-04-13 15:42:16 +08:00
@favourstreet 客户端修改自己本机时间咋办
LucasW
2020-04-13 18:26:12 +08:00
假如你是款农场养成类游戏,分为在线产出收入和离线产出收益,两种收益方式产出额不一样,你需要这样做:
1 、服务器与客户端之前有 ping-pong 通信或帧同步,或其他方案,能拿到玩家上线和下线时间戳;
2 、玩家上线固定收益、操作收益由客户端定时器计算,服务端校验;
3 、玩家离线收入由服务端根据上次离线时间与离线产出比计算返回给客户端;
4 、假如你是随机类收益,如类 moba 暴击,上线、开始时直接发送给客户端随机种子,保证收益数据固定,单位时间或者节点服务端校验。
beiyu
2020-04-13 19:32:11 +08:00
#5 感谢方案。目前有些许思路了,正在尝试。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX