学习路线与源码索引 private
学习路线与源码索引
提供按周学习计划、纵向读代码的方法和全工程关键文件索引。
13. 学习与扩展路线
不要按目录从头读到尾,要纵向追一条业务链。以新增怪物为例:
- Monster 源表。
CfgMonster.cs和服务端表。MonsterSpawnerElement。- 客户端
MapProcessor -> SpawnEvent -> SignalSpawnSystem。 - 服务端
NodeBattle/BattleEntity/Map/MapProcessor。 - Monster AI、属性与技能。
- 实体创建和网络同步。
- 死亡、掉落和 Lobby 结算。
四周练习:
- 第一周:跑通 Login -> Lobby -> Battle,记录端口和 SessionId,画实际时序。
- 第二周:导出小地图,增加一个自动怪和一个 Trigger 怪,跟踪 MapEntity 到 View。
- 第三周:跟踪 BattleMgr 选节点、Battle Actor 创建和一次玩家保存;停掉 Worker 观察摘除。
- 第四周:新增一个兼容协议字段、一个配置字段和一条地图检查规则,并写故障复盘。
适合继续建设的工程能力:
- 地图产物 manifest:地图名、hash、bakeId、配置版本和导出时间。
- Battle 开战前校验客户端/服务器地图版本。
- 统一节点 health/status:类型、SessionId、依赖、Ability、连接数。
- 幂等战区种子脚本。
- 协议生成物 CI 一致性检查。
- Monster/Skill/Drop/RandomGroup 的跨表外键检查。
14. 关键源码索引
客户端
| 主题 | 文件 |
|---|---|
| 启动 | Assets/Code/ClientProxy.cs |
| ECS 绑定 | Assets/Code/Game/OGame/GameInstaller.cs |
| Jenny | Jenny.properties、Jenny-Server.bat |
| 地址/战区 | Assets/Code/Game/UI/Login/ServerManager.cs |
| 登录会话 | Assets/Code/Game/Network/Session/LoginClient.cs |
| 地图适配 | Assets/Code/Game/Map/MapAdapter.cs |
| 场景消息 | Assets/Code/Game/Temp/CS_LoadServerLevelDataSystem.cs |
| 地图处理 | Assets/Code/Game/OServices/View/Map/MapProcessor.cs |
| 地图格式 | Assets/Code/Game/OGame/Map/MapData.cs、BinaryMapFormatter.cs |
| Spawn/Trigger | Assets/Code/Game/OGame/Map/Systems |
| 寻路 | Assets/Code/Game/OLogic/Common/NavMeshTool.cs、NavMoveStrategy.cs |
| 配置运行时 | Assets/Code/Core/Database/ConfigManager.cs、Cfg.cs |
| 配置生成 | Assets/Editor/Config/ConfigOption.cs、CfgStructDataParser.cs |
| 地图导出 | Assets/Maps/Scripts/MapBaker.cs |
服务端
以下路径相对于 Source/server/server_chain:
| 主题 | 文件 |
|---|---|
| 解决方案 | GameServers.sln |
| 节点配置 | ConfigFile/ConfigLoadNodes.Yaml 或隔离 runtime 同名文件 |
| ZooKeeper | LibUtil/zk/ZKClient.cs |
| 负载分区 | Server/Common/Zone/ZoneMgr.cs、NodeInfo.cs |
| Login | Server/NodeLogin/Root.cs、SessionClient/ProcessPacket.cs |
| PlayerMgr | Server/NodePlayerMgr/Root.cs、SessionClient/ConnectWorker.cs |
| Lobby | Server/NodeLobby/Root.cs、SystemPlayer/Player.cs |
| BattleMgr | Server/NodeBattleMgr/Root.cs |
| Battle Actor | Server/NodeBattle/Controller.cs、Room/Battle/BattleStateSync.cs |
| 地图缓存 | Server/Common/MapDatas.cs |
| 地图处理 | Server/NodeBattle/BattleEntity/Map/MapProcessor.cs |
| 数据库分片 | LibUtil/Db/DbShard*.cs |
| 协议源 | Packet_tool/*.proto |
15. 文档边界
本文描述当前检出源码,不是抽象设计愿景。不同平台宏、玩法和部署参数会选择不同 System 组合;HostClient 与独立 Battle 路径必须以当前玩法安装的 Systems 和运行日志为准。
以后修改节点/端口、地图格式、配置生成、登录/战斗时序、协议兼容或权威边界时,应同步更新本文。