参考
配置参考
146 个配置项分 13 类,这里给出每类的用途、关键项与默认值;完整清单在 Project Settings 里按分类展开。
全部配置在 UCrossingNetSettings(Config = Game,存 DefaultGame.ini,
节名 [/Script/CrossingNet.CrossingNetSettings])。编辑器里是 Project Settings ▸ Plugins ▸ CrossingNet(CrossingNet 联机设置),
按 13 个分类展开。
13 类
| 分类 | 管什么 | 关键项 |
|---|---|---|
01 模式与基础 | 模式配置 | ModeConfigs(1v1/2v2/5v5/FFA4/3T2…) |
02 服务器与房间 | 拉起、端口、探测、回收 | ServerExePath(服务器可执行文件)、GamePortRange(游戏端口范围)、ProbeIntervalSeconds(健康探测间隔,秒) |
03 匹配与队列 | 窗口、等待、预热池、补位 | MatchBaseEloWindow(匹配基础 Elo 窗口)、MatchMaxWaitSeconds(最大匹配等待,秒)、bEnableWarmPool(启用预热池) |
04 身份与令牌 | 票据、重连、单会话 | JoinTokenSecret(令牌密钥)、JoinTokenTtlSeconds(令牌有效期,秒)、ReconnectWindowSeconds(重连窗口,秒) |
05 对局规则 | 时长、投降、Remake、AFK | MatchTimeLimitSeconds(对局时限,秒)、SurrenderVoteYesRatio(投降通过比例) |
06 结算与段位 | Elo、K 值、定级 | RatingK(定级 K)、ProvisionalMatches(定级场次)、MinElo(最低 Elo) |
07 赛季 | 重置、衰减 | SeasonResetSoftFactor(赛季软重置系数)、SeasonDecayAfterDays(赛季衰减起始天数) |
08 组队 | Party 上限、Elo 取法 | PartyMatchEloMode(组队 Elo 聚合)、bFullPartyOnlyVsFullParty(满编队只匹配满编队) |
09 观战与迟到 | 观战位、迟到规则 | bAllowSpectators(允许观战)、bAllowLateJoin(允许中途加入) |
10 存档与身份 | 档案落盘、分块 | ProfileStoreName(档案存储)、ProfileChunkBytes(档案分块大小(字节)) |
11 运维与指标 | 指标、日志轮转 | MetricsIntervalSeconds(指标间隔,秒)、LogRetentionDays(日志保留天数) |
12 网络与控制 | 控制通道、地址 | LobbyControlPort(大厅控制端口)、LobbyControlAddress(大厅控制地址) |
13 局域网开房 | LAN 发现 | LANDiscoveryPort(局域网发现端口)、LANMaxRooms(最大房间数) |
这些项都有默认值;
RoomMapPackage是例外——它没有默认值,空着时拉起房间会报错(见学习路径 · 认识设置)。
默认值速查
这些是代码里的默认值(不是样例):
| 配置 | 默认 |
|---|---|
GamePortRange(游戏端口范围) | (57000, 57100) |
HealthPortRange(健康端口范围) | (58100, 58150) |
LobbyControlPort(大厅控制端口) | 57300 |
LANDiscoveryPort(局域网发现端口) | 57350 |
LANGamePortRange(局域网游戏端口范围) | (57100, 57150) |
ProbeIntervalSeconds(健康探测间隔,秒) | 1.0 |
HealthFailureThreshold(健康失败阈值) | 5 |
StartupTimeoutSeconds(启动超时,秒) | 180.0 |
EmptyGraceSeconds(空房宽限,秒) | 30.0 |
ReservationTimeoutSeconds(预留超时,秒) | 60.0 |
ClosedRetentionSeconds(已关闭实例保留,秒) | 60.0 |
ReadyCheckSeconds(就绪检查,秒) | 12.0 |
TravelTimeoutSeconds(传送超时,秒) | 20.0 |
ReconnectWindowSeconds(重连窗口,秒) | 120.0 |
JoinTokenSecret(令牌密钥) | crossing-dev-secret |
JoinTokenTtlSeconds(令牌有效期,秒) | 300 |
MatchTickSeconds(匹配 Tick,秒) | 1.0 |
MatchBaseEloWindow(匹配基础 Elo 窗口) | 100.0 |
MatchEloGrowthPerSecond(Elo 窗口每秒增长) | 20.0 |
MatchMaxWaitSeconds(最大匹配等待,秒) | 180.0 |
MaxInstances(最大实例数) | 8 |
MetricsIntervalSeconds(指标间隔,秒) | 10.0 |
bEnableWarmPool(启用预热池) | false |
bAllowSpectators(允许观战) | false |
bAllowLateJoin(允许中途加入) | false |
一份能跑的样例
[/Script/CrossingNet.CrossingNetSettings]
; 服务器可执行文件
ServerExePath=<UE>/Engine/Binaries/Win64/UnrealEditor.exe
; 服务器前置参数
ServerArgsPrefix="<Project目录>/<Project>.uproject -server -game -unattended -nullrhi -nosound"
; 房间地图
RoomMapPackage=/Engine/Maps/Entry
; 游戏端口范围
GamePortRange=(X=57000,Y=57100)
; 健康端口范围
HealthPortRange=(X=58100,Y=58150)
; 大厅控制地址
LobbyControlAddress=127.0.0.1:57300
; 对外地址
PublicAddress=127.0.0.1
; 模式配置
+ModeConfigs=(Mode="1v1",TeamSize=1,TeamCount=2)
+ModeConfigs=(Mode="2v2",TeamSize=2,TeamCount=2)
; 强制校验令牌
bRequireJoinToken=True
; 令牌密钥
JoinTokenSecret=crossing-dev-secret
; 令牌有效期(秒)
JoinTokenTtlSeconds=300
; 重连窗口(秒)
ReconnectWindowSeconds=120.0
; 启用定级
bEnableRating=True
; 定级 K
RatingK=32.0
; 最低 Elo
MinElo=100
; 启用预热池
bEnableWarmPool=False
; 最大实例数
MaxInstances=8
; 指标间隔(秒)
MetricsIntervalSeconds=10.0设置预设
Config/Presets/ 里有 6 份可直接对照的预设:
| 文件 | 内容 |
|---|---|
lol_ranked_5v5.json | LoL 风格 5v5 排位:平均 MMR、确认、15 分钟投降、Remake、秒退惩罚 |
wangzhe_ranked_5v5.json | 王者风格:按最高 Elo、满编只撞满编 |
ow_casual_5v5.json | 守望休闲近似:迟到、Bot 补位、掉线接管,关投降与 Remake |
card_1v1_bo3.json | 1v1 卡牌 BO3:短等待、三局两胜 |
four_team_points.json | 4 队积分赛:PointsRace |
delta_multidim.json | 多维匹配实验:窗口 + 行为分 + 最近对手软惩罚 |
每份是 JSON,settings 里的键就是 ini 里的键名。
改配置之后
- 大厅进程读
DefaultGame.ini,改完重启大厅才生效 - 房间进程由大厅拉起,参数里带构建版本;改端口段后确认防火墙放行新段
README.md的配置样例里端口写的是57100–57150,那是样例值,不是默认值
上一页:事件参考。