What are Mono's multiplayer limitations and possibilities

I’m working on a little project with a friend in Mono 3.6. Recently, we’ve started exporting to other platforms, like the Windows Phone and the Xbox One, and that led to us talking about multiplayer. However, we couldn’t find definitive info on what is actually possible, cross-platform-wise.

So, given that we take each platform’s “needs” into consideration (adding touch input and a closer camera to the Phone, mouse on the PC, etc), what is doable? Can I cross-play between standard Windows and UWP? UWP and Xbox One? Can a player be on the Windows Phone 8.1 while another is on the Xbox or on the PC and play together, real-time, with each other?

Let’s get something out of the way first: MonoGame is not Mono! People sometimes say Mono when they mean MonoGame, but they are completely different things. Mono is an open-source implementation of .NET Framework. MonoGame is a framework for cross-platform game development. The relation is that MonoGame depends on Mono as a .NET runtime on some platforms where .NET Framework is not available.

Now to answer your question.
What you’re saying is all possible technically. There might be some regulations that disallow cross-play to some extent though (I don’t really know about this but you should definitely look into it, maybe someone else can shed some light). But it’s not really related to MonoGame how networking is handled. If you set up a server and have the game running on WP and XBox connect to the same server in the same way you can let players interact across platforms.
I want to note that cross-play is not necessarily a good thing. How feasible and fair it is to have cross-play depends on the type of game you’re making, so make sure you think it through.

MG has a simple networking API. However, I don’t really know what it offers and it hasn’t been maintained for a long time so there are probably better alternatives.

1 Like

Yeah, I know. However, “Mono” is how I like to fondly refer to “Monogame”, and since this is a Monogame forum, I was under the assumption that it’d be rather obvious that I meant “Monogame” and not the actual Mono.[quote=“Jjagg, post:2, topic:9420”]
Now to answer your question.What you’re saying is all possible technically. There might be some regulations that disallow cross-play to some extent though (I don’t really know about this but you should definitely look into it, maybe someone else can shed some light). But it’s not really related to MonoGame how networking is handled. If you set up a server and have the game running on WP and XBox connect to the same server in the same way you can let players interact across platforms.
[/quote]

I don’t mean to be rude or anything, but I get the feeling that you don’t know the answer either :v

We’re working on a twin-stick shooter with an interact button. The idea would be to have a co-op mode, where the interact button would just be a tap on the phone screen, for instance. It’s a rather simple game, so no one would be at a disadvantage.

I’ve heard about how access to Game Services (like achievements and XBL) was restricted to XNA and was never implemented in Mono, but it’s hard to find good info on how/if it currently works.

Depends on what question you’re talking about :stuck_out_tongue: I literally said I don’t know about platform restrictions. About MG though, it doesn’t handle networking, so it does not make sense to ask what limitations MG has with regards to cross-play or multiplayer.

We get enough people who do actually confuse Mono with MonoGame. It is important to us that the distinction between the two is made.

If you are using a regular socket connection, whether it be TCP or UDP, to an IP address, then you can do whatever cross-platform communication you want. This is ignoring the difficulties of connecting through NATs or firewalls or ISPs blocking inbound connections to phones. These issues could be solved by supplying a central server that each client connects to and routes communication between clients. That may or may not be something you wish to do. You will need some matchmaking server or some sort, unless you are only playing on a local network where you could do UDP broadcast to find other local clients.

In summary, there is nothing in MonoGame that prevents you from doing communication between players on different devices. It’s just network programming and the many obstacles that are inherent with that territory.

2 Likes