218款地方玩法共享一套Pomelo服务端:七星棋牌全套开源源码

房卡联盟2026-08-26560 阅读
约 2,641 字 · 大约 9 分钟

七星棋牌不是一款单独的游戏产品,而是一套"地方棋牌生产线"。同一个游戏服务端代码库里,塞进了五个省几十个城市的麻将、字牌、扑克规则;前端按地区拆成七个独立的 Cocos2d-x 客户端工程,各自换上地方特色的角色形象和背景画面。从邵阳崀山脚下的苗家少女,到晋中金殿前的财神爷,每个版本的大厅完全不同,但背后连的是同一组服务器进程。

七星 邵阳版大厅主页
七星 贵州版大厅苗族风格
七星 晋中版大厅财神风格
七星 岳阳版大厅都市风格
七星 H5版大厅日间主题
七星 H5版大厅夜间主题

整体架构与技术栈

整套源码分为四大模块:游戏服务端、CMS 管理后台、多套地方客户端、以及辅助工具链。

模块

技术栈

说明

游戏服务端

Node.js + Pomelo 2.2.5

六类进程协作,处理全部游戏逻辑

CMS 管理后台

Node.js + Express

用户管理、代理体系、充值、数据统计

地方客户端(7套)

Cocos2d-x 3.16 + Lua/JS

每套独立美术资源和地区配置

热更新工具

Node.js 脚本

生成版本清单,支持客户端增量更新

游戏测试工具

C++ (jtool)

Windows 桌面工具,模拟客户端运行

数据层方面,服务端同时依赖三套存储:MySQL 做主数据库并配置了主从读写分离(master/slave/beta 三个实例),MongoDB 存储非结构化数据,Redis 同样主从部署用于缓存和会话管理。文件存储走阿里云 OSS。

服务端六进程架构

Pomelo 是网易开源的 Node.js 游戏服务端框架,天然支持多进程和分布式部署。七星的服务端把游戏运行时拆成了六类进程:

进程类型

作用

端口范围

pkmaster

主协调进程,管理其他进程生命周期

3005-3007

pkcon

连接网关(frontend),客户端直连

15000-15039 / 16010+

pkplayer

玩家数据服务

15100-15139

pkclub

亲友圈/俱乐部管理

15200-15239

pkleague

联盟系统

15250-15269

pkroom

房间与游戏逻辑(最重的一层)

15300-15339

这六类进程通过 Pomelo 内置的 RPC 机制通信。pkcon 是唯一对外暴露的 frontend 进程,客户端 WebSocket 连接落在这里;它再把请求分发给后面的 pkplayer、pkclub、pkroom 等 backend 进程处理。pkroom 承载了全部 218 个游戏逻辑文件,是整套系统中代码量最大的部分。

服务端通过环境变量 NODE_ENV 区分地区,同一份代码在不同环境下加载不同的游戏配置和参数:

NODE_ENV=shaoyang   → 邵阳版配置,注册送90元宝
NODE_ENV=yueyang    → 岳阳版配置,注册送3000元宝
NODE_ENV=hubei      → 湖北版配置,注册送30元宝
NODE_ENV=jinzhong   → 晋中版配置,注册送9元宝

每个环境对应一组独立的 MySQL/MongoDB/Redis/微信支付配置,按地区隔离数据。启动脚本 run.sh 先解散所有在线房间、SVN 拉取最新代码、按端口范围逐一杀掉旧进程,最后用 pomelo start -e $NODE_ENV -D 拉起整个集群。

客户端:七套地方皮肤

七个客户端工程按地区命名,每个都是完整的 Cocos2d-x 项目:

客户端

对应地区

视觉风格

shaoyang

邵阳

崀山风景 + 苗家少女角色

yueyang

岳阳

洞庭湖畔 + 类似风格

guizhou

贵州

梯田背景 + 苗族银饰角色

jinzhong

晋中

金殿宫阙 + 财神爷角色

