我和一些朋友正在尝试使用 UDK 3 创建游戏。现在没什么特别的;我们有一个 Pawn,它会生成并在自定义地图周围移动,这一切都写在 UDK 附带的示例游戏上。我正在尝试设置一个专用服务器,以便我们可以测试我们的更改(这将是一个仅限多人游戏的游戏)。我们都在同一个网络上的强大的 Windows 机器上,并且服务器没有通过 Steam 运行。
我一直在使用 Unreal Frontend 来编译和打包游戏。安装程序运行良好,它安装的游戏也运行良好。我们可以建立一个简单的点对点多人游戏,而且很有效。问题是当我尝试从命令行将其作为专用服务器运行时。我输入的命令是
UDK.exe server provinggrounds.udk?bIsLanMatch=true
这会执行并调出第二个控制台,显示游戏引擎已初始化,然后等待。不幸的是,网络上的其他游戏副本都看不到这个服务器,这是一个问题。现在这就是它变得疯狂的地方。
我在故障排除的“尝试随机事物以查看有效的方法”阶段发现了这一点。如果我从命令行将游戏作为专用服务器运行,然后在同一台机器上以正常游戏模式打开游戏的第二个实例,然后让该实例托管多人比赛,游戏的任何其他实例在网络将看到一台服务器,当他们连接到它时,他们将连接到我计算机上的专用命令行服务器。一旦他们加入,我可以在不影响服务器的情况下关闭正常的托管游戏,但是再也没有人可以看到服务器了。
我真的不明白这里发生了什么。为什么正常情况下任何人的游戏都找不到服务器?为什么只有在同一台计算机上存在托管点对点游戏的游戏实例时服务器才可见?有没有办法来解决这个问题?