广告
项目概述
项目名称: 消失的十天(dldl)
项目类型: 多人在线游戏项目(MMO/MMOG)
架构模式: 客户端-服务器(C/S)架构
项目结构
1. Game_Client(Unity 客户端)
技术栈:
- 引擎: Unity 2020.2.6f1
- 脚本语言: C# + Lua(ToLua框架)
- UI框架: UGUI
- 资源管理: AssetBundle
- 动画系统: DOTween
- 本地化: 支持多语言(EN、HK、TH等)
目录结构:
Assets/Scripts/– C#脚本(1145个.cs文件)Assets/Lua/– Lua脚本(1228个.lua文件)Assets/Resources/– 游戏资源(8299个Prefab,2337个XML)Assets/StreamingAssets/– 流式资源(249个ACB音频文件)Assets/UI/– UI资源Assets/Plugins/– 第三方插件SDKResource_iOS/– iOS SDK资源(702个文件,包含Firebase、Facebook SDK、Google Sign In等)Android_Project/– Android原生项目(包含Java代码和Gradle配置)
Unity Packages:
- TextMeshPro 3.0.6
- Post Processing 3.0.3
- Timeline 1.4.6
- UGUI 1.0.0
- Unity Analytics
- Unity Ads
- Unity Purchasing
目标平台:
- ✅ Android(armeabi-v7a, arm64-v8a)- 已配置且已构建
- ✅ Windows – 已配置
- ⚠️ iOS – 已配置但未实际生成客户端(缺少iOS构建缓存和Unity iOS模块)
2. Game_Server(C# 服务器)
技术栈:
- 语言: C#
- 框架: .NET Framework
- 数据库: MySQL
- 缓存: Redis
- 消息协议: Protocol Buffers 3.6.x
- 日志系统: 自定义Logger
2.1 核心服务器组件
服务器采用微服务架构,包含以下核心组件:
- GateServer(网关服务器)
- 客户端连接入口
- 负责消息路由和转发
- ZoneServer(游戏世界服务器)
- 游戏主逻辑服务器
- 包含1120个CS文件,是最大的服务器模块
- BattleServer(战斗服务器)
- 处理战斗相关逻辑
- BattleManager(战斗管理器)
- 战斗匹配和管理
- GlobalServer(全局服务器)
- 全局数据管理
- RelationServer(关系服务器)
- 社交关系处理(99个CS文件)
- ManagerServer(管理服务器)
- 服务器管理
- PayServer(支付服务器)
- 支付处理(31个CS文件)
- AnalysisServer(分析服务器)
- 数据分析
- CrossServer(跨服服务器)
- 跨服务器功能
- BarrackServer(兵营服务器)
- 角色管理
2.2 公共库(Common)
CommonLibrary.sln 包含以下模块:
- Logger – 日志系统
- Message(消息系统)
- ClientProtocol – 客户端协议
- ServerProtocol – 服务器协议
- BuildClientProtocol – 协议构建工具(C++)
- BuildServerProtocol – 协议构建工具(C++)
- DBUtility – 数据库工具(118个CS文件)
- RedisUtility – Redis工具(53个CS文件)
- DataProperty – 数据属性
- DataUtility – 数据工具
- CommonUtility – 通用工具
- EnumerateUtility – 枚举工具(89个CS文件)
- ServerModels – 服务器模型(361个CS文件)
- SocketShared – Socket共享
- MessagePacker – 消息打包器
- CryptoUtility – 加密工具
- Script(脚本系统)
- ScriptConsole – 脚本控制台
- ScriptFunctions – 脚本函数
- ScriptInterfaces – 脚本接口
- ScriptWrapper – 脚本包装器
- ScriptFighting – 战斗脚本
2.3 数据库结构
数据库文件:
account_dl_ok.sql– 账号数据库gamedb_dl_ok.sql– 游戏数据库dl_logdb.sql– 日志数据库player_loss_intervene.sql– 玩家流失干预
数据库更新: 包含46个更新SQL脚本。
3. DataTransfer(数据迁移工具)
技术栈:
- 语言: Python 2.7 + C#
- 数据库: MySQL(PyMySQL)
- 数据分析: SensorsAnalytics集成
功能模块:
- 战斗数据分析(Battle、Battle1v1、Battle2v2)
- 玩家行为分析(CreateChar、Login、Logout、Online)
- 经济数据分析(Consume、Obtain、Recharge)
- 社交数据分析(Comment、ListenChat、Question、Tipoff)
- 地图数据分析(Entermap、Quitmap)
- 任务数据分析(Task)
配置:
- 日志路径:
C:LogTrackingLog - 数据库:
dldl_trackinglog - 支持自动清理(31天间隔)
4. Excel(配置管理工具)
功能: Excel配置表转CSV工具。
目录结构:
Client/– 客户端配置(9个Excel文件)l10n/– 本地化配置(EN、HK、TH)Announcement/– 公告配置tools/– 转换工具(Python 2.7)
配置类型
- AndroidDevices – Android设备配置
- CPUModel – CPU型号配置
- DisplayQuality – 显示质量配置
- iPhoneType – iPhone类型配置
- NotchAdapter – 刘海屏适配
- PreloadConfig – 预加载配置
工作流程
- 编辑Excel配置表
- 运行批处理脚本导出CSV
- 客户端:导入到
Resources/XML/ClientCSV - 服务端:导入到
Bin/Data/CSV
支持的数据类型
- int(整数)
- string(字符串)
- float(小数)
- bool(布尔值,0/1)
技术特点
- 多语言支持
- 支持英语(EN)、繁体中文(HK)、泰语(TH)
- 配置化的本地化系统
- 热更新支持
- Lua脚本支持运行时更新
- AssetBundle资源热更新
- 数据驱动
- Excel配置表系统
- CSV格式配置数据
- 服务端和客户端共享部分配置
- 微服务架构
- 多个独立的服务器进程
- 服务间通过Protocol Buffers通信
- 支持跨服务器功能
- 数据分析
- 完整的玩家行为追踪
- 战斗数据统计
- 经济数据分析
- 集成第三方分析平台(SensorsAnalytics)
- 脚本系统
- 支持Lua脚本(客户端)
- 支持C#脚本系统(服务端)
- 战斗脚本化
开发工具链
- 协议生成工具
- Protocol Buffers 3.6.x
- C++构建工具(BuildClientProtocol、BuildServerProtocol)
- 配置管理
- Excel转CSV工具(Python 2.7)
- 批量导出脚本
- 数据迁移
- Python数据迁移工具
- 自动备份和清理
- IDE支持
- Visual Studio(服务端C#开发)
- Unity Editor(客户端开发)
- VSCode支持
项目规模统计
代码规模
- 客户端C#代码: 1145个文件
- 客户端Lua代码: 1228个文件
- 服务端C#代码: 约2000+个文件
- 服务端Python代码: 49个文件(DataTransfer)
资源规模
- Prefab: 8299个
- XML配置: 2337个
- 音频文件: 249个ACB文件
- 图片资源: 大量PNG、FBX等
服务器模块
- 主要服务器: 11个
- 公共库项目: 15+个
- 数据库表: 多个数据库(账号、游戏、日志)
部署架构
客户端部署
- ✅ Android APK(支持armeabi-v7a和arm64-v8a)- 已构建
- ✅ Windows可执行文件 – 已支持
- ⚠️ iOS IPA – 已配置但未实际构建
- 资源通过AssetBundle分发
服务器部署
Game_Server/Bin/– 服务器可执行文件Game_Server/db/– 数据库脚本Game_Server/DataTransfer/– 数据分析服务
依赖关系
客户端依赖
- Unity 2020.2.6f1
- ToLua框架
- DOTween动画库
- TextMeshPro
- UGUI
服务端依赖
- .NET Framework
- MySQL数据库
- Redis缓存
- Protocol Buffers
- 各种第三方DLL(在ThirdDlls目录中)
工具依赖
- Python 2.7(配置转换工具)
- MySQL(数据库)
项目特点总结
- 大型MMO项目 – 代码规模大,模块完整
- 微服务架构 – 服务器模块化,易于扩展
- 多平台支持 – Android和Windows
- 完整的数据分析 – 玩家行为追踪和数据分析
- 配置驱动 – Excel配置表系统,便于策划调整
- 热更新支持 – Lua脚本和AssetBundle支持
- 国际化 – 多语言本地化支持
- 成熟的工具链 – 配置管理、协议生成、数据迁移等





