首页 > 资料专栏 > IT > 互联网 > QQ > 腾讯_邮件在游戏中的运用PDF

腾讯_邮件在游戏中的运用PDF

pengyou***
V 实名认证
内容提供者
热门搜索
腾讯
资料大小:195KB(压缩后)
文档格式:PDF
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2023/5/10(发布于江苏)

类型:企业数据
积分:--
推荐:升级会员

   点此下载 ==>> 点击下载文档


文本描述
一、需求概述 ? 产品需求 游戏的邮件跟 PC 互联网上的邮件相比,功能功能相对简单,包括:写信, 提取附件,收信,查看,删除信件等;同时还有黑名单功能,即屏蔽某个玩家发 过来的邮件。 邮件共分为两类: 1,玩家邮件:普通邮件为普通文字邮件,玩家可进行查看和回复; 2,系统邮件:为系统或 GM 发放邮件,此邮件可进行查看和提取,不可进 行回复。 ? 运营需求 游戏运营期间,运营同事需要给玩家补发物品,调整玩家等级,扣除玩家道 具,解散异常的家族等需求,这些需求可能随时变化,给开发同事带来很大的不 便。尤其是需修改玩家数据,考虑到游戏数据一致性,通用做法分两种情况: 1,玩家在线。大多数 MMORPG 游戏的核心逻辑是单进程单线程模式,而 GM 单独一个线程,为了避免数据互斥一致性问题,通常是数据加锁修改,或者 是把修改数据的请求发送到玩家的工作线程中处理; 2,对方不在线。把对方数据拉取到游戏,然后进行数据操作并持久化处理。 例如,GM 调整某个离线玩家的等级。 为了减少开发量和降低复杂度,这里提出了一个新邮件类型—可执行邮件。 与上面两类邮件区别是,玩家感知不到这封邮件的存在,只有当离线玩家上线时 触发,或者在线玩家的心跳中触发。 ? 其它需求 每个玩家都有最大邮件数量,每封邮件都存在生命周期,以及邮件内容,标 题等均有长度限制和敏感字过滤需求等; 二、设计思路 ? 邮件结构 邮件类包括唯一 ID,类型(普通文本,普通带附件,可执行),发信人,收 信人,发送时间,标题,内容,附件内容(物品,资源,以及数量),自定义逻 辑 ID,自定义参数数组,同时为了后面扩展,需要预留相应的字段空间。 注:1,自定义逻辑 ID 是可执行邮件的功能 ID,每个逻辑 ID,后台均有对 应的实现逻辑函数,其中传入的参数是自定义参数数组; 2,自定义参数 ID 的类型是 char,当<0 时表示调用 LUA 脚本;当>=0 时 表示后台自定义的逻辑函数; 3,当邮件类型是可执行邮件时,自定义逻辑 ID 和数组才有效; ? 内存管理 为了跟其它模块解耦,分区所有玩家的邮件由单独统一管理和存储,并且是 常驻内存。邮件池管理邮件的分配和回收。 ? 淘汰策略 不同类型的邮件有相应的生命周期,在游戏运营期会针对邮件进行淘汰 回收。下面是淘汰策略: 1,当邮件的生命周期结束时,对离线玩家的到期邮件进行回收淘汰; 2,当邮件池的空闲比例达到 90%时,对离线玩家的普通文本邮件进行少量 回收(发送时间较早); 停服期间,根据运营期的邮件指标(邮件池空闲比,拥有邮件的人,邮件数 等)进行调整邮件池大小。 三、可执行邮件和总结 这篇文章只是引入思路,游戏的邮件功能本身简单,清晰明了。但后台在开 发过程中衍生出了一种新的邮件—可执行邮件,这种模式除了应用到 GM 功能 外,还可以在游戏逻辑里面,如盟主解散了联盟,这样后台逻辑中需要对未在线 成员拉取数据,把成员身上的联盟 ID 需要置为-1(标识没有联盟),如果给未在 线玩家发送一封可执行邮件,玩家上线时自动执行,这样就避免了拉取玩家数据 并修改导致的性能和复杂度。 。。。以下略