为什么游戏服务器很多都用Java开发
Java 做游戏服务器开发的优势还是很多的,《我的世界》的服务器就是Java开发的。Java技术比较成熟,大数据,云计算,网站App后台,基本都采用Java开发,同时跨平台,游戏服务器这个领域,使用Java的公司月越来越多,一是技术成熟,简单,有很多框架可以使用,二来是招人也比较方便。
这里
游戏服务器和应用服务器不一样,游戏服务器是需要让多个玩家同时在线,而应用服务器是玩家和系统之间的数据交互和通讯,所以应用服务器大多以http 短连接为主,而游戏服务器需要多人同时在线,同时服务器有时候要主动通知客户端,所以游戏中以长连接为主,同时支付等功能又需要http的短连接, 所以游戏服务器网络短连接+长连接模式。游戏服务器网络模块需要学些Netty等NIO高性能的网络库, 同时需要http,所以一般会搭建一个http server, 用来提供支付,资源更新, 游戏公告等功能服务,有时候登录也是走的http。Httpserver可以使用spring等, 具体取决于开发人员如何选定。多人同时在线的游戏逻辑服务器通常使用的是长连接,需要要提供高性能,高并发,目前主流的游戏服务器很多都用Netty这个NIO的网络框架。客户端发数据到服务器,或服务器发数据给客户端都需要对数据协议进行约定,将要发送的数据对象序列化成二进制,然后传送,接收端收到数据后再反序列化回来,一般这个我们采用Protobuf来做, 性能好,体积小,跨语言平台。
Java游戏服务器的数据库的技术
游戏开发中经常需要把数据保存到数据库,同时有些数据可能我们要缓存起来,数据这块也是比较重要的,Java 提供了完整的数据库的支持