C++服务端六进程架构的捕鱼游戏:第5代全民捕鱼源码全栈拆解

捕鱼源码2026-08-24474 阅读
约 2,510 字 · 大约 8 分钟

整体技术栈

层级

技术方案

服务端

C++(Visual Studio 2012,Boost.Asio 网络层,六进程架构)

网络协议

Google Protocol Buffers(142 套 .proto 定义)

游戏逻辑

fishlord.dll(动态加载的游戏 DLL,524 个源文件)

数据库

MongoDB 3.4(副本集,C++ 驱动直连)

缓存

Redis 4 实例(排行/全局/资格赛/配置各一个)

脚本引擎

Lua 5.1(fflua 绑定层,525 个 Lua 配置脚本)

客户端

CocosCreator 2.4.3 + TypeScript(690 个 .ts 文件)

运营后台

ASP.NET WebForms(联运后台 760 页 + 客服后台 349 页)

Web 服务

6 个独立 ASP.NET 站点(登录/支付/充值/接口/短信/内部服务)

崩溃收集

Google Breakpad

在同类捕鱼游戏源码中,用 C++ 写服务端的很少见。多数方案是 Java 单体或 Node.js 进程,配置改改就跑。这套不一样——六个独立进程各管各的,靠 Protobuf 做进程间通信,游戏逻辑编译成 DLL 由 logic 进程动态加载,是标准的分布式游戏服务器做法。

01 大厅功能总览

客户端大厅界面 -- 出海捕鱼、神秘海域、炸弹乐园、竞技场、南海寻宝五个玩法入口


服务端架构

六个 EXE 进程按职责拆分,启动有严格顺序:

启动顺序

进程

职责

Release 体积

1

monitor.exe

健康监控、HTTP 管理命令、异常告警

1.5 MB

2

center.exe

中心调度、服务注册、玩家路由

2.3 MB

3

global.exe

全局数据、跨服活动、邮件、CDKey、空投

2.8 MB

4

world.exe

大厅/世界服——玩家管理、充值、邮件、好友、聊天、VIP、排行、商店、任务

11.3 MB

5

logic.exe

逻辑服——加载 fishlord.dll,托管房间实例、管理机器人、活动系统

2.6 MB

6

gate.exe

网关——客户端连接入口,数据包路由转发

2.3 MB

world.exe 最大(11.3 MB),因为它承载了几乎所有非游戏逻辑的业务功能。从源码目录看有约 300 个源文件,涵盖充值、邮件、好友、聊天、VIP、排行、商城、任务、支付等模块。

游戏玩法本身打包成 fishlord.dll(31.9 MB Debug 版),由 logic.exe 动态加载。DLL 里有 524 个源文件,覆盖鱼类生成、房间管理、牌桌控制、炮台系统、竞技场、Boss 战等全部游戏玩法逻辑。启动脚本里注释掉了骰子、鳄鱼、百家乐、斗牛、五龙等其他游戏 DLL 的启动行,说明这个引擎框架支持挂载多种游戏——但当前只启用了捕鱼。

06 服务端VS编译

Visual Studio 服务端解决方案 -- game/lib/server 三层结构,9 个子项目


客户端与玩法

CocosCreator 2.4.3 项目,690 个 TypeScript 文件,297 个预制体,10 个场景。分辨率 1280x720 横屏,支持 4 人同屏。

核心场景链路:StartScene(启动检测)→ LoginScene(登录注册)→ LoadingScene(资源加载)→ LobbyScene(大厅选房)→ ChoiceScene(选场次)→ GameScene(捕鱼对局)。另有 BombScene(炸弹乐园)、SeaScene(海洋场景)、MatchScene(竞技场)三个独立玩法场景。

游戏玩法拆开看:

  • 常规捕鱼(出海捕鱼/神秘海域):经典模式,多档倍率房间(300-10000),鱼群按预设路径游动,玩家开炮捕鱼

  • 炸弹乐园:独立场景的爆炸玩法,鱼雷道具为核心

  • 竞技场:PvP 排名赛,每日定时开启(00:30-24:00),有入围奖励和周榜

  • 南海寻宝:寻宝探险副玩法

  • Boss 战:大圣下凡、巨鲨、鲲、龙王、海王、财神、白虎、玄武等十余种 Boss 来袭模式

02 大厅选房间

房间选择界面 -- 龙王传说/聚宝金龟/海王宝藏三档房间,不同金币门槛和人数

03 竞技场入口

竞技场入口 -- 欢乐炸定时开启、周榜排名、鱼雷道具系统

炮台系统做得精细:支持多种炮台造型,有倍率切换(当前最高 90 倍)、炮台升级(20/25 级进度条)、技能弹头(钻头弹、冰冻弹、追踪火龙等 4 种特殊弹药)、锁定瞄准功能。营销功能也很齐全——幸运转盘、骰子小游戏、老虎机、砸蛋抽奖、每日签到、月卡、成长基金、战令(Fish Pass),基本把手游常见的付费点都做进来了。

04 捕鱼对局实机

捕鱼对局界面 -- 新手任务引导、炮台升级、技能弹头、锁定瞄准、多种活动入口

05 暴富特效

击杀 Boss 暴富特效 -- 金币飞溅全屏,视觉反馈拉满


运营后台

后台是 ASP.NET WebForms 技术栈(.NET Framework 4.5-4.6.1),分联运后台和客服后台两套系统,合计 13 个 VS 项目。

