Java游戏服务器开发
文章平均质量分 83
Java游戏服务器开发
将会从零开始开发出一个可以正常上线的项目
金刀李
哈哈哈哈哈或
展开
-
Java游戏服务器开发之十三--整合MyBatis通用语句工具
这次的修改内容1.为了将一些可复用的方法统一使用,修改源码MapperAnnotationBuilder2.MapperAnnotationBuilder中使用到的内容,包括CrudMapper/CrudProvider/CrudSqlProvider/CrudSqlSource3.当使用缓存的时候,需要实现Serializable,添加基类Entity4.dao实现CrudMapper,...原创 2018-07-04 12:05:34 · 7719 阅读 · 0 评论 -
Java游戏服务器开发之十四--在handler和dao层中添加service层
Java游戏服务器开发之十四--在handler和dao层中添加service层现在我们的写法是将dao注入到handler中,如果遇到要写业务逻辑的话,其实不是太方便,所以我们在handler和dao层中添加service层这样dao的所有接口都只暴露给service,整个的数据流向就是handler--service--dao主要变化是:添加 UserService/UserSe...原创 2018-07-05 14:20:17 · 8480 阅读 · 0 评论 -
Java游戏服务器开发之十五--使用StringMessage封装消息
之前我们的消息都是直接通过使用String,然后通过netty的默认编解码器StringDecoder、StringEncoder来进行传输,而我们需要的不仅仅是文本内容,还需要扩展一些其他的东西(消息号、状态码之类的)。 消息传输可以看看这篇游戏中tcp消息使用byte字节数组传输所以就想到用一个message进行封装,同时自定义自己的编解码器。备注:这篇内容修改的内容比较多,或许有...原创 2018-07-17 15:48:37 · 8476 阅读 · 0 评论 -
游戏中tcp消息使用byte字节数组传输
通讯消息不像是web那样直接使用文本,比较多的形式使用字节byte进行传输,形如下面的形式 0,1, 0,2 ,0,0,0,8, 0,0,1,1 ,0,0,0,3 根据客户端与服务端定义的协议,去读取byte数组, 比如定好消息格式为 消息号+状态码+内容长度+内容 (messageId+statusCode+length+b...原创 2018-07-18 20:18:20 · 9944 阅读 · 0 评论 -
Java游戏服务器开发之十六--byte消息传输
Java游戏服务器开发之十六--byte消息传输消息传输可以看看这篇游戏中tcp消息使用byte字节数组传输 上面的代码在码云上 https://gitee.com/lizhaoandroid/JgServer可以加qq群一起探讨Java游戏服务器开发的相关知识 676231564...原创 2018-07-18 20:21:30 · 7505 阅读 · 0 评论 -
Java游戏服务器开发之十七--spring定时任务
定时任务 这里我们直接使用spring的定时任务注解,Scheduled 修改的地方主要是2个, 添加 ScheduledTask 修改 ApplicationContext.xml 先说下配置文件Applicat...原创 2018-07-19 16:14:48 · 7813 阅读 · 0 评论 -
Java游戏服务器开发之十八--事件机制
事件机制 在一个游戏系统中,客户端使用事件机制用的也是比较多的,在这边也将服务端的事件机制实现下 事件:事件先预设了触发条件及处理方法,在实际使用时,通过触发相关条件,调用对应方法。 举个例子,在有界面的开发中,肯定都有button,button都会和某个方法进行绑定,当用户点击button,就会触发这个方法。这个就...原创 2018-07-21 15:12:04 · 7971 阅读 · 0 评论 -
Java游戏服务器开发之十九--去掉base包中对server包的依赖
修改base包中对server的依赖 主要是很多地方都有用到ServerConfig,把这些内容删除,使用参数传入的方式MessageDecoder.java 为MessageFactory准备,添加构造函数中的参数String messageTypeMessageFactory.java MessageFa...原创 2018-07-24 11:22:49 · 7223 阅读 · 0 评论 -
Java游戏服务器开发之二十--xml配置文件
Java游戏服务器开发之二十--xml配置文件 游戏中使用的配置文件很多 像游戏中的关卡,英雄等级,装备之类都是使用配置文件(xml等) 比如有一个装备,配置表中有一条记录,数据库只需要存储这条记录的id,具体使用的时候,只需要从xml中获取这条记录就好了。 这些配置表一般都是前后端一致的。 现在我们服务器要做的就是解析xml,在项目启动的时候把这...原创 2018-07-28 17:03:12 · 8380 阅读 · 0 评论 -
Java游戏服务器开发之二--导航帖
Java游戏服务器开发之三--日志 Java游戏服务器开发之四--通讯框架netty Java游戏服务器开发之五--使用工厂模式生成netty Java游戏服务器开发之六--整合spring Java游戏服务器开发之七--使用IServer控制服务的启动...原创 2018-06-29 16:12:08 · 15205 阅读 · 5 评论 -
java游戏服务器开发之八--网络事件监听器
java游戏服务器开发之八-网络事件监听器 网络事件监听器,将网络变化交由NetworkListener处理可以看到,我们现在所有的逻辑都是写在TcpMessageStringHandler里面,我们可以使用创建一个类,用于监听网络的变化,NetworkListener还有一个类用于处理发送上来的信息(可查看后面博客)首先,先创建一个接口INetworkEventListener,...原创 2018-06-22 16:05:07 · 9436 阅读 · 0 评论 -
java游戏服务器开发之九--Session
相信做过web的小哥应该都知道session的概念,简单来说,session翻译是会话,用来保存用户浏览web页面的一些信息(用户信息)。我们的框架也需要这么一个session,用于保存用户信息,与客户端连接的管道(Channel)。有了这个session,我们能做到在系统的各个地方能获取到该用户的信息,及回消息给客户端增加的类AttributeUtilIUserSessionSes...原创 2018-06-23 11:12:59 · 10976 阅读 · 0 评论 -
Java游戏服务器开发之十--消息处理器INetworkConsumer
Java游戏服务器开发之十-消息处理器INetworkConsumer有了session我们就可以在任何地方向客户端发送信息写好了session,可以写一个对消息的处理类(消费者)。addINetworkConsumerNetworkConsumerupdateTcpMessageStringHandler多加一个INetworkConsumer接口,里面就一个方法consume...原创 2018-06-25 10:05:59 · 7760 阅读 · 0 评论 -
Java游戏服务器开发之十一-- 将消息分发给线程队列执行及路由功能
添加的类有:com.lizhaoblog.base.concurrent.commond.ICommandcom.lizhaoblog.base.concurrent.commond.IHandlercom.lizhaoblog.base.concurrent.dictionary.IMessageDictionarycom.lizhaoblog.base.concurrent.handl...原创 2018-06-25 23:03:03 · 9567 阅读 · 1 评论 -
Java游戏服务器开发之十二--数据库连接整合mybatis
应该比较让人关心的还有一个就是数据存储的问题了。 下面将会介绍连接数据库的相关内容 使用的是mysql数据库,框架中将使用mybatis 这里介绍时假设各位都使用或者了解过mysql。 1.在pom中添加相关包 2.创建数据库和表 3.创建映射实体类entity与数据库操作对象Dao 4.创建映射文件mapper.xml 5.在spring中配置my...原创 2018-06-29 15:12:49 · 7816 阅读 · 0 评论 -
Java游戏服务器开发之行为树
Java游戏服务器开发之行为树 之前有看到过状态机、行为树这一块的内容,但是没有认真细看,现在终于静下心来认真看了看,就看了别人的实现方式(网上代码没有Java实现的), 然后使用Java语言实现了一下 运行之后,在回头看代码,果然又清晰了一些 希望写完这篇博客之后,能认识的更深刻一些,哈哈。 首先,要先感谢下这几位博主,里面的一些概念及代码都是参考这几个小哥来写的。 https://www.cn...原创 2018-05-25 16:39:07 · 17135 阅读 · 2 评论 -
Java游戏服务器开发之行为树(二)--装饰器和并行器
Java游戏服务器开发之行为树(二) 昨天将一些基础的骨架搭建完成,现在将剩余的部分完善,包括装饰器和并行器。基于事件的行为树没有研究透,应该会在下一篇之中书写。 IDecorator,装饰器,主要是对子节点进行修饰,比如可以做到重复多次子节点。 IParallel,并行器,主要是指多个指令可以同时触发。下面2个就是具体的实现public class Repeat extends...原创 2018-05-25 21:07:57 · 8194 阅读 · 0 评论 -
Java游戏服务器开发之A星算法
Java游戏服务器开发之A星算法 学习这个主要是用于寻路算法。 参考资料主要是siki学院的视频,A计划--人工智能--A星算法。 网址http://www.sikiedu.com/course/62/tasks 代码也是大部分参考里面,原本是C#的,用Java实现了一遍。 一般看视频的话,基本一知半解,自己敲一遍,基本就能了解了 我先直接放代码,先跑成功后,再说明下整个实...原创 2018-05-29 11:49:54 · 8021 阅读 · 0 评论 -
float在内存中的数据格式及其转byte数组原理及转换过程
float在内存中的数据格式及其转byte数组原理及转换过程参考文章 转换说明 https://blog.youkuaiyun.com/yezhubenyue/article/details/7436624 进制转换 http://www.cnblogs.com/xkfz007/articles/2590472.html float在计算机的存储 四个字节,共有32位。以“符号”+“移位数”+“底数”的方...原创 2018-06-06 20:51:33 · 14890 阅读 · 0 评论 -
java游戏服务器开发之三--日志
日志在一个系统中的重要性还是很大的,有时候项目部署到服务器上,不可能使用断点调试的方式,只能从日志文件中查找蛛丝马迹。这边是使用的slf4j。 在pom文件中添加slf4j<!-- 日志包 --> <dependency> <groupId>org.slf4j</groupId> ...原创 2018-06-10 20:23:17 · 10796 阅读 · 3 评论 -
java游戏服务器开发之四--通讯框架netty
前言,说明 引入netty的pom <!-- netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final&原创 2018-06-10 22:15:10 · 15242 阅读 · 1 评论 -
netty遇到的问题
1.服务器无法处理消息,返回消息给客户端,客户端无法接收到消息 // 以("\n")为结尾分割的 解码器 // pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter())); 这行是在接收消息的时候,会对分隔符进行解码,如果没有获得分隔符的...原创 2018-06-12 15:10:29 · 10029 阅读 · 1 评论 -
java游戏服务器开发之五--使用工厂模式生成netty
java游戏服务器开发之使用工厂模式生成netty在写netty的会发现很多东西是重复的,既然是重复的内容,我们其实可以把部分内容抽象出来写好,然后具体的内容就交到具体实现里面编写来看下这次代码的更新情况,添加了这些内容baseconstantConstantValue 存放系统常量exceptionServerErrException 服务启动错误factoryServerBo...原创 2018-06-13 11:40:58 · 12075 阅读 · 1 评论 -
java游戏服务器开发之六--整合spring
netty和spring的结合上篇将netty大致部署好了,但是里面的配置我们都是写在代码里面,其实这样是不太好的,毕竟你改个参数就要打包一下。所以打算写在配置文件中,顺便把spring也集成进来 第一步,在pom文件中加入spring的包, <spring.version>4.2.4.RELEASE</spring.version>这个写在propert...原创 2018-06-18 21:33:16 · 13848 阅读 · 2 评论 -
java游戏服务器开发之七--使用IServer控制服务的启动与关闭
之前我们启动服务器都是直接这么写的Channel acceptorChannel = ServerChannelFactory.createAcceptorChannel()acceptorChannel.closeFuture().sync() 这样子也没办法关闭,我们就可以想到用一个专门的类进行管理 IServer 这个类主要三个方法,start/stop/restart 使用接...原创 2018-06-20 21:01:52 · 7776 阅读 · 0 评论