PDA

View Full Version : [SOLVED] August 2011 Build - Problems joining internet multiplayer servers



dsoltyka
09-20-2011, 11:34 PM
Quite a few people have noted that they are having multiplayer issues with recent UDK builds. They can connect to a server just fine over a LAN, but whenever they connect to a server hosted on the internet they get dropped. Since so many people are having this issue I decided to post a new thread instead of just posting my solution 7 pages deep in another one.

The output is similar to the following:

Client Log


[0058.77] DevNet: Browse: <ip>/TT-T_Sandbox1?Name=Player?Team=255
[0058.77] Init: WinSock: Socket queue 32768 / 32768
[0058.77] DevNet: Game client on port 7777, rate 10000
[0059.67] DevNet: Welcomed by server (Level: TT-T_Sandbox1, Game: Titan.TitanGame)
[0059.79] NetComeGo: Close TcpNetDriver_0 TcpipConnection_0 <ip>:7777 09/18/11 20:55:44
[0059.80] Log: Pending connect to '<ip>/TT-T_Sandbox1?Name=Player?Team=255?game=Titan.TitanGa me' failed; Your connection to the host has been lost.
[0059.80] ScriptLog: (UTGameViewportClient_0) UTGameViewportClient::None:NotifyConnectionError Message:'Your connection to the host has been lost.' Title:'Connection Lost'
[0059.82] DevNet: URL: Adding default option Name=Player
[0059.82] DevNet: URL: Adding default option Team=255
[0059.82] DevNet: Browse: TT-T_Sandbox1?closed?Name=Player?Team=255
[0059.82] Log: Failed; returning to Entry
[0060.10] Log: LoadMap: TT-T_Sandbox1?closed?Name=Player?Team=255

Server Log

DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>
DevNet: NotifyAcceptingChannel Control 0 server World TT-T_Sandbox1.TheWorld: Accepted
DevNet: Remote platform is 1
NetComeGo: Close TcpNetDriver_0 TcpipConnection_4 <ip>:59619 09/18/11 22:24:04
DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>
NetComeGo: Close TcpNetDriver_0 TcpipConnection_5 <ip>:59619 09/18/11 22:24:04
DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>


I noticed that this problem vanished when I tested with a teammate after cooking and packaging, and I believe I know why. After cooking and packaging a file appeared in my UDK/<GameDir>/Binaries folder called UnSetup.Game.xml. This XML file contains two fields, GameUniqueID and MachineUniqueID. I noticed this file also was packaged with my installer. I decided to copy that file from package-created installation folder and place it in my development Binaries folder that is under source control which ensured all teammates had the identical file.

This seems to have solved the problem. My assumption is that the engine cares about the GameUniqueID when an internet multiplayer session is started, but it seems to ignore it for LAN games.

So to recap, if you are having this issue, please try the following.


Using Unreal Frontend, fully recompile all scripts
Cook all game packages
Package your game into a UDK installer
Install the game from that installer, and look in the Binaries folder in that new directory for UnSetup.Game.xml
Copy that xml file back into the Binaries folder in your UDK development folder
Ensure all teammates have an identical file


Best of luck to you!

sidselst
11-23-2011, 11:19 AM
Quite a few people have noted that they are having multiplayer issues with recent UDK builds. They can connect to a server just fine over a LAN, but whenever they connect to a server hosted on the internet they get dropped. Since so many people are having this issue I decided to post a new thread instead of just posting my solution 7 pages deep in another one.

The output is similar to the following:

Client Log


[0058.77] DevNet: Browse: <ip>/TT-T_Sandbox1?Name=Player?Team=255
[0058.77] Init: WinSock: Socket queue 32768 / 32768
[0058.77] DevNet: Game client on port 7777, rate 10000
[0059.67] DevNet: Welcomed by server (Level: TT-T_Sandbox1, Game: Titan.TitanGame)
[0059.79] NetComeGo: Close TcpNetDriver_0 TcpipConnection_0 <ip>:7777 09/18/11 20:55:44
[0059.80] Log: Pending connect to '<ip>/TT-T_Sandbox1?Name=Player?Team=255?game=Titan.TitanGa me' failed; Your connection to the host has been lost.
[0059.80] ScriptLog: (UTGameViewportClient_0) UTGameViewportClient::None:NotifyConnectionError Message:'Your connection to the host has been lost.' Title:'Connection Lost'
[0059.82] DevNet: URL: Adding default option Name=Player
[0059.82] DevNet: URL: Adding default option Team=255
[0059.82] DevNet: Browse: TT-T_Sandbox1?closed?Name=Player?Team=255
[0059.82] Log: Failed; returning to Entry
[0060.10] Log: LoadMap: TT-T_Sandbox1?closed?Name=Player?Team=255

Server Log

DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>
DevNet: NotifyAcceptingChannel Control 0 server World TT-T_Sandbox1.TheWorld: Accepted
DevNet: Remote platform is 1
NetComeGo: Close TcpNetDriver_0 TcpipConnection_4 <ip>:59619 09/18/11 22:24:04
DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>
NetComeGo: Close TcpNetDriver_0 TcpipConnection_5 <ip>:59619 09/18/11 22:24:04
DevNet: NotifyAcceptingConnection: Server TheWorld accept
NetComeGo: Open TheWorld 09/18/11 22:24:04 <ip>


I noticed that this problem vanished when I tested with a teammate after cooking and packaging, and I believe I know why. After cooking and packaging a file appeared in my UDK/<GameDir>/Binaries folder called UnSetup.Game.xml. This XML file contains two fields, GameUniqueID and MachineUniqueID. I noticed this file also was packaged with my installer. I decided to copy that file from package-created installation folder and place it in my development Binaries folder that is under source control which ensured all teammates had the identical file.

This seems to have solved the problem. My assumption is that the engine cares about the GameUniqueID when an internet multiplayer session is started, but it seems to ignore it for LAN games.

So to recap, if you are having this issue, please try the following.


Using Unreal Frontend, fully recompile all scripts
Cook all game packages
Package your game into a UDK installer
Install the game from that installer, and look in the Binaries folder in that new directory for UnSetup.Game.xml
Copy that xml file back into the Binaries folder in your UDK development folder
Ensure all teammates have an identical file


Best of luck to you!

Hi, I still can't join a multiplayer game via a LAN server in UDK-2011-06. I guess the problem is, that I don't know how to set it up on the new UnrealFrontend... I have read, that it is possible to replace the "new" UnrealFrontend with the "old" UnrealFrontend. It seems to be the easiest solution for a beginner :) I hope someone can tell me more specific how to do it...

dsoltyka
12-21-2011, 11:03 PM
Honestly, this worked for us for a while but now randomly still breaks, so something is still wrong.

Ugh.