doubts with unet pricing

Update:
I’ve Just discovered photon Bolt and it looks like we are searching for, anyone Just tried out?
Hello, my team and me were working on a multiplayer online game with UNET over 10 months and today the price of UNET has surprised us.

We are not sure how to check the bandwith used by our game per player so We can’t estimate a price.

We were looking to Photon today but the pricing is strange algo, I’m not sure if We can Make the game to use less than 500 messagges per second per room because our game is fast and with 10 players at least.

So We are lost and We don’t want to change all the code from UNET to another solution but we’ll do it if it is necessary.

This is our first game so We don’t have a lot of money.

So, what Will you do?

I fee like I’m getting really spammy posting this everywhere but I just keep seeing relevant threads…

Unity’s relay servers are only needed when a direct connection can not be established between client and host. The problem is that most people are behind routers these days so they can’t directly connect without a little help. That’s where NAT Traversal comes in. When properly implemented you should be able to connect directly the vast majority of the time without any need for the relay servers.

I’ve put together my own implementation that ties into the UNET HLAPI. Maybe give it a try:

I’m pretty much in the same situation. We just finished ‘upgrading’ to UNET only to find out that there’s no way we could ever afford to use it with the relays.

I know what you’re saying, I’m in my last year of telecomm engineering and I’m tired of program routers XD
But there is a problem, if you use UNET to matchmake you have to buy unity pro (1500$) and you have a maximum CCU to create games using the matchmaker, don’t you?

We are planning to launch through Steam so we are checkint photon bolt because it seems suitable for us but I don’t have a lot of info about people who use it

I very well may be wrong but I’m pretty sure if you’re only directly connecting you don’t need pro or any ccu’s at all. You can always replace unity’s matchmaking with steam matchmaking which is probably more full featured anyway.

So I’ve also been trying to wrap my head around the operating costs incurred from utilizing the Unity Multiplayer service as well, and here’s what it’s boiled down to (note that according to Relay Server Bandwidth Explanation - Unity Engine - Unity Discussions it seems as though bandwidth is calculated only by outgoing traffic from the relay server).

My game has a maximum of 8 players per game. We’ll assume the worst case that all games are always full.
In the worst case, each client sends movement data at a rate of 20/sec with the payload size being approximately 32 bytes per packet (sizeof(Vector3) + sizeof(float) + overhead padding).
The server streams all players’ movement data to each other client.
This means that the outgoing bytes/sec from the server to each individual client is approximately 8 bytes * 20 msgs/sec * 32 bytes.
This means the total outgoing bytes from the server is approximately 40kb/sec. Now, from my testing I’ve seen it’s significantly lower due to optimizations, but we’ll just go with this.
At 40kb/sec, or 0.00004096 GB/sec, means that each 8 player game hour costs $0.073728. Thus, each single player costs me $0.009216 per hour. Double-checking these numbers against results gotten from the price calculator here Game Development Software: Build a Multiplayer Game | Unity seems to line up fairly well.

So all this being said, and after some thought, the metric I’ve been looking closest at to evaluate the financial viability of using UNET is basically # of hours a player has to play for me to start losing money on them. At $0.009216 per player hour, they have 108 hours of game time before they cost me $1. If I charge $4.99 for my game, minus a 33% cut, they can play 360 hours before I lose money on them. $1.99 for my game? 143 hours of game time. I have a feeling that’s quite a bit more time, on average, than players will spend on a single game, especially an indie like mine.

For the sake of argument, let’s say I’ve made a mistake in my arithmetic (please, please call me out on it, I’d adore you) and I’m off by two orders of magnitude, i.e. they have 1 hour of game time before they cost me $1. If I charge $4.99 for my game, minus a 33% cut, they can play for 3.3 hours before it’s unprofitable for me… it’s bad, but I do wonder how many folks buy a cheap game like that, play it for an hour or two, and never pick it up again.

So anyway, I was kind of freaking out yesterday by this pricing, but after going through this exercise I’m starting to think perhaps it’s not completely unviable - or perhaps I’m just really bad at math? Anyone mind double-checking me here?

ON

You may want to take a look at this:
http://smartfoxserver.com/blog/?p=440

