Feeling overwhelmed. Where do I start with multiplayer networking?

I’m planning on creating a 2D platformer, multiplayer android game with unity. The game will be similar to super smash brothers, but online mutiplayer. The aim is to allow players to sign in to their player account using a username and password, and then proceed to a lobby where they can join a match with other players. Long term I’d like to add in player achievements and maybe even a store.

I’m not new to programming but I’m very new to Unity and I’ve been doing a lot of research on multiplayer API’s and unity in general, but everything is becoming pretty overwhelming. So far I’ve looked at Google Play Games Services, AppWarp, DarkRift, Photon as multiplayer API solutions but honestly I’m not too sure what the differences are between them and which would be best for me.

I’m hoping that someone here will be able to point me in the right direction. Based on the premise of my game…

  • Would Unity’s own multiplayer API be the best choice for my game, or should I look for others? Given that this is only a personal project, I’d like it to remain free for the time being.

  • Is player sign in with username and password something that I would have to implement myself, and if so, how could I have that communicate with a multiplayer API?

  • Is there any good tutorials that would be able to help me?

  • Any other advice for me? Or things I would need to consider that you think I might have overlooked as a newbie?

Hi KosGrillis,
I’ve been working with some multipilayer recently. Although I’m no expert, I think I can give you a few tips.

  1. Unity API is a good choice, BUT for a project like this I would strongly recommend Photon PUN. They have a multiplayer framework and give you a free plan to start . In case you need to scale, it’s very affordable.

  2. I’m not working with loging in yet, but you’ll probably have to implement this yourself. Not sure if PUN has some login system. I’ve seen some examples where they only implement a server to check username and password, if it passes, then they join the user on the game server (that doesn’t know anything about logging in).

  3. If you’re into PUN, they’ve got lot’s of tutorials on their website. If wanna look a little bit more on uNET, I suggest you watch this guy:

  1. I’m not sure about how you want to implement your multiplayer. You’re planning a game where the clients host their games? Or do you intend to have cloud servers for them to connect?

Thank you for your reply. As for number 4, I’m actually not too sure. I assume I’d have to set up or have a server available if I wasn’t going for the client-hosted path, but other than that I don’t really know the difference between them in terms of difficulty/implementation. How does PUN and uNET manage this?