Skip to content

Latest commit

 

History

History
34 lines (31 loc) · 1.89 KB

MIND.md

File metadata and controls

34 lines (31 loc) · 1.89 KB

一些想法

  • 所有的数据都定义在proto/data里面,数据和逻辑完全分离,玩家的数据存储在一个proto中,这样既方便序列化,又方便使用json进行快速验证,又方便客户端做热加载(客户端逻辑与数据分离)
  • 所有服务器通过与中心服务器通信来确定自己的类型,所有配置档(包括服务器配置和游戏配置)都由中心服发出
  • 最终实现的目标是所有玩家只在逻辑上分区,实际不分区服的在服务器集群中
  • 使用ECS结构编写逻辑
  • 只有有限的数据作为存储单元 这个得想一下 比如角色、地图、帮会等。 而怪物应该是跟随地图走,Buff跟随角色走
  • 是否使用机器服务器来启动当前机器上的各个服务器
  • 后台功能
  • (done) ELK 收集日志
  • 现在服务器都是单线程的 如果后期有必要的话 可以把一些压力大的服务器改为多线程

服务器类型包括如下:

  • 中心服务器 (广播服务器状态,发送服务器配置,游戏配置)
  • 登录服务器
  • 门服务器 (只做消息转发,不做逻辑处理)
  • 世界服务器 (静态场景,分线)
  • 副本服务器 (动态场景,可以随时创建销毁,不保存副本配置,这样可以由客户端直接发来运行时配置用于快速调试)
  • 聊天服务器 (世界,当前,帮派,组队,好友)
  • 邮件服务器
  • AI服务器
  • 玩家消息中转服务器 (用于向不确定Gate的玩家发送消息)
  • 数据库服务器
  • 日志服务器
  • 负载服务器 (负责统计当前机器的负载情况)
  • 匹配、帧同步、排行榜、帮派等专项功能服务器
  • SDK服务器 (登录、支付等)

接下来要做的

  • 消息分类与消息流整理
  • 服务器存储数据类型整理
  • 角色加载与释放流程整理

可以用到的包

  • gopsutil 搜集机器负载,CPU使用率等