# xinyue-game-frame **Repository Path**: wgslucky/xinyue-game-frame ## Basic Information - **Project Name**: xinyue-game-frame - **Description**: 心悦游戏开发框架包括Unity3d客户端通信,服务器架构,可以直接用于卡牌游戏,休闲类游戏的开发。本框架实现了客户端与服务端的一些基本功能,让游戏开发者可以尽快的进行业务开发,减少项目的开发周期。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 258 - **Forks**: 118 - **Created**: 2018-10-13 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: game-dev **Tags**: None ## README # xinyue-game-frame ## 心悦集群模式游戏框架 ------------------------------------------------------------------------------------------------------------------------ ## 版本说明 版本由三部分组成,格式为a.b.c,a是主版本,b是小版本,c 代表bug修复 1. 如果新的修改不兼容旧的版本,a会发生变化 2. 如果新的修改只是增加了部分功能,但是兼容旧版本,b会发生变化 3. 如果新的修改只是修复旧有的bug,c会发生变化 ## 主要使用的技术框架 ### 前端 * 提供客户端client-demo * unity3d * Newtonsoft.Json * 协议-http post * 支持PC及移动端异步socket通信 * 支持PC及移到端异步websocket通信 * 支持webGL下websocket通信 ---------------------------------------------------- ## 项目PC客户端 本项目提供了一个PC端的可运行的示例,在client-demo中,运行起来服务器之后,可以下载到本地与服务器联调(如需要客户端源码,可以加微信号:291123097支付获取,并提供全部的技术支持)。 ![微信支付](images/weixin.png) 1. 设置服务器地址及长连接方式 ![输入图片说明](images/c1.png) ![输入图片说明](images/c5.png) 2. 登陆界面 ![输入图片说明](images/c2.png) 3. 选服界面 ![输入图片说明](images/c3.png) 4. 登陆成功界面 ![输入图片说明](images/c4.png) ### 服务器端 * JDK 17 * Spring Boot3.2.4 Spring Cloud(2023.0.2) * Spring Cloud Alibaba (2022.0.0.0) * Nacos 服务注册与发现 版本:2.2.1 * game-gateway 使用netty实现游戏网关,兼容socket及websocket协议 * Netty Client/Server 实现网络层的客户端与服务器通信,实现网关与业务服务之间的通信 * Logback 日志框架 * MongoDB 数据库 * Redis 缓存 * lombok 用于自动生成类的Getter和Setter方法,在IDEA中需要安装Lombok插件 ## 框架层项目 * xinyue-game-gateway-framwork 网关框架,主要实现的功能有: 1. 使用Netty网络通信框架为客户端提供socket或websocket的长连接服务 2. 使用Netty网络通信框架与网关后面的业务服务建立连接,负责转发与响应客户端的请求消息 * xinyue-game-gateway 使用网关框架的demo项目,它依赖了xinyue-game-gateway-framwork项目,自动提供与客户端相互的功能服务,配置好nacos之后,可以直接在idea中启动 * xinyue-game-service-framework 游戏业务服务框架,它提供了网关可以连接的服务接口,与维护与网关的长连接。封装了处理客户端的业务请求接口,开发人员只关注于业务的开发即可。 * xinyue-game-server 这是一个游戏业务服务的示例服务,它依赖了xinyue-game-service-framework,并实现了几个简单的示例接口处理。 * xinyue-game-common 公共代码及工具代码都放在这里,方便不同项目的依赖 * xinyue-game-dependencies 整个项目的版本依赖管理项目,方便在开发项目时,依赖对应的maven坐标 * xinyue-center-server 这是一个web项目,负责用户注册,角色创建,及相关的公共接口管理,可以理解为一个综合功能的项目。 ## 实现的主要功能 1. 实现unity C#客户端与服务器的TCP SOCKET网络连接(比较大型的游戏会使用这种,比较端游,APP游戏) 2. 实现unity C#Ptyn端与服务器的WEB SOCKET网络连接(小程序游戏会使用这种,比如微信小程序,抖音小程序,或h5小游戏) 3. 实现网络连接的断开重连功能,解决在弱网环境下网络不稳定的问题 4. 实现网络层的心跳机制 5. 实现网络消息的序列化与反序列化 6. 实现网络消息包的粘包与断包处理 7. 实现账号注册与登陆功能 ### 服务整体架构 ![输入图片说明](images/framework.png) ## 项目部署方式 ### 安装基础服务 1. 安装Nacos-服务发现与注册服务 2. 安装MongoDB 3. 安装Redis ### 添加maven mirror 在maven的settings.xml中,添加mirror配置仓库地址: ``` nexus-mirror * code_maven http://124.71.140.30:8081/repository/maven-public/ ``` ### 修改项目配置 1. xinyue-game-server 修改resource中的bootstrap.yml,当前项目默认是从nacos读取的数据库及redis配置,需要把配置添加到nacos中,且要配置好nacos的命名空间namespace,需要使用者对nacos的使用有些了解。如果不想使用nacos中的配置,可以注释掉nacos获取配置的配置,修改并激活application-dev002配置即可。 2. xinyue-game-gateway 修改resource中的bootstrap.yml,application-dev.yml, application.yml相关配置,把nacos相关配置配置成自己环境的nacos配置。 更多信息,可以关注公众号获取 ![欢迎关注公众号](https://images.gitee.com/uploads/images/2020/0307/145153_d26d192a_23677.png "QQ截图20191104223446.png")
微信支付获取客户端源码及全部技术服务,如需要加微信,可关注上面的公众号,发送消息:加个微信 , 扫二维码即可。 ![微信支付](images/weixin.png)
# 商品推广 [![输入图片说明](images/%E7%B4%A0%E6%9D%90%E5%9B%BE%E7%89%87%20(2).jpg)](http://s.click.taobao.com/Gm5D6Jr) 🎁【薇诺娜保湿修护面膜】 到手100元 - 透明质酸 + 保湿 + 滋润 + 敏感肌适用!!有效改善干燥敏感问题!正品实惠,专业放心!!品牌优势,信心之选!!独立包装,方便携带使用,随时随地享受优肌体验!! [点击查看](http://s.click.taobao.com/Gm5D6Jr)