目录

游戏服务器概述

系统初始化

  • 配置文件读取,读取的是文件配置?数据库配置?远程配置?

  • 配置的修改是否需要重启服务器?

游戏逻辑

  • 底层通信要好,NIO框架: Netty

  • 协议层: 处理与客户端交互时,协议的解析与返回数据,这层不要放业务逻辑实现,与客户端交互的数据在这一层开始,也在这一层结束

  • 业务逻辑层: 协议层将参数传入逻辑层,在逻辑层处理业务逻辑(计算价格,通关,记时,数据的逻辑运算);

  • 业务逻辑是游戏的核心,一定要保证正确性,尽量采用面向对象的方法去思考实现,不要重复代码!还要考虑每个方法都是可以单独测试的。

数据库系统

  • 游戏的数据要存储到数据库,存储时要考虑 建立数据库连接->存储数据->释放连接 这一过程的造成的高延时

  • 解决方法是使用数据库连接池技术,开源的产品有: Mybatis

缓存系统

  • 客户端与服务器的交互要求是低延迟的,客户端一个请求过来,最低不能超过500ms去响应,网络传输耗时在 100-200 ms,超过700ms玩家就会觉得卡了

  • 直接从数据库中取数据,处理完再存回数据库,这个操作是满足不了低延时的要求的,这里就要使用缓存技术,将正在交互的数据放入内存中,这里推荐使用Redis

游戏日志

  • 日志是玩家在整个游戏中的行为记录,有了这个记录,我们就可以分析玩家的行为,查找游戏的不足,在处理玩家在游戏中的问题时,日志也是良好凭证和快速处理方式

  • 系统日志: 主要记录游戏服务器的系统情况,比如:数据库是否正常连接,服务器是否正常启动,数据是否正常加载

  • 玩家行为日志: 比如玩家发送了什么请求,得到了什么物品,消费了多少货币

  • 统计日志: 针对游戏中玩家某种行为的一种统计,根据这个统计来分析大部分玩家的行为,得出一些共性和不同之处,以方法运营做不同的活动吸引用户消费

  • 日志要设计一种良好的格式,易于读取和分解。

游戏管理工具

  • 服务器管理: 主要负责服务器的开启,关闭,服务器配置信息,玩家信息查询

  • 玩家管理:比如踢人,封号

  • 统计查询: 玩家行为日志查询,统计查询,次日留存率查询,邮件服务,修改玩家数据等

公共服务组件

  • 充值服务器

  • 运营搞活动的礼包码

  • 注册用户的管理,玩家注册一个账号可以进所有的游戏服务器区

  • SDK登录验证,这个一般是http请求,阻塞且延迟高,单独拿出来做