安装与启用
把 CrossingNet 放进 Plugins 目录、启用、在 DefaultGame.ini 里配好第一段,再用一条控制台命令确认大厅起来了。
CrossingNet 是普通插件:放进项目的 Plugins/ 目录、启用、配一段 ini 就能用。不依赖 OnlineSubsystem,
不带第三方库,也不改引擎。
放进去
<Project>/
Plugins/
CrossingNet/
CrossingNet.uplugin
Source/
Config/
Presets/ 6 份设置预设目录名与插件名一致最省事。插件配置存在 DefaultGame.ini 的
[/Script/CrossingNet.CrossingNetSettings] 段。
启用
编辑器里 Edit ▸ Plugins 找到 CrossingNet 勾上并重启;或直接写进 .uproject:
{
"Name": "CrossingNet",
"Enabled": true
}C++ 侧引用
模块要依赖 CrossingNet 才能拿到头文件:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "CrossingNet" });蓝图侧不需要这一步:子系统都把函数标成 BlueprintCallable / BlueprintPure 了,事件是
BlueprintAssignable 动态多播。
最小配置
下面这些项够跑通第一局。左边的值就是代码里的默认值,可以只写要改的:
| 配置项 | 默认值 | 说明 |
|---|---|---|
ServerExePath | 空 | 大厅拉起的可执行文件;开发期指向编辑器 |
ServerArgsPrefix | 空 | 拼接在可执行文件后的整行参数 |
RoomMapPackage | 空 | 房间进程加载的地图(常用 /Engine/Maps/Entry) |
GamePortRange | (57000, 57100) | 房间游戏端口段(UDP) |
HealthPortRange | (58100, 58150) | 房间健康端口段(TCP) |
LobbyControlPort | 57300 | 大厅控制端口(TCP) |
JoinTokenSecret | crossing-dev-secret | 票据签名密钥,生产必须换 |
JoinTokenTtlSeconds | 300 | 票据有效期 |
ReconnectWindowSeconds | 120.0 | 重连窗口 |
ReadyCheckSeconds | 12.0 | 确认超时 |
TravelTimeoutSeconds | 20.0 | 旅行超时 |
bAutoTravelOnAssignment | true | 收到分配自动旅行 |
MaxInstances | 8 | 实例上限 |
bEnableWarmPool | false | 预热池 |
写进 Config/DefaultGame.ini:
[/Script/CrossingNet.CrossingNetSettings]
ServerExePath=<UE>/Engine/Binaries/Win64/UnrealEditor.exe
ServerArgsPrefix="<Project目录>/<Project>.uproject -server -game -unattended -nullrhi -nosound"
RoomMapPackage=/Engine/Maps/Entry
LobbyControlAddress=127.0.0.1:57300
PublicAddress=127.0.0.1
bRequireJoinToken=True
JoinTokenSecret=crossing-dev-secret<UE> 是引擎根目录(那一层里直接能看到 Engine 文件夹),<Project> 是工程名;引擎可执行文件在 <UE>\Engine\Binaries\Win64\ 下,别漏中间那层 Engine。ServerArgsPrefix 整行用一对引号包住,内部不要再出现引号,否则 UBT 解析参数时会错位。
上面端口用的是默认值。
README.md里那份样例写的是57100–57150,那是示例值,不是默认值; 两处不冲突,但改的时候以你 ini 里写的为准。
五类配置
146 个配置项按用途分成 13 类,常用的五类:
01 模式与基础 模式配置(1v1 / 2v2 / 5v5 / FFA4 / 3T2 …)
02 服务器与房间 可执行文件、端口段、探测、回收
03 匹配与队列 Elo 窗口、等待上限、预热池、Bot 补位
04 身份与令牌 票据密钥、TTL、重连窗口、单会话
05 对局规则 时长、投降、Remake、AFK、秒退惩罚完整清单见配置参考。
确认它起来了
控制台执行:
CrossingNet.Status输出是实例表与匹配队列的快照。日志在:
<Project>/Saved/Logs/<Project>.log 大厅
<Project>/Saved/CrossingNet/Logs/instance_<端口>.log 每个房间进程生产环境要换的三样
| 项 | 开发默认 | 生产 |
|---|---|---|
ServerExePath | 编辑器可执行文件 | 打包出来的 <Project>Server.exe |
ServerArgsPrefix | 带 .uproject 与 -game -nullrhi | 留空,参数走 ExtraServerArgs |
JoinTokenSecret | crossing-dev-secret | 32 位以上随机值;短密钥启动时会告警 |
PublicAddress、LobbyAddress、LobbyControlAddress 也要换成真实地址,否则客户端拿到的是 127.0.0.1。
下一页:跑通第一个对局。