1. 系统技术栈配置
| 层 | 技术选型 | 说明 |
|---|---|---|
| 客户端 | Unity 2018.2.10f1 (C# / Mono 运行时) | Android + iOS 跨端;单工程出包 |
| 客户端 SDK | ShareSDK | 微信 / QQ 授权登录与战绩、房间、俱乐部一键分享 |
| 客户端 SDK | OpenInstall | 渠道邀请、安装归因、邀请码绑定 |
| 游戏服 | Java + Apache MINA 2.0.9 (NIO) | 自研 `MsgDispatcher` 消息分发;监听 10150 (客户端)/ 10167 (后台) |
| 聊天服 | Java + MINA | 独立进程,端口 10112 ,与游戏逻辑解耦 |
| 后台 Manage | Java Web: Spring MVC 4 + c3p0 + MyBatis 3.2.3 | WAR 部署于 Tomcat 9 ,端口 8080 ,访问路径 `/manage` |
| 数据库 | MySQL 5.7 (库 `shenlongqipai`,约 32 张表) | 连接池 c3p0;ORM 走 MyBatis `sqlMapper` |
| 运行环境 | JDK 1.8 / Linux(CentOS 7 实测) | 无 Maven/Gradle,采用 手动 `javac` 编译 + Tomcat 部署 |
| 中间件 | 无 Redis / 无 MongoDB / 无 MQ | 本工程为 轻量单库架构 ,未引入缓存与消息队列 |
> 备注:游戏服、聊天服均为独立 Java 进程,经 MINA 长连接对外提供服务;后台为标准的 Spring MVC WAR 应用。
2. 内含丰富游戏清单
服务端以 `GAME_TYPE` 常量路由多套玩法,同一套框架可承载多种棋牌:
| 玩法 | 常量 | 值 |
|---|---|---|
| 扯旋 | `GAME_TYPE_ChengDuMahjong` | 3 |
| 大邑 | `GAME_TYPE_DAYI` | 4 |
| 丁二红 | `GAME_TYPE_DINGERHONG` | 5 |
| 扯旋(主推) | `GAME_TYPE_CHEXUAN` | 5 |
### 扯旋玩法内置规则开关(可配置)
- 番种 / 牌点 :完整川牌牌点体系,从「0 点」到「天牌、地牌、人牌、和牌、丁二皇、三花六、三花十」等招牌组合。
- 地方变体 :`二九地王`、`三花六 / 三花十`、`休芒 / 凑芒 / 圈芒` 等规则可自由开关,适配不同地区“扯旋”习惯。
- 记分体系 :以「皮子」为虚拟积分单位,底皮、最小带入均可自定义。
3. 全套源码目录结构一览
神龙扯旋/ # 工程根
├─ GameServer-ShenLongPuKe/ # 游戏服(独立 Java 进程,MINA)
│ ├─ src/com/dyz/
│ │ ├─ gameserver/ # bootstrap(启动) / commons / context
│ │ │ # logic(牌局核心) / manager / msg(消息处理)
│ │ │ # net / pojo / gamerecord / sprite
│ │ ├─ myBatis/ # dao / daoImp / model / services / sqlMapper
│ │ └─ persist/ # 持久化工具
│ ├─ resources/ # 配置(myBatisConfig 等)
│ ├─ WebContent/WEB-INF/lib/ # 运行时依赖 jar
│ └─ build/classes/ # 手动 javac 编译产物(非 jar)
│
├─ chatServer/ # 聊天服(独立 Java 进程,MINA)
│ ├─ src/com/ # 聊天消息处理
│ ├─ WEB-INF/classes/ WEB-INF/lib/
│ └─ WebRoot/ / resources/ / META-INF/
│
├─ Manage-ShenLongPuKe/ # 后台管理(Spring MVC WAR)
│ ├─ src/com/weipai/
│ │ ├─ controller/ service/impl/ mapper/ # 控制层 / 业务 / 数据映射
│ │ ├─ model/ interceptor/ filter/ aspect/
│ │ ├─ forPay/ timetask/ utils/ common/ client/
│ ├─ WebRoot/ # 前端页面(view/*.jsp) + 静态资源
│ └─ WebRoot/WEB-INF/ # lib / web.xml
│
├─ deploy/ # 部署工具链(sshlib / sshwrap / install / fix 脚本)
│ ├─ headicon_upload/ real_headicon_tmp/
└─ .workbuddy/memory/ # 工作记录
shenlongpukeClient/ # Unity 客户端工程
└─ Assets/
├─ Scenes/Script/ # 全部游戏逻辑 C# 脚本
│ ├─ LoginPanleEvent/ HomePanelEvent/ GameScenes/
│ ├─ netManager/ gameConfig/ utilTool/ userIndexRoomData/ ...
├─ Plugins/
│ ├─ Android/ # 安卓原生插件(含 ShareSDK/OpenInstall/WXEntry)
│ ├─ iOS/ # iOS 原生插件
│ ├─ ShareSDK/ OpenInstall/
├─ Resources/ # 动画/字体/图片/预制体/音效/Shader
└─ DOTween113/ Editor/
> 说明:客户端逻辑集中在 `Assets/Scenes/Script`,服务端三类模块(GameServer / chatServer / Manage)职责分离,`deploy/` 已沉淀一键上线与回滚脚本。
4. 项目核心亮点与架构优势
- 前后端分离 + 长连接 :客户端经 TCP socket 直连游戏服(MINA NIO),低延迟对局;聊天独立服,逻辑解耦不易相互影响。
- 多玩法共用一套服务端框架 :通过 `GAME_TYPE` 路由不同棋牌,新增玩法主要扩展 `logic` 与 `sqlMapper`,边际成本低。
- 自研消息分发 + MyBatis 数据层 :`MsgDispatcher` 统一收口 + `sqlMapper` 清晰映射,结构易读易维护。
- 一体化运营后台 :玩家管理、特殊账号、充值 / 提现、战绩、系统数据、操作日志等集中在 Spring MVC 后台。
- 微信生态深度集成 :ShareSDK 微信登录 / 分享、OpenInstall 渠道归因、`WXEntryActivity` 回调,社交传播链路完整。
- 可配置玩法引擎 :番种与地方变体(二九地王 / 三花六 / 休芒等)在客户端与服务端协同配置,一套代码适配多地规则。
- 智能补位与社群运营 :机器人补位保障弱好友开局顺畅;俱乐部 + 邀请码支撑社群沉淀与老带新。
- 部署脚本化 :`deploy/` 内含 SSH 封装与 install/fix 脚本,便于标准化上线、重启与回滚。
5. 源码部署说明与建议
5.1 基础环境
- JDK 1.8 (游戏服 / 后台编译运行)、 MySQL 5.7 、 Tomcat 9 (后台)。
- 需在防火墙 / 安全组放通端口: 10150 / 10167 (游戏服)、 10112 (聊天)、 8080 (后台)。
5.2 构建与启动
- 游戏服 / 聊天服 :无构建工具,使用 `javac` 编译,`class` 置于 `build/classes`,以 `java -cp "build/classes:WebContent/WEB-INF/lib/*" com.dyz.gameserver.bootstrap.GameServer` 启动。
- 后台 Manage :打成 WAR 部署到 Tomcat `webapps/`,路径 `/manage`。
- 客户端 :Unity 2018.2 打开 `shenlongpukeClient` 出 Android / iOS 包。
5.3 实测踩坑(上线前必读)
1. 后台 lib 拍平 :若 `WEB-INF/lib` 下 jar 分多级目录存放,Tomcat 不会递归加载,需拍平到顶层后重打 WAR。
2. MyBatis mapper XML :游戏服的 `*.xml` 在 `src` 内,需与 `.java` 一并拷入 `build/classes`,否则启动即崩。
3. MySQL 表名大小写 :源码按大写取表(如 `robotSystemConfig`),需设 `lower_case_table_names=1` 后重启 MySQL。
4. 旧 SQL 默认时间 :部分表含 `0000-00-00`,需放宽 `sql_mode` 后重新导入。
5. 微信登录回调 :回调 `WXEntryActivity` 必须位于「应用包名.wxapi」,且 APK 签名指纹(MD5/SHA1)须在微信开放平台登记 (AppID + 包名一致),否则授权结果无法回传。
5.4 运维建议
- 生产环境建议用 nginx 做统一入口与 HTTPS,后台弱口令(默认 `1234`)上线前务必修改。
- 定期备份 MySQL(`shenlongqipai` 库)与 `headIcon` 等静态资源;后台、游戏服、聊天服分别监控进程存活。
- 客户端出包前确认 `Application Identifier`、签名 keystore、微信回调包名三者一致。
演示录屏:
源码截图:
原文链接:https://www.wuyuanma.com/jpym/qpym/21953.html,转载请注明出处。
版权免责声明
① 本站所有源码均为网上搜集,如涉及或侵害到您的版权请立即通知我们。
② 如果网盘地址失效,请在个人中心提交工单,我们会尽快修复下载地址。
③ 本网站所有资源因其特殊性均为可复制品,所以不支持任何理由的退款兑现。
④ 由本站提供的源码拿去用于商业或者违法行为造成严重后果的本站概不负责。
⑤ 本站源码售价只为你赞助本站,收取的费用仅用于维持本站的日常运营所需的费用。
⑥ 本站所有源码,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。











