Anyone have Sample MLAPI with Steam Matchmaking?

Guys anyone have a Sample MLAPI with Steam Matchmaking? I have with old networking but There is a problem I cannot solve; I don’t know what to replace the use of NetworkConnection with.

I just want to Create/Join Lobby via Steam

Editing: It looks like MLAPI has more features than I understood :slight_smile: See Luke’s post below, I’ll leave Steam Multiplayer Documentation in case its helpful to anyone:

https://partner.steamgames.com/doc/features/multiplayer/matchmaking

You should be able to use Steam Matchmaking with MLAPI by using the SteamP2P transport. Instead of writing a custom NetworkConnection with UNet you create a custom transport with MLAPI. You can take a look at the existing Steam transport, you should be able to just do Steam Matchmaking and then use that transport to connect: https://github.com/Unity-Technologies/mlapi-community-contributions/tree/master/Transports/com.mlapi.contrib.transport.steamp2p

1 Like

@luke-unity Current steam transport has multiple dll issues and its in the packages folder and uneditable for platform settings. Or am I missing something?

Did you ever have any luck with this?

Cheers

We adopted MLAPI early this year with SteamP2P transport, so far it’s pretty stable when we have 100+ objects sync in a scene.

Here’s a demo I used to verify the connection at the very beginning:

The demo allows you to host and connect through Steam, invite a friend to join the room, and contains some simple sync functions.

5 Likes

that steamP2P link leads to a 404

https://github.com/Unity-Technologies/multiplayer-community-contributions/tree/main/Transports/com.community.netcode.transport.steamp2p

Is this demo up to date? Ive been trying to use it but Unity is telling me that MLAPI components are legacy, so ive tried to convert this demo to using Unity.Netcode, which is almost identical, but I keep getting a wierd NullReferenceException: Object reference not set to an instance of an object with NetworkManager.cs(line 1144): MessagingSystem.ProcessIncomingMessageQueue(); . What would you recommend?

Thank you for making the demo btw, its taught a lot on how to make connections work.

Are you able to properly start a client instance using the steamp2p transport?
I’m currently stuck with the same error message you described, and i think that is why my clients are not able to connect via steam.

See another post describing the same problem: https://answers.unity.com/questions/1869491/messagingsystemprocessincomingmessagequeue-nullref.html

1 Like

For now i moved to facepunch instead of steamp2p. And it’s working.

1 Like

That’s good to hear. Would you mind sharing a little more about what you did? Did you use that demo at all: https://github.com/furic/MLAPI-Demo?

I’d be keen to fork this and just work with a few of us here to make it work properly with facepunch and the latest version of NetCode for GameObjects.

It’s totally not bulletproof in any way it’s just working. Nothing more, nothing less.

3 Likes

Could you share the scene with this code? Im getting the error that “SingletonMB” and “ServerGameNetPortal” arent recognized

Update: Luke has an example project using steamP2P that ive tested and have gotten to work: GitHub - LukeStampfli/Netcode-Steamworks-Sample

1 Like