jiangsu

江苏

另一套独立美术

hubei

湖北

精简版,游戏数量较少

shaoyang-min

邵阳精简版

缩减 UI 和资源的轻量版

每个客户端工程内部结构一致:src/ 下按游戏类型划分子目录(majiang_*、poker_*、zipai_*),res/ 放纹理和音效资源,cocosstudio/ 放 UI 编辑器工程文件。除了 hubei 版只有约 25 个游戏模块,其余客户端都包含了完整的 200+ 游戏实现代码,通过地区配置决定大厅里展示哪些玩法。

客户端同时支持原生 APP 和 H5 两种形态,截图中可以看到 H5 版本号标识 v99.0.2(h5)。热更新通过 project.manifest 文件对比版本差异,增量下载变更的资源和脚本。

七星 湖南省地图选区界面
七星 湖南省地图选区界面

游戏玩法全览

218 个服务端游戏逻辑文件,按品类大致分为三类。创建房间时界面上清晰地分成"字牌"、"麻将"、"扑克"三个标签页,每个标签页下罗列该地区可用的玩法。

七星 创建房间麻将选择
七星 创建房间扑克选择
七星 创建房间字牌选择

麻将类(约 120 款)

覆盖地区最广的品类,几乎每个城市都有自己的麻将规则变体。

省份

代表玩法

湖南

转转麻将、长沙麻将、红中麻将、258麻将、邵阳麻将、衡阳长沙麻将、岳阳红中、新宁麻将、宁乡开王、桃江麻将、益阳麻将、郴州麻将、道州麻将、怀化麻将、湘阴推倒胡、平江站鸟

贵州

贵阳捉鸡、安顺、毕节、都匀、金沙、凯里、六盘水、普定、仁怀、铜仁、翁安、兴义、遵义、黎平、荣江、天柱、绥阳、安龙

山西

晋中麻将、晋中财神、晋中扣点、大同拐三角、平遥麻将、介休扣点、灵石、吕梁、运城、临汾、五台

江苏

淮安麻将、南通红中、海安、如皋、南京、连水、洪泽、泗阳、连云港、响水、徐州、沛县

湖北

荆州麻将、武穴、大冶、黄石、蕲春、通山、潜江、恩施、宜昌、荆门、石首、江陵

字牌/跑胡子类(约 55 款)

湖南和湖北特有的传统纸牌玩法,地域性极强。

地区

玩法列表

邵阳

邵阳字牌、邵阳剥皮、大字剥皮、放炮罚、六胡抢、十胡卡、十五胡

岳阳/长沙

碰胡、跑胡子、福禄寿、96 扑克、落地扫

衡阳/永州

红拐弯、永州扯胡子、永州落地扫、老戳

湘潭/湘乡

告胡子、跑胡子、湘潭跑胡子、外胡子

湖北

大冶字牌、公安花牌、当阳翻筋、恩施烧胡、通城个子牌、宜昌上大人

七星 字牌玩法邵阳系列
七星 字牌玩法湘潭永州系列

扑克类(约 45 款)

类型

代表玩法

跑得快

11张/15张/16张跑得快,含淮安、海安、徐州、连云港等地方规则变体

斗地主

通用斗地主、大同斗地主、贵州斗地主、湖北通用斗地主、晋中斗地主等 12 个变体

地方扑克

三打哈(衡阳/邵阳/湘潭/岳阳/永利)、510K(武穴/大冶)、大炸弹、八炸弹、半边天炸、打筒子、大马子、牛十别、干瞪眼

七星 亲友圈房间列表
七星 亲友圈房间列表

亲友圈与代理体系

亲友圈(俱乐部)是这类地方棋牌的核心运营单元。服务端专门划出了 pkclub 和 pkleague 两类进程来处理亲友圈和联盟的逻辑,联盟人数上限配置为 10000 人。

