After an insanely long time with no progress made on the multiplayer front, I am excited to announce that a breakthrough has finally been made. Before I continue I must thank XstreamTech (visit his YouTube channel!), without whom this would not be possible.
So, where were we? If you remember from this post, we could get a server browser working using Gemini but were completely unable to connect. The key is to use the ConsoleCommand(“open xx.xxx.xx.xx”); line instead of “open [IP]:[Port]”, where the x’s are the IP address. The reason is that this frees UDK from using a specific port.
Secondly, your host must have already forwarded the correct ports (6500, 7777, 7778, 7787, 13000, 27900, with 7777 being default and 7778 primary backup) in order to connect. XstreamTech recommends using Port Forward to set up your router if you plan on being the host. I am still looking for a script solution to do it automatically so it’s not so much trouble for the end-user.
In order to get a match going you must:
- have the host use ConsoleCommand(“open [map name]?listen”);
- have the client(s) use ConsoleCommand(“open xx.xxx.xx.xx”);
It also helps to disable Steamworks. Although not necessary, I find that Steamworks is generally annoying and useless at its current state anyway.
To reiterate, we have the host open a map and listen for clients to join. Gemini will then add its IP and map information as a server onto the Gemini Server Browser. Clients using Gemini will be able to see the host, then when they select the server UDK grabs the IP from Gemini, executes an open command, and connects flawlessly.
It’s a wonder I never thought of it for two months.