论文部分内容阅读
随着互联网的全面普及与发展,互联网娱乐业正野蛮生长与疯狂扩张,游戏行业特别是手机游戏在发展壮大的同时也变得更加成熟与规范。一款成熟的线上游戏需要不断地迭代更新,游戏策划与运营会通过诸如活跃玩家数、用户平均收入等数据来制定和修改游戏所要更新的内容,推出新版本、新玩法、新活动以丰富游戏元素,从而能够在保留原有用户的基础上吸引新用户,企业自身也能得到更大的收益。游戏的更新离不开数据的支持,而合格的游戏管理系统不仅能够提供丰富的游戏数据,还能为游戏策划与运营提供诸如禁言、发奖、锁定等管理游戏用户的功能。笔者实习所在公司拥有数十款已发布上线的游戏,每款游戏均需要游戏管理系统协助。本文介绍的游戏管理系统主要服务于公司的棋牌类游戏,笔者根据策划提出的功能需求,结合棋牌类游戏后台服务器的GM(game management)模块,提炼出初步的解决方案。在需求分析的基础上进行了概要设计与详细设计,并在之后完成相应的编码与实现。本系统使用了JBoss服务器与MySQL数据库,整体基于JSF(Java Server Faces)框架、Hibernate框架以及EJB (Enterprise JavaBean).游戏服务器采用了Kafka+Zookeeper的分布式架构,共包含七个服务器代理(Broker).游戏管理系统通过http协议与游戏服务器中的GM服务器代理进行通信,从而实现了与游戏服务器的数据交互。游戏服务器每天会滚动出记录大量用户行为的日志,笔者使用RSync将数据日志从游戏服务器迁移至游戏管理系统服务器,游戏管理系统服务器定时将日志数据入库,游戏策划和运营即可通过管理系统查询历史数据、分析用户行为。本管理系统还可通过游戏服务器的GM模块访问游戏服务器的数据库,并将数据反馈给管理系统。工作人员也能通过使用游戏管理系统,对游戏用户做锁定、禁言、发奖、发送邮件等管理。除了实现相关功能之外,笔者还通过实现数据批量入库,自动建立数据库分区等对性能做出改进。本游戏管理系统已经上线,但是只为公司内的棋牌类游戏服务。目前正在做代码的整合与重构,从而提高项目的可复用性,以方便其它类游戏项目也能应用本系统。