Update nexus wiki content

This commit is contained in:
2026-05-03 05:42:06 +08:00
parent 90f3811b83
commit 111bc65b7b
707 changed files with 32306 additions and 7289 deletions

View File

@@ -1,57 +1,103 @@
---
title: "Unreal Multiplayer Architect"
type: source
tags: [game-development, unreal-engine, networking, multiplayer, ue5]
date: 2026-04-26
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用中文描述
- 核心主题UE5多人游戏网络架构专家角色定义——构建服务器权威模型、延迟容忍、作弊防护的多人游戏系统
- 问题域Actor复制、网络预测、RPC安全验证、带宽优化、GAS复制专用服务器构建
- 方法/机制:Server-authoritative架构、UFUNCTION(Server, Reliable, WithValidation)、GetLifetimeReplicatedProps、Replication Graph、双路径GAS初始化
- 结论/价值:提供生产级UE5多人游戏网络系统的完整技术方案涵盖从基础复制到高级预测框架的全栈实现
- 核心主题Unreal Engine 5多人游戏网络架构师的 Agent 个性定义与核心能力规范
- 问题域:UE5多人游戏开发中的服务器权威模型、Actor复制、网络预测、GAS复制专用服务器配置
- 方法/机制:定义完整的UE5多人网络开发规范包括RPC验证、复制层级、带宽优化、反作弊加固
- 结论/价值:提供可直接用于构建UE5多人游戏AI Agent的完整人格规范和技术交付物模板
## Key Claims用中文描述
- 服务器必须拥有所有游戏状态变化的执行权威,客户端发送RPC请求,由服务器验证复制
- 所有游戏逻辑相关的Server RPC必须实现WithValidation,不得省略_Validate()实现
- 网络复制频率应按Actor类型差异化配置默认100Hz过高大多数Actor仅需20-30Hz
- GAS的AbilitySystemComponent初始化必须在PossessedBy服务器路径和OnRep_PlayerState客户端路径两个入口点分别执行
- 专用服务器构建必须使用Linux平台+Shipping配置+Cooked内容
- 所有游戏状态变更必须在服务器执行客户端发送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 truth. The client requests it — the server decides." — 权威模型的核心原则
> "WithValidation tag is not optional for any game-affecting RPC" — 安全验证的强制性要求
> "Bandwidth per player < 15KB/s at maximum player count" — 性能基准指标
> "Every Server RPC needs a `_Validate`. No exceptions. One missing is a cheat vector." — 作弊防护的非妥协立场
> "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
- [[ServerAuthoritativeModel]]:服务器权威模型——服务器模拟真实状态,客户端预测并对账,所有游戏逻辑在服务器执行
- [[ActorReplication]]Actor复制——UPROPERTY(Replicated)将状态从服务器同步到客户端支持ReplicatedUsing触发RepNotify
- [[RPC]]远程过程调用——Client/Server/NetMulticast三种RPC类型Server RPC必须带验证
- [[NetworkPrediction]]:网络预测——客户端本地预测操作,服务器确认后校正,减少感知延迟
- [[ReplicationGraph]]复制图——空间分区优化仅向相关客户端复制区域内的Actor降低带宽
- [[GAS]]Gameplay Ability System——UE5技能系统支持复制和预测的技能与属性管理
- [[DedicatedServer]]:专用服务器——无图形界面的纯服务器实例,处理所有游戏逻辑
- [[NetworkRelevancy]]网络相关性——根据客户端视角决定哪些Actor需要复制节省带宽
- [[NetMulticast]]多播RPC——服务器向所有客户端广播事件用于仅表现层效果
- [[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
- [[GameMode]]:服务器独有(永不复制)——生成逻辑、规则仲裁、胜负条件判定
- [[GameState]]:复制到所有客户端——共享世界状态(回合计时器、队伍分数等)
- [[PlayerState]]:复制到所有客户端——每玩家公开数据(名称、延迟、击杀数)
- [[PlayerController]]:仅复制到有客户端——输入处理、摄像机、HUD控制
- [[AbilitySystemComponent]]GAS核心组件——管理技能和属性必须正确配置复制
- [[ReplicationGraph]]UE5复制图插件——用空间分区替代默认扁平相关性模型
- [[UnrealEngine5]]:游戏引擎 — UE5提供完整的网络层、复制系统和GAS框架
- [[GameMode]]:游戏模式 — 服务器专属,从不复制,负责规则仲裁和胜利条件
- [[GameState]]游戏状态 — 复制到所有客户端,存储共享世界状态(回合计时、队伍分数)
- [[PlayerState]]:玩家状态 — 复制到有客户端,存储玩家公开数据(名称、击杀、死亡)
- [[PlayerController]]:玩家控制器 — 仅复制给拥有它的客户端处理输入、相机、HUD
## Connections
- [[GameMode]] ← spawns + governs ← [[GameState]]
- [[PlayerController]] ← possesses ← [[PlayerState]]
- [[GameplayAbilitySystem]] ← depends_on ← [[ActorReplication]]
- [[NetworkPrediction]] ← extends ← [[ActorReplication]]
- [[DedicatedServer]] ← hosts ← [[GameMode]]
- [[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
- 与现有Wiki内容暂无冲突——本页面为独立技术领域UE5网络架构
- 无已知冲突
## 技术交付物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安全审计无作弊向量