CMS 后台提供完整的代理分销体系管理:代理充值、代理提现、代理报表、代理层级关系、代理佣金(直属上级 7%、间接上级 2%)。后台使用 Express 搭建,前端是传统的 HTML + jQuery 页面,支持 Excel 数据导出、二维码生成、极光推送和邮件通知。

七星 亲友圈内部桌台
七星 258麻将牌局界面

部署条件与步骤

服务器要求

项目

要求

操作系统

CentOS 7 / Ubuntu 18.04+

Node.js

10.20.1(Pomelo 2.x 兼容的 LTS 版本)

MySQL

5.7+,需配置主从(master + slave + beta 三个实例)

MongoDB

3.6+

Redis

5.0+,主从部署

内存

建议 8GB+(六类进程同时运行)

端口

3005-3007, 9990, 15000-15339, 16010+

部署步骤概要

  1. 导入数据库:执行 230403141253.sql(21MB,包含全部表结构和基础数据),配置 MySQL 主从。

  2. 启动游戏服务端:进入 game-server/,安装依赖后设定环境变量启动:

cd game-server && npm install
export NODE_ENV=shaoyang
pomelo start -e $NODE_ENV -D
  1. 启动 CMS 后台:进入 带控后台/cms/,安装依赖后启动:

cd cms && npm install
node main.js
  1. 配置客户端:修改各客户端工程中的 project.manifest 文件,将热更新地址指向自己的服务器;修改服务器连接地址。

  2. 客户端编译:安装 Cocos2d-x 3.16,用 CocosStudio 编辑 UI,分别编译 Android/iOS/H5 三端。Android 需要生成 keystore 签名文件,iOS 需要开发者证书。

  3. 热更新配置:运行 热更打包用/ 下的脚本生成版本清单文件,上传到 OSS 或 Web 服务器供客户端增量更新。

整套部署预计耗时 2-3 天,主要时间花在数据库配置调优、多环境参数替换、以及客户端编译打包上。

二开可行性

这套源码的二开空间相当大,同时门槛也不低。

有利条件: 服务端和客户端源码完全开放,没有加密或混淆。218 个游戏逻辑文件都是原始 JavaScript,可以直接阅读和修改。Cocos2d-x 客户端工程完整,包含 CocosStudio 编辑器文件,UI 可以可视化调整。附带了十多份开发文档(docx/doc),涵盖了新游戏代码修改、打包流程、OSS 配置、iOS 签名、微信密钥申请等操作指引。

挑战之处: 代码量极大,仅 pkroom 下的游戏逻辑文件合计就超过 15MB 的纯 JavaScript。每个地方麻将规则都是独立实现的,没有抽象出通用的规则引擎——加一个新地区的麻将,需要复制一份最接近的实现再逐条改规则。七套客户端工程的 src/ 目录内容几乎一模一样(都是 200+ 游戏模块的全集),区别只在资源和配置,维护成本较高。Cocos2d-x 3.16 是 2019 年前后的版本,依赖的 C++ 编译环境比较老(VS2013/Eclipse),新系统上搭环境需要额外折腾。

适合的二开方向: 新增一个地区版本(换皮+挑选玩法子集)成本最低,约一周;调整现有游戏的规则参数(局数、抓鸟、翻倍规则)只需改配置文件;新增一款全新玩法需要写 GameCode + MaJiang/Poker/ZiPai 两套逻辑文件,参考现有模板约 2-3 天。


这套七星源码的价值在于它的广度——218 款游戏逻辑覆盖了中国中南部五个省份几十个城市的地方棋牌规则,从贵州安顺麻将到山西晋中扣点、从湖南邵阳字牌到江苏淮安跑得快,每一套规则都有完整的服务端逻辑和客户端 UI 实现。Pomelo 框架的多进程架构让这些游戏能共享同一套基础设施,通过环境变量切换就能为不同地区提供定制化服务。作为地方棋牌领域的工程参考,这套代码库的覆盖面很难找到同量级的对手。

下载地址

本资源为付费内容,登录后可下载