--- title: "Unreal Multiplayer Architect" type: source tags: ["unreal-engine", "game-development", "multiplayer", "networking", "ue5"] date: 2026-04-30 --- ## Source File - [[raw/Agent/agency-agents/game-development/unreal-engine/unreal-multiplayer-architect.md]] ## Summary(用中文描述) - 核心主题:Unreal Engine 5多人游戏网络架构师的 Agent 个性定义与核心能力规范 - 问题域:UE5多人游戏开发中的服务器权威模型、Actor复制、网络预测、GAS复制和专用服务器配置 - 方法/机制:定义完整的UE5多人网络开发规范,包括RPC验证、复制层级、带宽优化、反作弊加固 - 结论/价值:提供可直接用于构建UE5多人游戏AI Agent的完整人格规范和技术交付物模板 ## Key Claims(用中文描述) - 所有游戏状态变更必须在服务器执行,客户端发送RPC,服务器验证并复制 - 每个 Server RPC 的 `WithValidation` 标签不可省略,缺少 `_Validate()` 即为作弊漏洞 - GameMode 仅服务器可用(永不复制),GameState 复制到所有客户端,PlayerController 仅复制给拥有者 - Reliable RPC 保证顺序但增加带宽,仅用于关键游戏事件,高频数据使用不可靠RPC - GAS 复制需要双初始化路径:PossessedBy(服务器)+ OnRep_PlayerState(客户端) - 每玩家带宽应 < 15KB/s,使用 Replication Graph 可将带宽降低40% ## Key Quotes > "The server owns that. The client requests it — the server decides." — 核心权威模型原则 > "Every Server RPC needs a `_Validate`. No exceptions. One missing is a cheat vector." — RPC安全规范 > "That belongs in GameState, not the Character. GameMode is server-only — never replicated." — 层级规范 > "That actor is replicating at 100Hz — it needs 20Hz with interpolation" — 带宽优化原则 ## Key Concepts - [[Server-Authoritative Model]]:服务器权威模型 — 所有游戏状态由服务器模拟,客户端预测并协调 - [[Actor Replication]]:Actor复制 — UE5核心网络同步机制,通过UPROPERTY(Replicated)实现状态复制 - [[RPC (Remote Procedure Call)]]:远程过程调用 — 客户端与服务器通信的主要机制,分Server/Client/NetMulticast - [[Network Prediction]]:网络预测 — 客户端本地预测操作以减少延迟感知,服务器确认或回滚 - [[GAS (Gameplay Ability System)]]:游戏能力系统 — UE5能力与属性复制框架 - [[Replication Graph]]:复制图 — UE5空间分区优化方案,可替代默认平面相关性模型 - [[NetUpdateFrequency]]:网络更新频率 — 每个Actor类的复制频率,默认100Hz通常过高 ## Key Entities - [[UnrealEngine5]]:游戏引擎 — UE5,提供完整的网络层、复制系统和GAS框架 - [[GameMode]]:游戏模式 — 服务器专属,从不复制,负责规则仲裁和胜利条件 - [[GameState]]:游戏状态 — 复制到所有客户端,存储共享世界状态(回合计时、队伍分数) - [[PlayerState]]:玩家状态 — 复制到所有客户端,存储玩家公开数据(名称、击杀、死亡) - [[PlayerController]]:玩家控制器 — 仅复制给拥有它的客户端,处理输入、相机、HUD ## Connections - [[UnrealEngine5]] ← provides ← [[Actor Replication]] - [[Actor Replication]] ← optimized_by ← [[Replication Graph]] - [[GameMode]] ← controls ← [[GameState]] - [[GameMode]] ← manages ← [[PlayerState]] - [[GAS (Gameplay Ability System)]] ← replicates_via ← [[Actor Replication]] ## Contradictions - 无已知冲突 ## 技术交付物(Technical Deliverables) ### Replicated Actor Setup ```cpp // 带有 RepNotify 和条件复制的网络 Actor UPROPERTY(ReplicatedUsing=OnRep_Health) float Health = 100.f; // 服务器 RPC 必须包含 _Validate 实现 UFUNCTION(Server, Reliable, WithValidation) void ServerRequestInteract(AActor* Target); bool ServerRequestInteract_Validate(AActor* Target); // 必填 ``` ### GameMode / GameState / PlayerState 层级 ```cpp // GameMode: 服务器独有,不复制 // GameState: 复制到所有客户端(队伍分数、回合计时) // PlayerState: 复制到所有客户端(击杀、死亡、角色选择) // PlayerController: 仅拥有者可见(输入、相机、HUD) ``` ### GAS 双初始化路径 ```cpp void AMyCharacter::PossessedBy(AController* NewController) // 服务器路径 void AMyCharacter::OnRep_PlayerState() // 客户端路径 ``` ### 网络频率优化 ```cpp AMyProjectile::AMyProjectile() { NetUpdateFrequency = 100.f; } // 高速弹道 AMyNPCEnemy::AMyNPCEnemy() { NetUpdateFrequency = 20.f; } // 低速NPC AMyEnvironmentActor::AMyEnvironmentActor() { NetUpdateFrequency = 2.f; } // 静态物体 ``` ## 高级能力(Advanced Capabilities) - **自定义网络预测框架**:使用 UE5 Network Prediction Plugin 实现物理驱动或复杂移动的回滚 - **Replication Graph 优化**:空间分区替代平面相关性,可将带宽降低40% - **专用服务器基础设施**:AOnlineBeaconHost、集群管理器、会话迁移、反作弊日志 - **GAS 多人深度集成**:预测键、GameplayEffectContext、服务器验证激活 ## 成功指标(Success Metrics) - 游戏影响 Server RPC 的 `_Validate()` 缺失数为零 - 最高玩家数量下每玩家带宽 < 15KB/s - 200ms延迟下每玩家每30秒去同步事件 < 1次 - 峰值战斗时专用服务器CPU < 30% - RPC安全审计无作弊向量