联运后台(AdminLianYun):760 个 .aspx 页面,是总控台。从页面结构看,功能分四大块:

  • 运营管理(50 页):玩家操控(加金/扣金/封号/解封)、充值查询、游戏控制(机器人作弊参数、盈亏实时监控)、活动配置、通知推送(极光/极光/广播)、礼品码生成与查询、渠道管理

  • 统计分析(255 页):最大模块,按子游戏分目录——fish/fishpark/baccarat/dice/crocodile/cows 等,每个子游戏都有独立的收支报表、房间统计、控制参数页;外加 TalkingData 数据对接(18 页)

  • 客服工具(28 页):账号查询/封禁、密码重置、邮件系统、充值补单、兑换审核、流失玩家召回

  • 玩家信息(2 页):基础信息和 VIP 详情

客服后台(AdminKefu):349 页,是联运后台的阉割版,只保留了客服需要的账号查询、封禁、充值查询等功能。

07 Web后台项目结构

Visual Studio Web 解决方案 -- 充值支付/公用/广告接口/客服后台/联运后台五个分组,13 个项目


支付与渠道

这套系统的渠道集成量非常大。登录服务(HttpLoginFish5)支持 40+ 平台登录:华为(5 个版本)、百度、vivo(3 个版本)、小米(3 个)、OPPO、YSDK/QQ(4 个)、微信、UC、魅族、快SDK、多游等。支付回调服务(HttpRecharge)对接了同样数量级的支付渠道:支付宝(扫码+网页)、微信支付(扫码+网页)、Apple IAP、各大安卓应用商店支付,以及 AnySDK、QuickSDK 等聚合通道。

客户端构建也覆盖了多端:Android(armeabi-v7a/arm64-v8a/x86)、iOS、Windows、Mac、微信小游戏、QQ 小游戏、华为快游戏、OPPO 快游戏。publish 目录里有完整的自动化构建脚本和 AnySDK 签名流程。


配置工具链

源码附带两个 WinForms 工具:

ExeclExport:Excel 配置导出器。326 张 Excel 表定义游戏数据(鱼种、房间、炮台、道具、活动、VIP 等级等),工具读取后同时生成四种格式——C++ 服务端代码 + XML 数据文件 + Lua 客户端脚本 + TypeScript 客户端配置。一张 Excel 表同时喂服务端和客户端,保证两端数据一致。

FishEdit:鱼类路径编辑器 + 鱼阵编辑器。可视化编辑鱼的游泳路线和群组编队,编辑结果导出为 XML 供服务端和客户端共用。


部署流程

预计 6-8 小时,需要 Windows Server(服务端是 Win32 原生程序,不跑 Linux)。

  1. 安装 Visual Studio 2012 + 2017(支付接口用了 C# 7.0 特性,需要 VS2017),安装 .NET Framework 4.6.1 开发包(源码自带安装包)

  2. 安装 MongoDB 3.4(源码自带 .rar 安装包),启动并配置副本集

  3. 安装 Redis,启动 4 个实例(端口 6156-6159,密码 qwer1234),分别用于配置缓存、资格赛排行、全局数据、大奖赛排行

  4. 用 VS2012 打开 server\server\win\server.sln,编译生成六个 EXE + fishlord.dll

  5. 配置 Server_ServerListCFG.xls(服务器 IP、端口、房间分配)、Server_DBListCFG.xls(MongoDB 连接)、Server_CacheListCFG.xls(Redis 连接),用 ExeclExport 重新导出 XML

  6. 按顺序启动:monitor → center → global → world →(等 2 秒)→ logic →(等 3 秒)→ gate

  7. 用 VS2017 打开 web\WEB.sln,编译并发布各 Web 站点:LoginAPI(登录服)、Pay(支付回调)、ServiceFish(内部接口)、Admin(联运后台)、kefu(客服后台);部署到 IIS

  8. 安装 CocosCreator 2.4.3(通过已装的 CocosDashboard 下载),打开 client_by 项目,修改服务器 IP 后构建 APK

  9. 配置热更新:修改 manifest 中的资源服务器 URL,用热更新工具打包版本差异


二开评估

评估维度

结论

源码完整性

高。服务端 C++ 源码完整(1745 个源文件),客户端 TypeScript 完整(690 个),后台 C# 完整(3302 个),工具链完整

代码规模

大型。服务端+共享库 2.5 万源文件(含第三方),客户端 690 个脚本+297 个预制体,后台 1100+ 页面

二开难度

高。C++ 服务端编译调试门槛高,需要 VS2012 + Boost 环境;多进程联调复杂;配置工具链学习成本不低

架构质量

专业级。多进程隔离、DLL 热插拔游戏逻辑、Protobuf 通信、Breakpad 崩溃收集,是正规游戏公司的工程规范

主要优势

全源码交付(服务端+客户端+后台+工具链),可以改到底;C++ 性能天花板高;多游戏 DLL 框架可复用

主要限制

服务端绑定 Windows(Boost.Asio 的 Win32 实现);VS2012 老旧;C++ 开发效率低于 Java/Go;MongoDB 不如 MySQL 通用

二开方向

换皮(客户端美术资源+预制体替换)、加鱼种/Boss(Excel 配鱼 + FishEdit 画路径 + DLL 加逻辑)、挂载新游戏 DLL(引擎本身支持多游戏插件)

这套源码的定位很清楚——国内市场的话费/金币模式捕鱼游戏(App 图标写着"赢话费")。技术上是这类源码中少见的 C++ 全源码交付:不是 JAR 包或混淆后的 JS,而是能编译、能调试、能改逻辑的原始代码。引擎框架的 DLL 插件设计也留了扩展空间,启动脚本里注释掉的骰子/百家乐/斗牛等游戏说明这不只是个捕鱼引擎,而是一套通用的在线游戏服务器框架。短板在于 C++ 开发门槛高,没有 Java/Go 那种改几行就跑的便利性,改逻辑需要重新编译整个解决方案。

延伸阅读1 篇

下载地址

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