# SLGMap **Repository Path**: FengChen512/slgmap ## Basic Information - **Project Name**: SLGMap - **Description**: slg大地图 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-03 - **Last Updated**: 2026-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SLG 大地图多人策略游戏 基于 **Unity + NGO (Netcode for GameObjects) + UOS Multiverse** 的 SLG 大地图多人策略游戏框架。 ## 项目简介 本项目在 UOS Multiverse + NGO 多人网络 Demo 基础上,构建了一套完整的 SLG(Simulated Life Game / Strategy Game)大地图系统,包含程序化地形生成、正方形网格渲染、分块动态加载、战争迷雾、A* 寻路、单位/城市/资源/回合管理等核心模块。 ## 技术栈 | 技术 | 版本/说明 | |------|-----------| | Unity / Tuanjie | 2022.3.48t7 | | Netcode for GameObjects | 1.11.0 | | UOS Multiverse | 多人专用服务器 + 匹配 | | TextMeshPro | 3.0.7 | | C# | .NET Standard 2.1 | ## 项目结构 ``` Assets/ ├── Bootstrap/ # UOS 多人网络连接(原有 Demo) │ ├── Scripts/ │ │ ├── BootstrapManager.cs # 客户端/服务器入口 │ │ └── BootstrapPlayer.cs # 玩家 NetworkBehaviour │ └── Scenes/ │ └── Bootstrap.unity # 网络连接场景 │ ├── SLG/ # SLG 大地图系统 │ ├── Core/ # 核心数据结构 │ │ ├── HexCoordinates.cs # 六边形坐标系(Axial + Offset) │ │ ├── TileData.cs # 格子数据 │ │ ├── TerrainType.cs # 地形枚举与属性配置 │ │ ├── ChunkData.cs # 分块数据(64×64) │ │ └── MapData.cs # 地图数据容器 │ │ │ ├── Map/ # 地图生成与渲染 │ │ ├── MapGenerator.cs # 程序化地形生成(Perlin Noise) │ │ ├── MapRenderer.cs # 正方形网格 Mesh 渲染 │ │ ├── ChunkManager.cs # 动态分块加载/卸载 │ │ └── CameraController.cs # 相机控制(拖拽/缩放/边界) │ │ │ ├── Network/ # 网络同步 │ │ ├── MapNetworkBehaviour.cs # 地图数据同步 │ │ ├── UnitNetworkSync.cs # 单位状态同步 │ │ └── InterestManager.cs # 兴趣管理 │ │ │ ├── Pathfinder/ # 寻路系统 │ │ ├── AStarPathfinder.cs # A* 寻路 + 路径缓存 │ │ └── PathValidator.cs # 服务器端路径验证 │ │ │ ├── Fog/ # 战争迷雾 │ │ ├── VisibilityCalculator.cs # 可见性计算 │ │ └── FogOfWarManager.cs # 迷雾渲染 │ │ │ ├── Gameplay/ # 游戏逻辑 │ │ ├── UnitManager.cs # 单位管理(5 种兵种) │ │ ├── CityManager.cs # 城市与建筑系统 │ │ ├── ResourceManager.cs # 资源系统(5 种资源) │ │ ├── TurnManager.cs # 回合管理 │ │ └── CombatResolver.cs # 战斗结算 │ │ │ ├── UI/ # UI 组件 │ │ ├── MinimapRenderer.cs # 小地图 │ │ ├── TileInfoPanel.cs # 格子信息面板 │ │ └── UnitActionPanel.cs # 单位操作面板 │ │ │ ├── Tests/ # 单元测试 │ │ ├── HexCoordinatesTests.cs │ │ ├── TerrainTypeTests.cs │ │ ├── ChunkDataTests.cs │ │ ├── MapDataTests.cs │ │ ├── MapGeneratorTests.cs │ │ ├── AStarPathfinderTests.cs │ │ ├── PathValidatorTests.cs │ │ ├── UnitManagerTests.cs │ │ ├── ResourceManagerTests.cs │ │ ├── TurnManagerTests.cs │ │ ├── CombatResolverTests.cs │ │ └── VisibilityCalculatorTests.cs │ │ │ ├── VertexColor.shader # 顶点色 Shader │ ├── SLGMapBootstrap.cs # 场景入口脚本 │ └── Scenes/ │ └── SLGMap.scene # SLG 大地图场景 │ ├── Docs/ │ └── SLG大地图设计分析.md # 设计文档 │ └── Resources/ # 字体等资源 ``` ## 核心功能 ### 地图系统 - **4000×4000 大地图**(1600 万格子),基于 Perlin Noise 程序化生成 - **7 种地形**:平原、森林、山地、水域、沙漠、雪地、沼泽,各有独立移动消耗/防御加成/资源产出 - **正方形网格**渲染,顶点色着色,单 Draw Call per Chunk - **动态分块加载**:64×64 Chunk,仅渲染相机视野内区域,自动加载/卸载 ### 网络架构 - **服务器权威**:所有游戏逻辑在服务器端验证执行 - **NGO 集成**:ServerRpc / ClientRpc 通信 - **兴趣管理**:按玩家视野范围裁剪同步数据 - **增量同步**:仅推送变更数据 ### 游戏系统 - **A* 寻路**:考虑地形消耗和通行性,支持路径缓存和多回合移动 - **战争迷雾**:三态(未探索/已探索/可见),增量计算 - **单位系统**:5 种兵种(步兵/骑兵/弓兵/攻城/船只),各具独特属性 - **城市建筑**:13 种建筑,领土控制,建造队列 - **资源系统**:5 种资源(粮食/木材/石材/金币/科技),每回合结算 - **回合制**:多玩家轮流行动,自动结算产出 ## 快速开始 ### 环境要求 - Unity / Tuanjie Editor 2022.3.48t7 - .NET SDK(LSP 支持) ### 运行预览 1. 用 Tuanjie Editor 打开项目 2. 打开场景 `Assets/SLG/Scenes/SLGMap.scene` 3. 点击 Play,即可看到 4000×4000 大地图预览 4. **左键拖拽**平移地图,**滚轮**缩放,**鼠标移到屏幕边缘**自动滚动 ### 运行测试 - 打开 `Window > General > Test Runner` - 选择 `Edit Mode`,点击 `Run All` 运行全部 60+ 单元测试 ### 多人对战 1. 打开 `Assets/Bootstrap/Scenes/Bootstrap.unity` 2. 配置 UOS Matchmaking 3. 构建并部署 Dedicated Server 4. 客户端通过匹配连接 ## 设计文档 详细设计分析见 [Docs/SLG大地图设计分析.md](Docs/SLG大地图设计分析.md)。 ## 许可证 基于 UOS Multiverse Demo 许可证。