0

Some friends and I are trying to create a game using the UDK 3. Right now it's nothing special; we've got a Pawn that spawns and moves around a custom map, and it's all written over the example game that comes with the UDK. I'm trying to get a dedicated server set up so we can test our changes (it's going to be a multiplayer only game). We're all on beefy Windows machines on the same network, and the server is not being run through Steam.

I've been using the Unreal Frontend to compile and package the game. The installer works fine, and the game it installs works as well. We can set up a simple peer-to-peer multiplayer game, and that works. The problem is when I try to run it as a dedicated server from the command line. The command I type in is

UDK.exe server provinggrounds.udk?bIsLanMatch=true

This executes and brings up a second console that says the game engine has initialized, and then waits. Unfortunately, none of the other copies of the game on the network can see this server, which is a problem. Now here's where it gets crazy.

I discovered this in the "try random things to see what works" phase of troubleshooting. If I run the game as a dedicated server from the command line, then open a second instance of the game on the same machine but in normal game mode, and then have that instance host a multiplayer match, any other instances of the game on the network will see one server and when they connect to it they will connect to the dedicated command line server on my computer. Once they join, I can close the normal hosting game without affecting the server, but then nobody can see the server anymore.

I really don't understand what is going on here. Why can't anybody's game find the server under normal circumstances? Why is the server only visible when there is a game instance hosting a peer to peer game on the same computer? Is there a way to fix this?

DementedDr
  • 177
  • 2
  • 15
  • Are you trying to use the default server browser in the UDK game? With "LAN" and "Deathmatch" as the filter? – Phillip Nov 06 '13 at 03:02
  • That's what I do for the second instance of the game. I actually can't change the "Deathmatch" filter for some reason. – DementedDr Nov 07 '13 at 23:28

1 Answers1

0

Try:

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

That is what I use to launch a dedicated server. What you were properly missing was the listen=true part.

For more details see the documentation.

EDIT 1:

As a workaround you could force your game to connect to a given IP. In your game open with console with Tab and type Open #SERVER_IP# (replace #SERVER_IP# with the actual IP of course).

You can have your game connecting to a server passing the server's IP to it as an argument in the command line: UDK.exe #SERVER_IP#

EDIT 2:

Another problem might the firewall, perhaps UDK uses different ports when run as a dedicated server. Although unlikely, here are the ports that UDK needs to be opened/forwarded 6500, 7777, 7778, 7787, 13000, 27900 for UDP.

HoldOffHunger
  • 18,769
  • 10
  • 104
  • 133
red_rain
  • 398
  • 4
  • 15
  • I've tried it that way too. I've set listen to both true and false, and it doesn't change anything. I've tried setting several of different variables I've seen in that documentation, and none of them make a difference. – DementedDr Nov 05 '13 at 00:26
  • That is strange. I can fire up a dedicated server, see and join it with a client on the same machine. My only guess is that something outside of UDK is getting in your way. As a workaround you can force UDK to try to connect to the server's IP directly. I've updated my answer how to do this. – red_rain Nov 05 '13 at 17:42
  • I'll give those a shot when I can. I have a guy who actually knows networking looking at it for now. He said that the server isn't even opening a port. – DementedDr Nov 07 '13 at 23:30