查看原文
其他

配置+公告+白名单+邮件:小游戏开发者需要了解的服务器模块

曾嵘 曾嵘胡扯的地方
2024-10-10

本篇是 小游戏开发者需要了解的服务器模块 系列第二篇。下面的列表中,红色部分为本篇内容:

  1. 静默登录与绑定账号

  • 登录

  • 首次进入的静默登录处理

  • 静默登录与绑定账号

  • 配置+公告+邮件+白名单

    • 从服务器获取配置

    • 维护公告

    • 配置和开关

    • 白名单机制

    • 运营邮件

  • 正式服、审核服、测试服

    • 版本与更新机制

  • 数据同步和存储

  • 排行榜

  • 打点配置

  • 从服务器获取配置

    游戏配置分为客户端配置和服务端配置。区分哪些配置应该放在服务端,哪些配置应该放在客户端,是策划或者运营岗位的责任。

    但由于大部分小游戏团队没有专职运营岗位,而策划对软件工程和运营机制知之甚少,所以这个决策,很多时候都是由客户端程序做出的。

    但由于大部分客户端程序员对于策划和运营的工作知之甚少,所以这个决策,很多时候都推脱给了服务器程序员去做。

    但由于大部分服务器程序员对于策划、运营、客户端甚至游戏都知之甚少,所以这个决策,一般都会乱搞。

    我用这样2个朴素的规则判断配置如何分类:

    1. 用来救场的配置放在服务端。
      例如菜鸟策划或者草台班子运营把一个 RMB 648.00 的计费点配置成了 RMB 6.48(因为脑子正常的程序员会使用最小的货币单位分来表示货币但这个单位在理解上会让人变得不正常所以这种错误会正常出现),当然不能等到客户端打包过审才修复这个问题。尽管计费点也需要审核才能生效,但你至少可以通过服务端配置把这个错误的商品禁用。

    2. 经常变化的配置放在服务端。 很好理解,不解释。

    根据这2个朴素的标准,我会把这些配置放在服务端:

    1. 功能开关。

    2. 维护公告。

    3. 任务和成就配置。

    4. 商城配置。

    5. 邮件配置。

    以上仅供参考。

    我喜欢把功能开关、维护公告、通用配置放在一条协议中返回,这条协议名称为 /config

    上一篇 静默登录与绑定账号 讨论过的登录协议名称为 /login

    邮件内容是基于玩家信息构建的,因此独立一条协议: /mail

    现在我们有了3条协议,后面的讨论将围绕它们展开。

    维护公告

    真有研发团队认为,停服就是把服务器直接关掉让客户端进不来。

    对于这种无知,我感觉还挺可爱的。

    请记住下面的规则:

    1. 服务器默认是永远运行的。除非游戏客户端下架。

    2. 在手机或者游戏终端无法访问网络的时候,客户端要进行几次重试,重试失后给出正确的提示,然后提供手动重试的功能。

    3. 停服维护,是服务器告诉客户端要维护,客户端主动选择不继续游戏。

    4. 以上所有流程都是可控的。

    当然了,如果一定要关掉服务器,使用类似于挖断光缆这种不可抗力的方式来停服,也不是不可以……好莱坞科幻片里搞定不听话的人工智能或者机器人的最后一步不就是拔插头么!

    我倾向于这样处理维护公告:

    1. 维护公告内容合并到 /config 协议返回的内容中。

    2. 如果检测到返回包含维护公告内容,就无条件显示公告内容,界面中无关闭按钮。

    3. 玩家只可阅读公告,不能下一步。

    配置和开关

    处理完维护公告后,就该处理配置和开关了。它们都在 /config 协议中一同返回。

    配置 在上面的章节中已经介绍过,如何处理取决于客户端逻辑。

    此时,客户端一般会将存储在客户端中的配置与服务器获取的配置合并(一般采用服务端覆盖客户端配置中默认值的方式),然后将合并的配置常驻内存,供代码逻辑随时调用。

    开关 是游戏研发中常用的技巧。因为游戏在审核的过程中,很多功能不合规,需要在审核时隐藏。但游戏上线后,这些功能由需要对玩家开放。

    业界通用的工作方式就是配置开关,在游戏启动时返回,客户端根据开关的配置开启或者关闭对应的功能模块。

    这个是业界通用的方案,也是平台方和研发商心照不宣的规则。

    需要注意的是:平台不管,不代表平台不知道。平台暂时不管,不代表永远不管。平台不管别人,不代表不管你。

    毕竟因为开关和热更被永封的 Google/ Apple 开发者账号,我也亲身碰到过。

    白名单机制

    白名单机制用于游戏开发和运营人员,在游戏上线后,还可以对游戏进行调试。

    比如你不能让测试人员每天为了测试必须看完30个广告,或者充值10个648。

    白名单必须验证玩家身份,因此一个玩家是否位于白名单内,一般放在 /login 协议中返回。

    客户端如果判断玩家位于白名单中,会提供给玩家GM工具权限或者 充值不花钱看广告不浪费时间 等特权。

    运营邮件

    上面的章节讲到过维护公告不允许玩家继续操作游戏。

    如果我们需要通知玩家一些重要信息,但又不影响玩家继续游玩,就不能使用公告的形式。

    此时可以使用邮件。邮件也是一种运营手段。针对特定或者全体玩家的通知、补偿等均可采用邮件来发放。

    玩家 /login 成功之后,就可以调用 /mail 协议获得该玩家的邮件列表。

    邮件需要考虑下面的操作:

    1. 删除(同时领取)单条邮件。

    2. 删除(同时领取)全部邮件。

    3. 领取单条邮件。

    4. 领取全部邮件 .

    5. 邮件自动过期时间周期。

    我一般按照这样的方式对邮件列表进行排序:

    1. 未读的邮件,按发送时间倒序。

    2. 已读未领取的邮件,按发送时间倒序。

    3. 其后邮件按发送时间倒序。

    启动+配置+公告+登录+邮件完整流程图

    下面是游戏启动后,通过 /config 获取配置,使用 /login 登录,最后调用 /mail 展示邮件列表的完整流程图。其中:

    1. 紫色背景的进程代表启动或终止。

    2. 红色背景的进程代表网络调用。

    3. 黄色背景的菱形进程代表条件判定。

    https://civitai.com/images/18981431

    特别介绍

    有很多重要内容,公众号发不了,但群里特别能聊。

    群里有独立开发者,游戏公司创始人、大厂负责人、量子理论研究者……

    关注公众号可以进群一起唠嗑,独立游戏、商业游戏、流量游戏、研发、投放、发行、运营、招人 都能聊,纯唠嗑也欢迎。



    下面几个系列文章花了不少精力,可以读一读:


    创业系列:



    效率系列:



    产品分析:


    立项系列:



    混变系列:


    运营系列:

    成长系列:

    会议系列:

    奇技淫巧:

    荐号系列:


    电子游戏是怎么赚钱的:


    再多读几篇:


    都刷到这里了,不来个「点赞」「分享」「在看」一键三连吗?

    个人观点,仅供参考
    继续滑动看下一个
    曾嵘胡扯的地方
    向上滑动看下一个

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存