游戏邮箱系统设计

简介

在玩游戏的过程中,邮箱绝对是玩家喜欢的东西,邮箱代表着有新的更新说明,或者官方发放的奖励。特别是一键领取,看着亮晶晶的奖励不停弹出,那叫一个心情愉悦。但是对于服务器来说,邮件带来的负担可不小,需要小心设计。

功能需求

邮件系统一般有3个需求。

  • 全服邮件。维护补偿,节日奖励等,需要发给每一个玩家。玩家不能重复领取。
  • 个人邮件 。对特定的玩家发邮件,一般为 bug发现奖励,充值未到账 补发物品等。只需要发给特定的玩家。邮件内物品在不同的情况有很大不同,且不会提前知道要发此邮件。
  • 多人邮件。一般用于排行榜奖励发放,论坛幸运玩家奖励。涉及多个玩家且奖励固定并预先知晓。

糟糕的设计方案

一种直觉的设计方案就是: 我要发一封邮件给哪个玩家,只要给数据库插入一条对应的邮件数据就可以了。
对于个人邮件来说,这样很OK。对于多人邮件来说,勉强也可以。但是对于全服邮件,比如这个服务器有100万玩家,就要往数据库插入100万条邮件数据,会严重影响数据库性能导致服务器延迟增大甚至不可用。

改进的设计方案

我们需要改进的是全服邮件的发放时机,不能在运营发送维护补偿邮件时就添加大量数据。需要安排一个添加数据的时机。

  • 分而治之: 对于离线玩家,不需要马上插入邮件数据,一个很好的时机是在该玩家登录时。
  • 减而治之: 对于在线玩家,需要广播通知玩家有新邮件并执行插入,当在线玩家数量很多,需要分批次广播,以分摊压力。

这样就把繁重的插入工作分摊到不同的时间段进行,保证服务器稳定流畅。

深入细节

系统邮件,在运营发送时,保存一封在数据库的系统邮件表中,通用数据结构如下:

列名说明
id自增的id
titile标题
content内容
rewards奖励
filter过滤条件,比如玩家领取最低等级,过期时间

注意这里的自增id,用于保证玩家不会重复领取。

离线玩家登录过程中,检查系统邮件,检查过滤条件,并对比自身已领取最大系统邮件id,这里记为max_received_sysmailid, 如果有系统邮件的id大于max_received_sysmailid,则将此邮件转换为玩家的个人邮件,插入到玩家的个人邮件表中。并将max_received_sysmailid设置为当前系统邮件id。

在线玩家分批次检查过滤条件,并将此系统邮件转换为玩家个人邮件,插入到玩家的个人邮件表中,然后通知该玩家有新邮件。并将max_received_sysmailid设置为当前系统邮件id。

max_received_sysmailid可以单独建表存储,也可以集成在玩家个人信息表中。

对于多人邮件,既可以按个人邮件那样实时分批次直接插入,也可以像系统邮件一样对比id,和过滤条件发放。(建议按系统邮件方式)

功能优化

对于全服邮件,特别是有几百个文字的补偿说明,在每个玩家领取后都会存一份,这样会造成大量的数据冗余,对于 缓存和数据库来说都很不友好。

  • 解决方案一:对于未过期的全服邮件,放一份数据在缓存中,玩家的个人邮件表中只存对应全服邮件的id和领取状态。玩家每次拉取邮件数据时,需要拉取全服邮件进行组合。优点: 技术全解决,无需修改业务。 缺点: 需要额外的代码。
  • 解决方案二:玩家在领取邮件后自动删除。优点:通过业务操作就得到了优化。缺点:策划可能想打人。

如果大家有更好的方案,欢迎留言分享。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
游戏邮箱交互系统UI是指游戏中用于查看和处理玩家邮件的界面设计。该系统的UI设计应该简洁直观,方便玩家快速找到所需要的邮件,并进行相应的操作。 首先,界面的整体布局应该合理,一般来说,可以将界面分为邮件列表和选中邮件内容两个区域。邮件列表应该显示所有的邮件标题,并支持按时间、发件人等条件进行排序。选中邮件内容区域应该显示邮件的具体内容,包括发件人、发送时间、邮件正文等信息。 其次,操作和交互方式也需要考虑。在邮件列表中,应该提供搜索和筛选功能,方便玩家找到特定的邮件。同时,还应该支持批量选择和操作多封邮件,例如批量删除或标记为已读。为了增加用户体验,可以考虑添加邮件分类功能,将不同类型的邮件分组显示。 此外,为了方便玩家在阅读邮件的过程中快速回复或转发邮件,界面应提供相应的按钮或连接。点击回复按钮后,可以跳转到撰写邮件界面,自动填充收件人和主题信息。而点击转发按钮,则可以将当前邮件内容自动复制并跳转到撰写邮件界面,玩家只需要填写收件人即可。 最后,关于界面的美观性和细节处理也是很重要的。邮件列表和邮件内容应当有清晰的界限,字体大小和对比度应适中,以确保信息易于阅读。为了提高视觉效果,可以使用适合游戏风格的主题和图标,增加界面的吸引力。 总之,游戏邮箱交互系统UI设计需要注重简洁性、操作性和美观性,以提供优良的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值