深入解析:【UE4 / UE5】 一键打包 Dedicated Server 专用服务器(不需要C++ 版)

目录

虚幻引擎有两种服务器:

1.独立服务器(Dedicated Server)

2.聆听服务器(Listen Server)

魔改方案:

把聆听服务器改独立服务器

部分实现代码:

支持:

1个服务器+2个客户端效果图:


虚幻引擎有两种服务器:

1.独立服务器(Dedicated Server)

需要安装源码版就是这种服务器启动后没有游戏画面不会占用任何GPU,只有一个日志窗口,服务器本身不会创建玩家,但是打包Souce Code.

2.聆听服务器(Listen Server)

聆听服务器是是由客户端启动创建而来,玩家本身即是服务器也是客户端,其他玩家可以加入到你的服务器,你也可以像其他客户端游玩。创建聆听服务器的玩家是管理员,拥有最高权限可以修改游戏数据,类似《幻兽帕鲁》《我的世界》这样的局域网联机方式。打包聆听服务器无需源码版虚幻引擎.

魔改方案:

把聆听服务器改独立服务器

独立服务器和聆听服务器最大的区别是:
否有本地玩家就是1.服务器
否有游戏渲染画面就是2.服务器

基于这两点我创作了这个一键打包DS服务器的插件:
Easy Dedicated Server

插件链接Easy Dedicated Server
服务器+游戏DemoDemo

部分建立代码:

在聆听服务器上监听关卡打开完成事件,之后销毁服务器的本地玩家

void UEasyDedicatedServerSubsystem::HandlePostLoadMap(UWorld* LoadedWorld)
{
    AGameModeBase* MyGameMode = LoadedWorld->GetAuthGameMode();
    APlayerController* PlayerController = GetWorld()->GetFirstPlayerController();
    if (PlayerController)
    {
        PlayerController->SetLifeSpan(0.01f);
        APawn* Pawn = PlayerController->GetPawn();
        if (Pawn)
        {
            Pawn->SetLifeSpan(0.01f);
        }
        AHUD* HUD = PlayerController->GetHUD();
        if (HUD)
        {
            HUD->SetLifeSpan(0.01f);
        }
        MyGameMode->GameSession->UnregisterPlayer(PlayerController);
    }
}

支持:

1.无需源码版虚幻引擎
2.无需创建C++ 方案
3.一键打包Ds服务器
4.服务器仅显示控制台日志窗口
5标题会显示关卡名称、当前在线玩家数量以及端口。
6.可配置的最大玩家数量(支持超过 16 人,无需修改 GameBase.ini 文件)
7.支撑广域网(WAN)
8.支持局域网(LAN)
9.不创建服务器的本地玩家(仅有客户端玩家)
10.GPU 使用率为 0%

1个服务器+2个客户端效果图:

posted @ 2025-11-19 16:04  gccbuaa  阅读(3)  评论(0)    收藏  举报