关于游戏服务器的一些思考
写了个开头,未完待续~
在脉脉上看到有的人对游戏服务器框架持鄙夷的态度,认为GitHub上大部分打着游戏服务器框架标签的仓库大部分都是简单的rpc框架就敢自称游戏服务器框架了。这不禁让我产生了思考。
游戏服务器到底是什么呢?
那个人说的也并不是全无道理,rpc框架一定是游戏服务器的重要组成部分。简单来说,游戏服务器就是一个能与客户端通信,让游戏客户端能实现联机,持久化数据的一个东西。
游戏客户端与服务器的交互流程大概是:游戏客户端与服务器连接,然后发游戏的协议,服务器进行粘包拆包处理,队列处理玩家的协议,分发协议到对应功能的处理代码,然后返回给玩家数据,当玩家数据发生变化,保存到数据库。
简单来看这个交互流程,并没有体现出游戏服务器的是什么构造。
深入探究一下:
游戏协议发到游戏服务器这中间经过了什么?
游戏服务器都包括哪些功能?
什么样的架构才能称得上是好的架构?
游戏服务器要能热重载
游戏服务器要能支持平行扩展
游戏服务器要能支持服务发现
游戏服务器中数据库的处理
多进程与多线程与协程
异步与同步
游戏服务器的日志
游戏服务器中关于事务