I have downloaded the FPS demo, but i’m curious about two standard features in multiplayer shooters: Where is the master server code and server browser? Is it included? If not, where i can find these? UDK came with both, but i’m not sure how to find those in UE4.
Unfortunately there is no master server implementation included with UE4 at this time. We do support dedicated servers though, and you should be able to run a dedicated server instance for testing purposes locally.
There is a very simple server list menu in ShooterGame, check out SShooterServerList.h and SShooterServerList.cpp.
If UDK had a master server implementation then theoretically you could use it for UE4. There are dozens of ways to implement master servers, most of them simple web-based systems. Then connecting to them, sending game information and requesting it back is not too complex either. This was batted back and forth on the Torque 3D forums for a long while and spawned a few different implementations - one in php, one in C# and a few others. The key is setting up your service to know what information to expect from game hosts, what information to send to potential game clients, and how to handle the data from the game side.
Hopefully the dev team is dusting off the UDK master server though…
How does the list work? Does it work listing LAN games only or it expects an HTTP server list (JSON) or something?
At the game code level, it just subscribes to the FOnFindSessionsComplete delegate and calls FindSessions in the Online Session interface. It’s up to implementation of the currently-enabled Online Subsysem module to determine how to actually get the list of games.
For example, the OnlineSubsystemNull implementation does list LAN games. Other modules, like Steam for example, will communicate using whatever protocol and/or API the corresponding back-end service uses.
Does UE4 have any native libraries for dealing with TCP communication? Or maybe an HTTP lib?
You can use this solution to to run a master server on Windows / Linux and get a list of game servers using the UE4 plug-in.