2023-11-16

01
背景介绍
浏览赛题团队讨论将应用领域锁定在服务器优化上c;一是因为这方面很有趣此外,它是团队中长期使用爱发电的成员[1] 开服,对此非常有商业经验。
四个团队都是本科生,相识于 Topview 工作室大数据组,现在广东工业大学入学。
温嘉诚:大三本科生承担整体架构的设计和数据处理。
温嘉诚:大三本科生承担整体架构的设计和数据处理。
胡锦峰:大三本科生承担整体架构设计和日志采集部分。
郑子游:大二本科生承担数据传输部分。
邓媚:大二本科生承担数据显示部分。 各种改进方案的游戏服务端,大多是出于 IO/CPU 改进消耗方向,不同的游戏也没关系
通用方案。每个人都希望借助 Flink 实时,从数据分析和信息监控的角度进一步深化的扩展c;以数据分析的形式快速找到需要优化的中心点,即时处理服务端卡顿问题#xff0c;提升玩家体验#xff00c;降低人工监督调整成本。很重要c;其应用领域不局限于某款游戏,只需要同类型的游戏完成给定的日志接口和反馈插口
,所有这些都可以通过这个系统来改进。
团队系统以 Minecraft 例,因为游戏生态丰富,易于开发。
(
你甚至可以在格子的世界里前进四次[2],这款游戏是一款完美的实验产品,Flink 最好与之融合
1.2 一些定义
Minecraft 游戏实体包括三部分,落物实体、格子实体、生物实体,少量玩家在线,无模块服务器的平均值每分钟都有成千上万的实体升级。
当玩家增加时,#xff00c;玩家放置的格子,玩家旁边的实体会进行 tick 测算(1 秒=20 tick)。由于一些历史执行顺序,区块形成、实体计算等加起来比例超过 60%部分,在一个主线程上实施c;市场上大多数服务端试图分割计算多线程c;因为一些无缘无故的原因 bug (破坏“游戏机制” 或是 导致一些线程安全、执行顺序、多线程可以降低的问题) 而不是生气。
大型服务器,一切 bug 都可能导致严重伤害本方案基本不伪造游戏机制防止遇到上述情况 bug。
1.3 方案目的
战略解决异常点,提高服务端运算效率,提升玩家体验。
02
设计
2.1 整体架构
该系统的简化架构如下图:
2.2 日志收集和反馈机制
日志接口和反馈插口,在大数据后面连接
使用 Bukkit 事件监听器系统监控游戏中实体的形成和消退信息,完成我们的日志接口和反馈插口
埋点落物、生物和情况格子c;获得它唯一的标志
按时获取服务器 tps、gc 信息,输出到大数据后面
实时获取玩家数据信息c;记录玩家聊天信息,交互信息等
从 mysql 获取大数据后输出异常点采用不同的对策来解决
2.3 传送数据
与传统相比 Kafka+Flume 组成,应用 Pravega 可简化系统处理架构。Pravega 它可以自动将数据从热存储转换为冷存储,不需要额外的 ETL 开发。Pravega 它可以自动将数据从热存储转换为冷存储,不需要额外的 ETL 开发。
Pravega 对于高吞吐量的历史数据和低延迟的实时动态,有一致的浏览方法,能有效实现离线计算和实时计算的统一。Pravega 方便以后扩展批数据处理业务例如,深度学习模型训练是根据长期数据进行的。
Pravega 相较于 Kafka 可节省文件存储费用。数据在 Pravega 只需存放一份而 Kafka 团本必须存放。
系统内部将 Pravega 作为存储引擎和信息队列可自动伸缩的特,可以很好的替代 Kafka,同时通过 Pravega Flink Connectors 可以使其与 Flink 中间连接顺畅。
2.4 数据处理
清理数据丢失的日志
按类型分流整体日志流,计算各实体总数,便于后续分析
主输出流收集当前期间掉落物总数,每一个游戏日志,确定是否有坠落物,假如是,区分日志类型的爆发或拾取,加上各自的跌落 amount 或者减去捡起 amount。
侧输出流收集当前期限内掉落物品类型及其坐标位置,每次都有一个游戏日志,确定是否有坠落物,假如是,把掉落的物种和它们的座标放进去 map 中导出。
考虑到服务器中的数据点是不规则的,而 DBSCAN 根据密度的聚类算法,可以解决随意形状的空间聚类问题c;所以选择了这个系统 DBSCAN 分析数据。DBSCAN 该算法还具有无需区分类型数量和处理噪声点的特点。
实际分析,保存旧数值需要#xff0c;当新数据到来时,可以根据旧结论计算升级。我们采用的方案是:将每个 cluster 密度 ρ(cluster 内部数据等级//cluster 面积)做为 cluster 中心点计算权值通过聚类计算,可以获得一批数据点 cluster 中心点集,包括核心点的坐标和权值,把它存储在 Flink 的 在State中。当新数据点到来时,将和State 聚类,并将新的中心点集更新到 State。
网络检测到密集点座标,清理掉落物(鸡肉属于不同类型的牛肉,因此不会被清洗)
系统密集点属于区块生物清洗
2.5 效果展示
Entity(#xff09生物类型;数据的遍布
tileEntity(格子类型)数据的遍布
实体数据统计图
如果你有足够的耐心,您可以在服务器中使用格子实体来放置这种图片
清除前 TPS:
清理后 TPS:
03
结语
大型网络游戏的实时任务系统
Boss 实时调整掉落物,物件推荐
服务端无法快速响应的类型重返预测
事实上,游戏中有无数的并行处理需求,Flink 能做的远不止这个,随着更多需求的探索和转移,Flink 或者网络游戏带来一次"前行四"。
参照
结构流存放 — Pravega(https://flink-learning.org.cn/article/detail7a9cfcbcf3c01ad0b38a89249cfb7e9)

[1] 爱发电所指的低利润或无利可图仍然坚持做某事,这里指的是我们团队开服务器
[2] 图片来源于网络动画《我的三体章北海传》,改编自刘慈欣的科幻小说《三体》 2:黑暗森林,动画初期,发烧友依靠游戏 Minecraft 拍照。在作品中,章北海威胁亚洲舰队旗舰飞船发出飞船前行四的命令。在作品中,章北海威胁亚洲舰队旗舰飞船发出飞船前行四的命令。前进四,是飞船最大的加速档,最高速度为光速的15%。