站务联系

主页 > 菲律宾 > 内容

游戏服务器需要学习哪些知识(Java)

发布时间:2021-07-14   来源:网络整理    
字号:

为什么游戏服务器这些都用Java开发

Java 做游戏服务器开发的优势还是太多的,《我的世界》的服务器就是Java开发的。Java技术比较成熟,大数据,云计算,网站App后台,基本都选用Java开发,同时跨平台,游戏服务器这个领域,使用Java的公司月越来越多,一是技术成熟,简单,有这些框架可以使用,二来是招人也比较便捷。

这里有个游戏开发交流小组点击可以直接加入

Java游戏服务器的网路通信技术

游戏服务器跟应用服务器不一样,游戏服务器是还要使多个玩家同时在线,而应用服务器是玩家跟系统之间的数据交互跟通信,所以应用服务器大多以http 短连结为主,而游戏服务器还要多人同时在线,同时服务器有时候要主动通告客户端,所以游戏中以长连结为主,同时支付等功能又须要http的短连结, 所以游戏服务器网路短连结+长连结机制。游戏服务器网路模块还要学些Netty等NIO高性能的网路库, 同时还要http,所以通常会搭建一个http server, 用来提供支付,资源更新, 游戏公告等功能服务,有时候登陆只是走的http。Httpserver可以使用spring等, 具体取决于开发人员怎样选取。多人同时在线的游戏逻辑服务器一般使用的是长连结,需要要提供高性能,高并发,目前主流的游戏服务器这些都用Netty这个NIO的网路框架。客户端发数据至服务器,或服务器发数据给客户端都还要对数据合同进行约定,将要发送的数据对象序列化成二进制,然后传送,接收端收到数据后再反序列化回去,一般这个我们选用Protobuf来做, 性能好,体积小,跨语言平台。

游戏陪玩线下服务_游戏服务器_服务和连接的外围应用配置器

Java游戏服务器的数据库的技术

游戏开发中常常还要把数据保存至数据库,同时有些数据或许我们要缓存上去,数据这块只是比较重要的,Java 提供了完整的数据库的支持,JDBC,可以支持多个数据库,我们可以采用mysql等常见的数据库。同时为了加速访问,我们会把数据库中的数据缓存上去,一般主流的缓存技术可以选用redis来做。同时在开发中我们设计至大量的更新跟更改数据库中的数据,如果全部手写sql,写上去也麻烦,同时若果数据结构有改动,所有的sql都要改动,所以通常我们会给数据库系统加一个ORM的框架,封装好后直接可以把数据结构更新至数据库,和把数据库内容读取下来生成数据结构。

Java 游戏服务器的日志技术

日志对于游戏服务器开发来说是十分重要的,特别是上线的时侯,日志是最重要的一个调试方式,线上版本代码出了bug,也只好通过日志来查,所以一个好的日志系统特别的重要,Java的日志系统只是特别成熟的,比如log4j等,很多日志系统可用。而且都比较成熟。

游戏陪玩线下服务_游戏服务器_服务和连接的外围应用配置器

Java多线程技术, 反射, 注解

多线程,反射,注解对于Java游戏服务器来说只是特别重要的技术栈,首先我们要做高性能高并发,多线程就是十分重要的方式, 线程调度,线程同步, 线程通信等。整个游戏服务器的业务驱动只是基于多线程来驱动的,所以多线程对Java游戏服务器十分重要。Java的注解就格外普遍了,很多我们要做的服务,描述这个服务的一些属性,我们常常还要使用注解,基于注解,我们能更好的管理我们的服务,编写业务逻辑。反射只是我们做游戏服务器常用的,特别是丑闻响应跟处理,我们把对应的处理跟对应的丑闻联系上去,底层都是通过反射,根据对应的丑闻编号等规则找到处理的反射对象或方式,底层来处理,这样业务逻辑层只须要接入服务的处理类就可以了,底层通过反射来把对应的丑闻映射派送至对应的服务。

游戏开发常用的算法

游戏服务器,很多选用状态同步,其实所有的业务逻辑就是在服务端来跑, 服务端要处理游戏常用的精典问题游戏服务器,碰撞测试,寻路导航, 怪物AI等。所以我们还要基于Java服务器实现常用的算法跟工具,比如寻路导航,行为决策树,有限状态机, 物理引擎,碰撞测试等。对于小型的MMORPG而言,还须要做好AOI的状态管理等,这些游戏中常用的核心算法我们要打算好。

图说天下

×
织梦二维码生成器