The find sessions node has me puzzled, how does it know where to look? i mean, if you try to find a session that is not in LAN it cant possible search the whole internet for a server, that would be very inefficient and slow… but there is not field in a node to specify a server or even an IP range for it to search???
Some one please explain to me exactly how finding a session in UE4 works and how that can be applied to match making.
You are correct, it does not search the whole internet. The online session nodes like host, find, and join all use the online subsystem, which depending on your platform means they use xbox live, ps plus, steam, etc. servers to host games which are then searchable by the system. and of course if you have lan enabled it will search your local network for hosted games instead.
So what if i am hosting a session on my machine for the world to play, how is the find sessions node going to know that there is a game on my machine? it cant possibly search the whole internet? or do i have to use another node that specifies ip’s?
Yes, you would not need the session nodes in that scenario. You would use client and server travel. You would open the level with the open level node and the input option set to listen on the host. Then the client would open the level with the correct IP address set in the option field. There would be issues though for clients outside your IP. There are ways to handle them, but this is why you would probably to use a server service like Amazon gamelift, game sparks, etc which have sdk’s for hosting, finding, and connecting to their servers that anybody could access.
So i assume the best way for something like a matchmaking system to be implemented would be for the master server to select the player with the best connection as the one hosting the session, then it would broadcast the IP to all the other players to join in?
I have no experience with multiplayer and i am just trying to get the concepts right in my head before i dive into the actual action haha.