# bow_zombie_game **Repository Path**: deir/bow_zombie_game ## Basic Information - **Project Name**: bow_zombie_game - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 元素弓箭僵尸游戏开发文档 ## 项目概述 这是一款基于Unity 3D和Spring Cloud微服务架构的弓箭射击僵尸游戏。游戏支持八种元素系统(金木水火土光暗冰),玩家可以通过升级弓箭解锁技能,并在局域网内组队闯关。 ## 开发工具与技术栈 ### 客户端开发 | 工具/技术 | 版本 | 用途 | |----------|------|------| | Unity | 2021.3 LTS | 游戏引擎 | | C# | 8.0 | 游戏逻辑开发 | | 3ds Max | 2023 | 3D模型制作 | | Substance Painter | 2023 | 材质制作 | | FMOD | 2.0 | 音频系统 | ### 后端开发 | 工具/技术 | 版本 | 用途 | |----------|------|------| | Java | 11 | 后端开发语言 | | Spring Boot | 2.7.15 | 基础框架 | | Spring Cloud | 2021.0.8 | 微服务框架 | | Netty | 4.1.96.Final | 高性能网络通信 | | MySQL | 8.0.33 | 关系型数据库 | | Redis | 6.2.14 | 缓存数据库 | | Docker | 20.10+ | 容器化部署 | | Maven | 3.8.6 | 项目管理工具 | ## 项目结构 ### 客户端结构 ``` client/ ├── Assets/ │ ├── Scripts/ │ │ ├── Core/ # 核心系统 │ │ │ ├── GameManager.cs # 游戏管理器 │ │ │ ├── NetworkManager.cs # 网络管理器 │ │ │ ├── UIManager.cs # UI管理器 │ │ │ └── SoundManager.cs # 音效管理器 │ │ ├── GameLogic/ # 游戏逻辑 │ │ │ ├── BowSystem/ # 弓箭系统 │ │ │ │ ├── BowController.cs # 弓箭控制器 │ │ │ │ └── ArrowController.cs # 箭矢控制器 │ │ │ ├── ElementSystem/ # 元素系统 │ │ │ │ ├── ElementManager.cs # 元素管理器 │ │ │ │ └── ElementEffects.cs # 元素效果 │ │ │ ├── SkillSystem/ # 技能系统 │ │ │ │ ├── SkillManager.cs # 技能管理器 │ │ │ │ ├── SkillDatabase.cs # 技能数据库 │ │ │ │ └── SkillEffects.cs # 技能效果 │ │ │ └── ZombieSystem/ # 僵尸系统 │ │ │ ├── ZombieController.cs # 僵尸控制器 │ │ │ ├── SpawnManager.cs # 生成管理器 │ │ │ └── ZombieAI.cs # 僵尸AI │ │ └── UI/ # UI界面 │ │ ├── MainMenuUI.cs # 主菜单UI │ │ ├── GameHUD.cs # 游戏HUD │ │ ├── SkillTreeUI.cs # 技能树UI │ │ └── InventoryUI.cs # 物品栏UI │ ├── Models/ # 3D模型 │ ├── Materials/ # 材质 │ ├── Textures/ # 纹理 │ ├── Audio/ # 音频 │ ├── Scenes/ # 场景 │ └── Prefabs/ # 预制体 ├── Packages/ # 包管理 └── ProjectSettings/ # 项目设置 ``` ### 后端结构 ``` server/ ├── gateway-service/ # API网关服务 ├── auth-service/ # 认证服务 ├── game-service/ # 游戏服务 ├── network-service/ # 网络服务 │ ├── src/main/java/com/bowzombiegame/networkservice/ │ │ ├── config/ # 配置类 │ │ │ ├── NettyServerConfig.java # Netty服务器配置 │ │ │ └── MessageConfig.java # 消息配置 │ │ ├── handler/ # 处理器 │ │ │ └── GameServerHandler.java # 游戏服务器处理器 │ │ ├── protocol/ # 协议 │ │ │ ├── MessageEncoder.java # 消息编码器 │ │ │ └── MessageDecoder.java # 消息解码器 │ │ ├── model/ # 模型 │ │ │ ├── Message.java # 消息模型 │ │ │ └── MessageType.java # 消息类型 │ │ ├── service/ # 服务 │ │ │ ├── NettyServer.java # Netty服务器 │ │ │ └── NettyServerStarter.java # Netty服务器启动器 │ │ └── controller/ # 控制器 │ │ └── NetworkController.java # 网络控制器 │ └── pom.xml # Maven配置 ├── data-service/ # 数据服务 ├── eureka-server/ # 服务注册中心 ├── config-server/ # 配置中心 ├── pom.xml # 父级Maven配置 └── docker-compose.yml # Docker Compose配置 ``` ## 核心功能模块 ### 1. 弓箭系统 - **BowController.cs**: 管理弓箭的基本功能,包括射击、元素切换、升级等 - **ArrowController.cs**: 管理箭矢的飞行、碰撞检测和元素效果 ### 2. 元素系统 - **ElementManager.cs**: 管理八种元素(金木水火土光暗冰)的属性和效果 - 支持元素升级和元素融合(等级10以上解锁) ### 3. 技能系统 - **SkillManager.cs**: 管理技能的解锁、升级和使用 - **SkillDatabase.cs**: 存储所有预设的技能数据 - 每个元素有独特的技能树 ### 4. 僵尸系统 - **ZombieController.cs**: 管理僵尸的行为、状态和属性 - 支持多种僵尸类型,各有不同的弱点和抗性 ### 5. 网络系统 - **NetworkManager.cs** (Unity): 客户端网络管理 - **NettyServer.java**: 基于Netty的高性能网络服务器 - 支持局域网多人组队闯关 ## 本地运行指南 ### 后端服务运行 #### 1. 环境要求 - JDK 11 - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ - Docker (可选) #### 2. 数据库配置 1. 创建MySQL数据库: ```sql CREATE DATABASE bow_zombie_game CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 创建用户并授权: ```sql CREATE USER 'root'@'%' IDENTIFIED BY 'rootpassword'; GRANT ALL PRIVILEGES ON bow_zombie_game.* TO 'root'@'%'; FLUSH PRIVILEGES; ``` #### 3. 运行服务 **方式一:使用Docker Compose(推荐)** ```bash cd server docker-compose up -d ``` **方式二:手动运行** 1. 启动配置中心: ```bash cd config-server mvn clean package java -jar target/config-server-1.0.0.jar ``` 2. 启动服务注册中心: ```bash cd eureka-server mvn clean package java -jar target/eureka-server-1.0.0.jar ``` 3. 启动其他服务: ```bash cd auth-service mvn clean package java -jar target/auth-service-1.0.0.jar cd ../game-service mvn clean package java -jar target/game-service-1.0.0.jar cd ../network-service mvn clean package java -jar target/network-service-1.0.0.jar cd ../gateway-service mvn clean package java -jar target/gateway-service-1.0.0.jar ``` ### 客户端运行 #### 1. 环境要求 - Unity 2021.3 LTS - Visual Studio 2019+ #### 2. 打开项目 1. 打开Unity Hub 2. 点击"添加"按钮,选择`client`目录 3. 点击项目进入Unity编辑器 #### 3. 配置网络 1. 在Unity编辑器中,找到`GameManager`游戏对象 2. 设置`ServerAddress`为后端服务器IP(本地开发使用`localhost`) 3. 设置`ServerPort`为9000 #### 4. 运行游戏 1. 点击Unity编辑器中的播放按钮 2. 或构建并运行: - File -> Build Settings - 选择目标平台(PC/Mac/Linux Standalone或Android) - 点击"Build And Run" ## 游戏操作指南 ### 基本操作 - **移动**: WASD或方向键 - **瞄准**: 鼠标移动或触摸屏滑动 - **射击**: 鼠标左键或触摸屏点击 - **元素切换**: 数字键1-8或UI按钮 - **技能释放**: Q、E、R键或UI按钮 ### 元素系统 - **金属**: 穿透效果,可穿透多个敌人 - **木系**: 毒素效果,持续伤害 - **水系**: 减速效果,降低敌人移动速度 - **火系**: 爆炸效果,范围伤害 - **土系**: 护盾效果,反弹伤害 - **光系**: 净化效果,对亡灵额外伤害 - **暗系**: 腐蚀效果,降低敌人防御 - **冰系**: 冻结效果,短暂控制敌人 ### 多人游戏 1. 创建房间:主菜单 -> 多人游戏 -> 创建房间 2. 加入房间:主菜单 -> 多人游戏 -> 房间列表 3. 邀请好友:房间内点击"邀请"按钮 ## 开发注意事项 1. **代码规范**: - C#代码遵循Microsoft C#编码规范 - Java代码遵循Google Java编码规范 2. **性能优化**: - 使用对象池管理频繁创建的对象(箭矢、粒子效果等) - 实现LOD(Level of Detail)技术减少远处对象的细节 - 使用GPU Instancing渲染大量相似对象 3. **安全注意事项**: - 所有游戏状态验证在服务端进行 - 使用JWT进行身份验证 - 加密敏感数据传输 ## 故障排除 ### 常见问题 1. **无法连接服务器** - 检查服务器是否运行 - 检查网络连接和防火墙设置 - 确认IP地址和端口配置正确 2. **游戏性能问题** - 降低游戏画质设置 - 关闭不必要的后台程序 - 检查显卡驱动是否最新 3. **数据库连接失败** - 确认MySQL服务运行中 - 检查数据库用户名和密码 - 验证数据库权限设置 ## 联系方式 如有问题或建议,请联系: - 项目邮箱:bowzombiegame@example.com - GitHub:https://github.com/bowzombiegame ## 许可证 MIT License