Firebase Based Sessions

So Ive developed most of my base game, and I wanna test it outside of lan. Figured out that even having it connecterd with steam, you wont find internet servers being hosted outside of your local network.

Ive done some searching into it, and it seems firebase is great for storing player info and such, but I havent really seen anything about using firebase to store session info to join internet sessions. Is that possible, and if so, know how it can be done?

I also want to add, Ive looked into Amazons Gamelift, but it seems like its a place to host servers? Im not sure, but i just want to be able to store session info on a data table then be able to join a session from that info.

If anything, Im thinking I could default to just joining by ip, and the server list will just contain joinable IPs?

If this is for testing, then you can just set up port forwarding on the firewall of the player hosting, and then give the external IP/port of that rule to anyone connecting. Connect manually with an address on the command line.

If this is for actual release, you will also have to worry about NAT introduction/punch-through for normal players to actually make this work, so you’ll need a game-aware introducer/session service. Steam can totally do this, if you sign up using the full-fat hosted service. Epic Game Services can also do this, as can GameLift FlexMatch.

If you have no particular preference, I recommend Epic Game Services, for obvious reasons it’s pretty streamlined for UE games :slight_smile:

Does EOS Subsystems only work with 4.27 up? It doesnt seem to be in 4.26, I’ll probably go the IP route for now. And you said there was an issue with NAT, but that only affects the people who are hosting, correct?

Yes, NAT is largely a problem for people who are hosting, altough the NAT that some people are behind may, perhaps, also be a problem for joining, for some super-broken firewalls, enterprise security proxies, and the like.