Scroll in the middle for a series of examples of very affordable monthly fees.

If anything is unclear let me know.

OFF

Looks as if every solution is going to cost you.

By far the cheapest over time, and IMO best solution overall, are both the same: Forge networking.

  • FULL SOURCE CODE (The only networking solution to give you Full Source Code)

  • No CCU cost

  • No messaging cost

  • Self-hosting will ALWAYS be cheaper than any paid hosting solution. (Rent your own - cut out the middleman)

  • Forge Cloud (Beta) as an option if you refuse to self-host. (I believe the cloud is in beta still. Might want to check this out first.)

Buy once, never pay any money ever again. (Of course you have to pay your own hosting, but that is ALWAYS much cheaper than any other solution.)
Forge is the best possible deal.
Full Source Code alone makes it worth it. IMO, that is a requirement for me. I can fix the bugs myself if it is ever abandoned; with UNET, Photon, etc. you cannot. If they get abandoned, you’re screwed. If there’s a bug, you have to wait for them to fix it (if they even do). I never trust anyone else with my game: Full Source Code is a requirement for me. But Forge’s team is alive & well, back to fixing bugs & adding features.

I created a 40 hour project in UNET and converted it to Forge (creating a guide in the process). It’s not extremely thorough, but explains a lot of the differences.

I’ve uploaded the page below; you can take a look at the differences. It’s pretty similar in many ways. Although it did take a bit of time to convert it, that may have been because I was writing this guide while doing it (which took most of that time). Just take a look and you might be able to tell if it’s worth it. (There’s a free version to test, btw.)

2558224–178091–UNET to FORGE Getting Started webpage.zip (18.3 KB)

3 Likes

To direct connection is not necessary but you have to announce the IPs somewhere and when you create a match the CCU is busy inmediatly

I checked it out and it’s at the same price that Bolt and Bolt can use Steam Matchmaking integration I think so I’m not sure about wich I’ll try.

I’m not sure how to implement this with code like Unet or Bolt where a client is the server

Has anyone used Bolt? I’ve seen that the forest use it but there aren’t more examples.

Here’s a (incomplete) list of titles that use Bolt. We work on Steam Matchmaking (making it a seamless integration).
Bolt is not open source but of course we take care of bugs and update.

Just to clarify are you saying that if I create a match, and then pull down a list of matches and directly connect to the ip address of the host of the match, without ever actually joining the match (NetworkMatch.JoinMatch() is never called), it’s going to cost me CCU? That doesn’t seem right to me.

I just posted some calculations (after I calmed down from the initial shock) and unless I’m mistaken it’s not as bad as I first thought. I’ll paste it here if the mods don’t mind:

Okay, I’ve taken a step back and tried to simplify the on-line calculator down to the costs per single user/customer. I’ve set Concurrent Players to 1, Expected Utilization to 100%, Messages per second to 20 and size 64bytes. This SHOULD - correct me if I’m wrong - give me the cost for ONE player literally running my game for the whole month (impossible but gives me my baseline).
It’s comes to just $1.54. This works out at $0.002 per hour (for a 30 day month). If they play an hour a day, that’s $0.064.
6 cents a month is much better than I thought, unless I’ve messed up my maths here which would be extremely embarrassing for a dev of 20 years :wink:
Now I just need to figure out the Pro-license issue!

Even though I’ve calmed down, the Pro-license is the biggest stumbling block and quite frankly I’m surprised more people haven’t kicked off about it!

It states the following on the FAQ:

What do I need for my Multiplayer game to be “Ready to Release”?
At this time, “Ready to Release” is only available to Unity Pro customers with a valid payment instrument.

Basically you can’t release your game unless you have a pro license. Does everyone on these boards who’s been tinkering aware on their UNET games for the last 6 months all have a pro-license???

Not really. It’s cheaper if your customers are based right next to each other, and you will not have downtime. Down time will happen. It’s a when, not if.

A cloud based solution means your game will always have players that can connect, since if one server is down, another won’t be. There’s no sane way rolling your own servers will ever scale, I’m sorry I have no confidence that an indie can run their own servers for any more than a handful of local people, or turn based.

