站务联系

游戏服务器需要学习哪些知识(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多线程技术, 反射, 注解

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

游戏开发常用的算法

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

图说天下

×
二维码生成