We've been hard at work on a lot of features lately, one of which is integration of the SteamAPI using steamworks.NET. We've tried integrating this in the past, but always encountered issues.
So we decided to do some more testing, and we made a small test platform to test out all the things we needed. (this took no time at all with the new and improved Unity UI)
It took a while to get used to the way Steamworks works, but we've done it!
(for those familiar with coding. Think CallBacks and CallResults. On everything SteamAPI.)
We are now able to start a lobby, fill it with server information (public IP address, port, servername, etc.), and retrieve the information using an invite! (through the steam overlay).
Why using lobbies and not Steam's Master-Servers? Well for one, your IP wont be publicly shared all over steam. Second, you can't call these lobbies, without an invitation.
This is only the start though! As we have a lot of interesting features planned with the API. But, now that inviting people to a lobby is working (currently only in-game though.) we can start experimenting on other features (like achievements, stat-collection, how the workshop works, etc...) that can become pretty interesting.
Some people might've noticed an extra option when launching Homebrew the past couple of days.
This was to test the platform out, with the steam overlay, and correct business. Without doing weird stuff to our Steam-clients.
So, How does it work?
Well, if you start up a server, Homebrew will start a lobby in the background.
It'll then insert relevant server information into that lobby, like server-ip:port, password, server-name, etc.
Then the user can call the overlay for inviting people to join his server.
(Users wont be able to access the lobby without an invitation though!)
After the friend accepts, they'll join the lobby (this is not the actual server!) in Homebrew, load the server-information, and connect using the data just like you normally would via Direct-IP (or server-list).
Be Aware: your server still needs to be PORT FORWARDED! For joining the lobby it doesn't, since it creates those lobbies on Steam's side. Not on your machine.
This might sound a bit over-complicated for what it is, but it's by far the most reliable and quickest way (without needing to rewrite our netcode)
What we'll be able to do onward now that the entire system is working however, will open up a lot of possibilities.