Can someone give me a rundown on multiplay vs photon vs mirror?

So I keep reading that multiplay only lets you host a game for 1 hour? I also keep reading that its expensive compared to photon and mirror.

Let’s say I want to let players create a instance of a game that might last weeks before restarting. Which option would be best?

I’m kind of leaning towards mirror. It looks like I can set it up so players can use the steam matchmaking servers and allow them to host the games they make on their own computer, https://www.youtube.com/watch?v=tFnNfq_EWWM.

What are your sources here? North Korean state propaganda? :thinking:

Don‘t just repeat the FUD people spread. The first statement is so outrageously ridiculous you can downright disprove it by mere common sense. The second statement is easily researched and put into perspective by checking each service‘s price listings.

In terms of costs? Well, you can run the numbers yourself as you need far more information than that to consider the costs. But the actual costs depends HEAVILY on how that server is programmed. If you let it tick at 120 Hz and it synchronizes everything every tick then you will be paying premium. And generally a long-running server instance with few to no users is extremely inefficient cost-wise. Imagine 100 servers with 10 players each vs 1000 servers with one player each. It‘s as simple as that: you will want to avoid the latter at all costs!

The networking framework is irrelevant here. You can use steam or Unity services with any other networking framework. Do note that Mirror, although popular, is an outdated technology that doesn‘t implement industry standard tick-based network updates.

General advice, since these questions and how you mix costs and frameworks indicate that you have no experience in multiplayer development, be sure to watch this talk:

Thx for reply CodeSmile, man you are everywhere on these forums. :smile: Ya it was probably north korea.

I guess I’ll try netcode out first. I found a library for interacting with steam, https://steamworks.github.io/. With my game its kind of like a voxel engine where players can create their own minigames / mmos so I think to start out with multiplayer it would be best to let the player host their own game and let their friends connect to them and then maybe in the future add some more robust dedicated server features. This way I won’t have to pay anything until my game gets off the ground.

I was worried that I would have to write a separate engine for both server and client but it looks like netcode has options for that like mirror does.

// netcode
if (isServer) {}
if (isClient) {}

// mirror
[ServerOnly]
[ClientOnly]

EDIT: Oof, though I just installed it and I’m getting an error. Looks like the version is not compatible with unity.Collections, lol, not a good sign.

EDIT2: Netcode looks like it’s on 2.0, About Netcode for GameObjects | Unity Multiplayer, but even after enabling package preview I can only see 1.9.1? I assume the errors I am getting is because I need to update it.

Library\PackageCache\com.unity.transport@1.4.1\Runtime\IPCManager.cs(79,44): error CS1955: Non-invocable member 'NativeHashMap<ushort, int>.Count' cannot be used like a method.

My unity.collections package is latest version.

EDIT3: I’m using the serialization package which requires collections 2.4.2 but netcode requires collections 1.4.1… -_- … I don’t really have any choice but to wait until it gets fixed.

EDIT4: I watched this video, https://www.youtube.com/watch?v=-5gxalgp6eg, and think I’ll try out fishnet now LOL, i wonder if the video creator is a fishnet employee or something.