I’m all for saving money but you’re just spreading delusional solutions if you’re saying things like you hosting is ALWAYS cheaper. Likely, it’ll ruin your title and business.

I like your posts but come on.

If not UNet then I would suggest old school punch through (people hosting servers themselves as part of the game) or Photon cloud. There’s a reason people spend money here, and it’s because they KNOW rolling their own is a sure fire way to throw their game in the trash.

When your game gets popular, your servers become a great target for flood attacks and more. You really, really don’t want to be dealing with this without dedicated and experienced staff. That you get from a solution like Photon. I can’t speak for UNet since it’s new. But outsourcing server stuff is pretty much a given if you’re serious.

I’ve just tried it out, I register a match through unet matchmaking with 12 players maximum but no one has connected and in the project page it said that 12 CCU is busy, so if you try to create another match with more than 8 players (for free maximum CCU is 20) it fails with the message maximum CCU is over overpassed so :confused: at the time you register a match in the matchmaking service it reserve the CCU of the maximum players.

but if you only need a matchmaking service because your middleware use punchthrough like bolt or something else you only need where to store the matches, dont’ you?´

So, Bolt it’s updating nowadays?, is it ready to make a production release? I read that is full of bugs. if not it will my very favourite solution but we don’t want to change the networking and then hit a brick wall again. The Forge networking’s page in the asset store it is full of I used Bolt but is full of bugs so then we change to forge and that type of things :confused:

So now, I’m more lost than before because all the solutions there are XDD

Thanks for this. Very useful. I’m wondering how hard it would be to move the NetworkLobbyManager over instead of Networking manager?

I really need to get back to finishing my project off as a matter of priority and unless Unity retract or explain the need for a $1500 pro-license I have no choice but to move to something like Forge for $75 instead. For me, this isn’t a comment on the quality of either solution or the costs of hosting/CCUs, it’s purely about a financial hurdle I’m unable to climb …and that’s a bloody shame. :frowning:

I just wish Unity had mentioned the Pro requirement earlier and I would never have started! I realise I could apparently write my own matchmaking server for HLAPI, but honestly I wouldn’t know were to start nor do I have the days available to do it.

1 Like

@SpaceMidget75 Check the FAQ posted some minutes ago. Pro license requirement will go away soon.

I did some calculations too, and with 1000 CCUs playing all the time (100%), sending 20 messages/sec with 210 bytes in size, this comes down to $6.85 per hour. Which basically means that I have to (at least) show 1 video ad per hour to all players, in order to get the costs back. Each additional ad view or IAP will be a benefit. I don’t have to handle all the servers and do the scaling, so that sounds reasonable to me…

1 Like

Hi Everyone,
We put together a FAQ to answer some of your questions here. Please feel free to ping us with additional questions too if anything is unclear, of course.

1 Like

This is GOOD news, and thanks for giving some feedback.

I have to say though, if that’s u-turn, then fair enough and thanks for listening. If it’s always been the case, then I wish Unity had made it clear from the start. I’ve had a sleepless night and another wasted day looking for alternatives! :face_with_spiral_eyes:

1 Like

It’s always been the case since it went live at least. Like I’ve said, people are not understanding it, a new calculator needs to be developed, plus a debugging function to see how much traffic you’re really generating.

@hippocoder is exactly right. There’s actually no change in policy here, we just didn’t communicate everything as well as we could and hopefully this FAQ is a step in the right direction. This being GDC week hasn’t helped with our response time either. Also, the calculator feedback in particular has been very helpful in letting us know we need to do better there.

We are always looking for your feedback on how to improve the service and Multiplayer as a whole, and where we should focus our development. A lot of the recent work for the Multiplayer group has been dedicated to just making everything ready to leave beta and go into full production.

Now that we have done that we’ll continue to address issues and feedback with Multiplayer across the board, including service improvements, documentation, and new features.

Yeah - I got tired of having to use separate tools to measure my bandwidth, so I had to wrap my most heavyweight networking messages (movement etc) to provide in-game realtime UL/DL rates. It still doesn’t capture bandwidth used by all [Command] [SyncVar] and [ClientRPC]'s though.