现代的电子游戏,不管是端游还是手游,网络游戏还是单机游戏,或多或少都会需要一些网络功能。从验证正版,到登录注册,再到多人交互,实时对战,都需要服务器端的支持。
游戏服务器端,是一个长期运行的程序,还要服务于多个不定时,不定点的网络请求。主机测评及技术分享来和小伙伴们讲讲,一个游戏服务器从游戏逻辑方面可以分为几个模块?
- 注册和登录
- 网络协议
- 数据库
- 玩法逻辑
- 其他通用模块
注册和登录
这点和网站后台开发有点不同,因为游戏帐户的注册都是由第三方平台提供SDK的,游戏开发过程中只要开发登录逻辑即可。游戏开发后续决定使用哪个运营平台的时候才会去考虑接收平台提供的SDK。登录流程可以参考以下这个时序图:
网络协议
网络协议在这里不是指TCP或HTTP这些,或者在这之上的应用层协议。这里的网络协议是用于游戏中的客户端和服务器交流的。其中用的最多的就是Google的协议缓冲区了,也有直接用 JSON 或者 MessagePack 的。
数据库
早期的游戏服务器是没有使用数据库的,玩家的数据直接存文件的,一个玩家一个数据文件。
<