学习路线与源码索引 private

学习路线与源码索引

提供按周学习计划、纵向读代码的方法和全工程关键文件索引。

返回技术文档目录

13. 学习与扩展路线

不要按目录从头读到尾,要纵向追一条业务链。以新增怪物为例:

  1. Monster 源表。
  2. CfgMonster.cs 和服务端表。
  3. MonsterSpawnerElement。
  4. 客户端 MapProcessor -> SpawnEvent -> SignalSpawnSystem。
  5. 服务端 NodeBattle/BattleEntity/Map/MapProcessor。
  6. Monster AI、属性与技能。
  7. 实体创建和网络同步。
  8. 死亡、掉落和 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
JennyJenny.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/TriggerAssets/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 同名文件
ZooKeeperLibUtil/zk/ZKClient.cs
负载分区Server/Common/Zone/ZoneMgr.cs、NodeInfo.cs
LoginServer/NodeLogin/Root.cs、SessionClient/ProcessPacket.cs
PlayerMgrServer/NodePlayerMgr/Root.cs、SessionClient/ConnectWorker.cs
LobbyServer/NodeLobby/Root.cs、SystemPlayer/Player.cs
BattleMgrServer/NodeBattleMgr/Root.cs
Battle ActorServer/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 和运行日志为准。

以后修改节点/端口、地图格式、配置生成、登录/战斗时序、协议兼容或权威边界时,应同步更新本文。


上一篇:本地隔离环境、联调与排错