0

我和一些朋友正在尝试使用 UDK 3 创建游戏。现在没什么特别的;我们有一个 Pawn,它会生成并在自定义地图周围移动,这一切都写在 UDK 附带的示例游戏上。我正在尝试设置一个专用服务器,以便我们可以测试我们的更改(这将是一个仅限多人游戏的游戏)。我们都在同一个网络上的强大的 Windows 机器上,并且服务器没有通过 Steam 运行。

我一直在使用 Unreal Frontend 来编译和打包游戏。安装程序运行良好,它安装的游戏也运行良好。我们可以建立一个简单的点对点多人游戏,而且很有效。问题是当我尝试从命令行将其作为专用服务器运行时。我输入的命令是

UDK.exe server provinggrounds.udk?bIsLanMatch=true

这会执行并调出第二个控制台,显示游戏引擎已初始化,然后等待。不幸的是,网络上的其他游戏副本都看不到这个服务器,这是一个问题。现在这就是它变得疯狂的地方。

我在故障排除的“尝试随机事物以查看有效的方法”阶段发现了这一点。如果我从命令行将游戏作为专用服务器运行,然后在同一台机器上以正常游戏模式打开游戏的第二个实例,然后让该实例托管多人比赛,游戏的任何其他实例在网络将看到一台服务器,当他们连接到它时,他们将连接到我计算机上的专用命令行服务器。一旦他们加入,我可以在不影响服务器的情况下关闭正常的托管游戏,但是再也没有人可以看到服务器了。

我真的不明白这里发生了什么。为什么正常情况下任何人的游戏都找不到服务器?为什么只有在同一台计算机上存在托管点对点游戏的游戏实例时服务器才可见?有没有办法来解决这个问题?

4

1 回答 1

0

尝试:

UDK.exe server map.udk?listen=true?bIsLanMatch=true?dedicated=true

这就是我用来启动专用服务器的方法。您正确缺少的是listen=true零件。

有关更多详细信息,请参阅文档

编辑1:

作为一种解决方法,您可以强制您的游戏连接到给定的 IP。在您的游戏中,使用 Tab 键打开控制台并输入Open #SERVER_IP#(当然,将 #SERVER_IP# 替换为实际 IP)。

您可以让您的游戏连接到服务器,将服务器的 IP 作为命令行中的参数传递给它:UDK.exe #SERVER_IP#

编辑2:

另一个问题可能是防火墙,也许 UDK 在作为专用服务器运行时使用不同的端口。虽然不太可能,但这里是 UDK 需要打开/转发的端口 6500、7777、7778、7787、13000、27900 用于 UDP。

于 2013-11-04T21:58:23.160 回答