In your recent Reddit AMA, Larus mentioned that Steam networking support is on your immediate roadmap. Can you share any more information about your plans here?
I am really enjoying the HLAPI, with the glaring exception of the matchmaking APIs which are woefully inadequate for our needs. As far as I can tell, there’s no way to meaningfully filter the matches based on app defined criteria (ie: game mode, map, etc.), nor is there a way to give preference to nearby servers/hosts that are likely to have lower pings. Steam’s networking/matchmaking APIs provide exactly these features, and as an added bonus their networking stack also attempts direct p2p connections via NAT punch through before falling back on a relay server. As a result, I am very interested in using Steam to establish my network topology, and then use UNET on top of that network.
I spent last weekend digging through the UNET source code and hacking together a very rough proof of concept of this integration (still not done yet), but I would really rather discard this code and switch to a proper version implemented by Unity devs who have visibility into the LLAPI source code.
Another one of the developers on my team recently began the process of migrating our game to Photon, purely because Photon has better matchmaking. All else being equal, we would prefer to stay on UNET, so if it turns out that UNET+Steam support is right around the corner (or if there is an alpha version that we can be early adopters of), then I would love to know that so we can abort the Photon work.
If you haven’t already run across it in your research you might be interested in my plugin that does something similar to the steam networking but for UNet. It attempts to connect directly via NAT punch-through before (optionally) falling back to the relays. Also includes automatic port forwarding which is pretty dope.
I’ve run across it @thegreatzebadiah , but I’d like to avoid running my own facilitator if possible. I’d also like to go through steam matchmaking since my game is steam only and like the OP said, steam give you a little more ability to filter matches.
@nocanwin For what it’s worth you actually can use steam’s matchmaking with my plugin, or even with plain old UNet. The matchmaking / lobby stuff is totally separate from the actual steam networking connection so you are free to use one without the other.
Ok hack wees is almost over… I cannot promise for sure, but steam support has one of the top priority right now with nat punching solution. Hence, the most priority task is stabilizing library. I m personally not satisfyed with stability and performance… When? Good, again cannot promise here, 5.5 or 5.6 i guess. 5.5 optimistic, 5.6 realistic dates (for steam)
I had hoped for earlier Steam support, but it’s amazing to actually get a estimated release time. It’s really great to have a developer communicating with the users again. - It’s always preferable to get an answer, even if it’s not what you wanted. It’s much better than not getting a response at all.
Can you perhaps also give an estimated time for when the library will be available?
Thanks for the info @aabramychev ! Like others have said it’s better to have an answer you’d rather not hear than no answer at all. We need to be able to plan for the future. Here’s hoping for 5.5
I never actually used ANY of the Unity networking. We already have plain old Net Scokets available, but I don’t like these too. Using ENET or Steam NEtworking directly through separate threaded C++ Native plugin is my way to go. You bypass Unity’s networking at all this way but you become responsible for everything as a side effect. C++ server & Unity Client is perfectly possible case with ENET / EnetSharp. Also Unity should open UNET’s source code for everybody since this piece of code will make us possible to implement C++ servers and Unity clients, for example.
I want to start the development of a new multiplayer game on Steam. I would like to use uNet + Steam matchmaking+NAT. Do you have any news concerning Steam support? Any dates?
I’m also looking at Photon Bolt. It seems quite easy to integrate Steam matchmaking system…