We need to find a long term networking solution for Unity. We have a few (free) options, and a couple paid options. There are of course several other options available, but I don't know how viable they are. I would also like to stay away from a BaaS solution for our networking.
Option 1. Unity's own Networking API. Unity does charge for hosted servers and for use of their matchmaking services. However, since we would building the server, we can roll our own services and it's free to self host.
Option 2. Forge Networking. This was a networking solution that used to be paid in Unity. It is now free. It offers many features that we would have to code ourselves in unity, and it is easy to set up. No limits to what we do.
Option 3. Lidgren. This is a UDP socket library. It's written solely in C# and we can create our own servers from the ground up using it. We can roll the server/client code up however we want. We can develop it in unity or on the side using .net core for cross-platform support, or just from a console app or win forms like the MCU.
All 3 solutions are free. We host ourselves, and work well with unity. I have used all 3 personally.
Paid Option 1. Easy Anti Cheat by kamu. Paid service. Works in the unity engine. The supply a base client and server which we can then modify for our needs. We would then not have to write our own anti-cheat measures.
Paid Option 2. Steam. This pulls us back under BaaS for networking, which I dislike. But I think it's still a possible.. maybe viable, but not quite option. It's a large platform, we can use their servers, and of course the main reason that you would use them VAC. Again, no writing our own anti-cheat.
Now to open the floor up for discussion.
I agree this will not make it to the MVP, so it's not a high-priority discussion at the moment. This is mostly informational, and gives something to research.