欢乐游源码
约 1228 字大约 4 分钟
2025-03-21
欢乐游是一款基于 Pomelo 框架的棋牌游戏平台,支持多端部署,提供完整的服务端、后台管理与客户端解决方案。本文档介绍项目构成、特色功能与部署方法。
框架复用
情怀、七星、聚友等市面的子游戏均可以复用此框架。
项目构成
项目源码主要包含以下目录(以源码目录为例):
happy/
├── client/ # Cocos Creator 2.4.11 客户端源码
├── server/ # 服务端
│ ├── Server/ # Pomelo 游戏服务端
│ └── adminServer/ # 后台管理系统 nodejs
└── doc/ # 项目文档
├── 服务器搭建文档.mkd
└── docs/ # 技术文档客户端 (client)
- 引擎:Cocos Creator 2.4
- 用途:游戏前端展示与交互
- 配置:需修改
Constant.gameServerAddress、Constant.webServerAddress为服务器真实 IP
服务端 (server/Server)
- 框架:Pomelo(Node.js 游戏服务器框架)
- 端口:13000(客户端连接)、14000(HTTP/后台)
- 依赖:MongoDB、Redis
- 目录:
Server/config/servers.json中配置clientHost等
后台 (server/adminServer)
- 技术栈:Express(Node.js)+ Vue 3 + Vite + Element Plus
- 端口:默认 14000
- 访问:
http://服务器IP:14000/gm-tools-vue/ - 管理:用户、在线、游戏控制等
文档 (doc)
- 服务器搭建、接口说明、迁移与调试等技术文档
项目特色
游戏种类与框架玩法
- 俱乐部:支持俱乐部/公会体系,玩家可创建或加入俱乐部,俱乐部内组局对战
- 匹配:快速匹配系统,自动为玩家匹配同等级、同玩法的对手
- 金币场:金币场玩法,支持多种底注档位,玩家自由进出
- 好友对局:支持好友约战、房间邀请,与好友私房对战
后台与运营
- 后台功能丰富:用户管理、在线监控、游戏控制、数据统计、系统设置、推广配置等
- 高度可配置:玩法参数、底注、局数、结算规则等均可通过后台配置,无需改代码
- 子游戏商城:内置子游戏商城,支持道具、皮肤、活动礼包等扩展变现
- AI 机器人:内置 AI 陪玩机器人,可自定义数量与行为,保障冷启动与对局流畅
- 胜率可控:支持后台配置机器人胜率、出牌策略等,灵活调控对局体验
- 无限极代理模式:支持多级代理分销,无限层级,可配置佣金比例与提现规则
技术特色
| 特色 | 说明 |
|---|---|
| 多端支持 | 基于 Cocos Creator,可发布 APP、H5、PC 多端 |
| Pomelo 框架 | 成熟的 Node.js 游戏服务器框架,支持分布式与高并发 |
| 前后端分离 | 后台采用 Vue 3 + Vite 现代化前端,接口统一由 Express 提供 |
| 易扩展 | 模块化设计,支持新增玩法与后台功能 |
| 完整闭环 | 客户端、游戏服务、后台管理、数据库一应俱全 |
环境要求
| 软件 | 版本/说明 |
|---|---|
| Node.js | 建议 16+,安装时建议默认路径 |
| Python | 2.7.x(如 python-2.7.18.amd64) |
| MongoDB | 建议不创建账号密码,避免认证配置 |
| Redis | 直接解压使用,启动 redis-server redis.windows.conf |
| Pomelo | 全局安装 npm install pomelo -g |
| Cocos Creator | 2.4.11 版本 |
内网环境
若为内网,可设置 npm 镜像与关闭 ssl 验证:
npm config set registry https://registry.npm.taobao.org
npm config set strict-ssl false部署步骤
一、基础环境安装
- 安装 Node.js、Python 2.7、MongoDB、Redis(详见项目内
doc/服务器搭建文档.mkd) - 全局安装 pomelo:
npm install pomelo -g
二、游戏服务端部署
cd server/Server
npm install -d- 修改
Server/config/servers.json中clientHost为服务器真实 IP - 配置数据库(如
config/mongo.json):
{
"mongo": {
"host": "127.0.0.1",
"port": 27017,
"database": "GameCityCF",
"user": "",
"password": ""
}
}- 启动:
pomelo start -e production -D - 停止:
pomelo stop - 重启:先
pomelo stop,再pomelo start -e production -D
防火墙
需开放 13000、14000、12000 端口,以及 product.connentor.clientPort 对应端口。
三、后台部署
cd server/adminServer
npm install -d
npm install pm2 -g
pm2 start后台默认端口 14000,可在 WebServer/bin/www 中修改。
四、MongoDB 超级管理员
在 Mongo 库的 admins 集合中插入:
db.admins.insertOne({
"uid": 1,
"account": "admin",
"password": "123456",
"nickname": "超级管理员",
"permission": -1,
"createTime": 0
})后台访问:http://服务器IP:14000/gm-tools
五、Vue 版后台(可选)
cd server/adminServer/vue-admin
npm install
npm run build构建产物输出到 adminServer/public/gm-tools-vue/,访问 http://服务器IP:14000/gm-tools-vue/。
六、客户端配置与打包
- 修改
Client/assets/Script/Shared/Constant:Constant.gameServerAddress = http://服务器IP:13000Constant.webServerAddress = http://服务器IP:14000
- 使用 Cocos Creator 2.4 构建目标平台
常见问题
登录返回 code 1 或 code 109
多为 connector 未就绪,可排查:
- 查看
Server/logs/pomelo-connector-1.log,是否有after start all err:或 MongoDB/Redis 连接失败 - 确认 MongoDB、Redis 配置与本地一致
pomelo list确认 connector、hall、center 等进程均已启动- 启动后等待数秒再让客户端重试
MongoDB 错误
若出现 MongoError: Unsupported OP_QUERY command: insert,多为驱动版本不兼容,需升级 MongoDB 驱动或客户端。
联系方式
- QQ:407193275
- Telegram:@qmcloud
