While I really like #UnrealEngine, I absolutely fucking hate Unreal's community as a knowledge base.

Once again, I'm trying to do something that SHOULD be well documented and fairly simple to do, but absolutely fucking nobody can tell me how to do it: Find a Dedicated Server.

You can't call Start Session from a Dedicated Server because for some reason it requires a Player Controller (afaict it only requires the Player Controller to derive a Session Name). 'Find Sessions' doesn't return sessions that haven't been Started, so won't return a Dedicated Server.

And yet, Unreal games use dedicated servers and have server browsers that list dedicated servers, so clearly there is a way to get a list of them.

Just don't bother fucking asking on Epic's forums, or the Unreal discord, because apparently nobody fucking knows how to do it.
@DKesserich There are several ways.
MMORPG sorts of dedicated servers typically have a service (one that is not provided by Epic) which orchestrates starting and stopping servers, as well as assigning players to them via some heuristics. None of that is provided by Epic.
Another approach is the old-school "lan play", which requires that all the participants are on the same network. Unreal does supply some support for this; you might look for "OnlineBeacons" in the docs.
@DKesserich And maybe take a look at the Lyra sample project's multiplayer support as well. Unreal docs are often just enough to find the right nouns and verbs. Then I often go straight to their source code (Engine and samples) and look for use of those nouns/verbs to see what's actually going on.
@posniewski I'm trying with LAN play, and everything I can find in the Unreal docs for dedicated servers on LAN is to directly pass the IP of the server to connect, which defeats the purpose of what I'm trying to do. As far as I can tell even Beacons still require foreknowledge of the server address to ping them.
@posniewski Basically I'm trying to have a setup with two dedicated servers on a LAN, and the client automatically connects to one server, and then the player does something to jump to the other server. I need to package this into builds for a client delivery, so I can't hardcode the LAN IPs, and I want it to be pretty idiot proof so don't want to set it up with INI configs that have to be edited.

@DKesserich I haven't done LAN play myself, so I don't have an answer for you, sorry.
I had thought that the LAN stuff used broadcast packets to advertise hosts, but that was just a supposition.

(For internet-based dedicated servers, I usually use a DNS entry with a well-known name. The client contacts that to "login" and the response gives the client the ip addr and port of the server they should connect to.)

@posniewski Yeah, it's frustrating because this seems like something that should be the easiest thing in the world to do (especially since it just works the way you'd expect with Listen servers on LAN), but it's inexplicably actually quite difficult.
I don't think "a dedicated listen server" is a network model they have which works out of the box. Two approaches I can think of:
* Roll-your-own UDP broadcast system where servers announce their existence and clients (and/or other servers) remember this info. This means learning how broadcasts work, making a listener thread, etc.
* Try to repurpose the Listen server code (e.g. Beacons) and use it in Dedicated server mode. This means some reverse engineering for Listen mode.
@DKesserich Makes you wonder if all the real info is hidden behind the expensive UDN subscription
@fractalus Oh, it absolutely is. I used to have UDN access through an old employer and the info in there was 1000x better than any of the public facing stuff, and people from Epic were way more responsive about answering questions.
@fractalus Sweeney said some stuff at Unreal Fest about how they just don't have enough people to open up UDN access more, but it would cost them nothing to lock asking questions and posting on UDN behind the custom license paywall while still letting people read and search it.
@DKesserich Now I'm tempted to apply for an Epic Megagrant and say I need it to afford a UDN sub