基于 Netty 实现一个简单的游戏服务器(一)

最近因为学校的编程实践课程原因,在需求分析阶段因为对项目难度估计不足,给自己挖了个大坑,最后在需要实现的时候才发现游戏服务器开发涉及的内容太多,远远不是楼主的水平能够完成的,所以最后大概花了半个月时间草草完成了一个简陋的服务器。由于是作业项目,现在根据测试结果在低并发情况下应该是可用的,由于时间仓促,很多功能都没有实现。后期应该会加以改进。由于楼主水平有限,整个系列博客仅供参考。现在整个项目都已在 GitHub 开源,欢迎fork,欢迎star,欢迎讨论。GitHub地址:GitHub地址


在开始学习之前,我们先要知道什么是 Netty, 简单地来说,Netty 就是一个 Java 的开源框架,它提供异步的、事件驱动的应用程序框架和应用。概括来说,Netty 是对 Java NIO 的进一步封装,通过使用 Netty 可以迅速搭建出一个简单的 C/S 应用。Netty 支持多种协议(TCP/IP,HTTP、UDP等),并提供了一些简单好用的编码解码方案。由于我们实现的是一个简单的(甚至可以说是简陋的)实时格斗游戏的服务器,需要长连接,并且并不打算专门选办法去处理UDP丢包后的解决方案,所以我们并没有选择相对更加合适的UDP而是选择了TCP协议。同时,也为了服务器实现更加简单,我们并没有采用自定义的编码解码方案,而是直接使用了其已有的编码器和解码器,这里先不赘述,更多 Netty 相关大家请自行了解。


对了对了,介绍完 Netty ,我们先来大概介绍一下整个服务器的技术栈。首先,不用说,网络框架肯定是 Netty, 数据库使用的是 MySQL, 由于我们要的是简单,所以暂时没有使用内存数据库,后期可能会加上 redis。


说了这么多,首先,我们先来配置一下完成一个 Netty 项目需要的环境。

首先,必不可少的应该就是 jdk 了,这里,楼主使用的是 jdk1.8, IDE 使用的是 eclipse, 不过现在已经在转向idea。接下来是 netty 包,楼主这里使用的是 Netty4.2.1,下载链接:netty官网。下载解压后将其中的 all-in-one 中的jar包导入到项目目录下即可。

展开阅读全文

没有更多推荐了,返回首页