Please help a noob understand the networking options

Options
Hello all.

For starters, thanks for taking the time to read this post and provide your feedback and help. This post is a bit longer than needed, but I think some extra info might help you better understand what I am looking for. As a noob to all of this, I appreciate any and all advice given. Also, I am not sure this is the best place for this post as it covers more than just PUN, but I didn't know where else to put it. Anyways, thanks for reading, and on to the post.

I am new to game development. Most of my career experience is in engineering, but I got my Vive (VR headset) earlier this year and it inspired me to take game design from just a dream to a part time job. Since then I have learned to use Unity, and have made a couple simple games in VR. They obviously aren't the most polished games, but they were useful learning demos.

That being said, I am starting on my first multiplayer game that I plan to put on Steam. The game is based on pretty much any sport (basketball, soccer, handball, etc.) where you have 2 teams, 2 goals, and 1 ball which you try to pass forward and shoot into the goal, while your opponent tries to intercept. So, think games like Rocket league.

For this game, I am looking for a multiplayer solution that can do the following:

-Matchmaking
-Small groups of people (up to 8 players in a match)
-Voice chat (really needed as it is a team game and you can't type in VR)
-Capable of handling up to a few hundred players (in total, not all in 1 match)
-Simple to learn
-Good tutorials and demos for me to copy/modify
-As 'plug and play' with Unity as possible (cuz I is noob)

In the future, if the game is successful, I would like to add the following

-Some anti-cheat mechanics (which would require an authoritative server? I think?)
-AI players (to balance uneven teams if somebody drops)
-Ability to rank players (Elo system), this would require some sort of permanence on a server rather than just the match itself.

I don't know how important this is right now, but it would be nice if whatever tool I learn could be applied to other game styles in the future (I.E. FPS, or the like). That way I don't have to learn a different tool for my next project.

So then, I have done some research and found that I have many options. Including:

1. PUN
2. Bolt + steamworks
3. Unity's own system (UNET I believe it is called)
4. Forge
5. Lots of other options (uMMO, Plus networking, Authoritative server, and a dozen others)

I have basically come to the conclusion that it will either be option #1 or #2 (PUN or bolt/steamworks) as all the other options seem to be too complicated and buggy for an inexperienced person like me to use.

1. PUN seems to be the best choice for me, primarily because of the extensive documentation, tutorials, and already completed projects available that should be really helpful. I.E.
https://www.assetstore.unity3d.com/en/#!/content/51082
https://www.assetstore.unity3d.com/en/#!/content/17070
And also the lots of you tube videos that show it being used.
In addition, it has Photon Voice, which I would assume is easy to integrate into PUN. It should also be able to handle the player load no problem. And it comes with matchmaking. Combined with a long track record of success, it should be mostly bug free.

My concerns (and why I am looking at other options), is that PUN doesn't seem to have any ability to do anti-cheat stuff, nor can you run an AI on it (at least if the AI needs colliers). It also has a reputation for being a bit laggy. Not terrible, and probably not an issue for the type of game I am making. But it limits it's ability to be used for things like FPS.

I am also not sure if the bandwidth is sufficient. The website says 500 msg/s. And with 8 players, predicts I can only have a tick rate of 7 messages per second. That seems really low, and I dont understand why. If 8 players each talk to server, and recieve a single message every tick, then it should be players * tick rate * 2 (send + recieve). But the tool says it is players^2 * tick rate, which doesn't make sense with a central server.

In addition, I can't seem to figure out photon voice pricing. It seems to just be a copy/paste of PUN. Including things like a msg limit, which makes no sense for voice. Does that mean it comes with PUN? Is it extra, but only a CCU limit? The pricing makes no sense.

It also seems I would need to buy additional services, like Playfab if I want to have customer data (for an Elo system). Is that correct?

2. Bolt is another option. It's primary benefits include increased efficiency, performance, and predictions that help to reduce lag. Along with the ability to have built in anti-cheat stuff and matchmaking. And perhaps most important is that it supposedly works well with Steamworks. Which I could use for things like voice chat, player stats, etc. It also seems like it would be cheaper as it is a one time purchase and steam does all the voice chat/networking stuff.

My concerns are primarily the lack of example games (like the links above for PUN) and Youtube tutorials. There are a few, and the documentation is good. But I think it would probably be a steeper learning curve than PUN. The software is still relatively new (in Beta) and as such there will probably be bugs. I am not the most experienced programmer, so trying to fix bugs in other people's software seems like a bad idea.

So, all that said. Is my understanding of the options correct? Am I missing anything that I should consider? If you were in my position, which tool would you use? And how does photon voice pricing work?

Comments

  • Bolt would be a good choices for the reasons listed. It is also made for server auth as you want. The Steamworks integration can also handle your ELO based matchmaking. There are only a few known bugs, and they are minor. Bolt includes several examples for different types of games, tutorials, and lots of docs.
  • Tracker
    Options
    Is there a set time as for when the new bolt with steamworks integration will be available? I have read it is 'soon' but I don't know if that means days/weeks/months.
  • It is currently available for greenlit games, email support@boltengine.com