0
\$\begingroup\$

OK so I am using unity to make a multiplayer game, but I'm not sure how to connect players with each other over the internet.

Unlike other questions, this isn't a general problem of working out how to do UPnp or using unity's matchmaking server. My issue is that my server that I would use is a simple low powered pc (running normal windows 10, no idea how to use windows server).

I think it is powerful enough to match players with each other, but not to host more than one or two actual games.

The other issue is that I have a residential internet connection with a dynamic ip that changes every few months. However the speed should be ok (150Mb/s download, 20Mb/s download).

Also, I'm not planning to spend money on a monthly basis for a server (like unity's matchmaking service) as I plan to spend as little as possible (So far I've paid £12 to Microsoft for a dev account and I've received a £200 voucher from them so my current spending is -£189!)

So my question is should I use my server (would it work), are there any online services that are very cheap to use, or is there another way to make this work?

Only other thing is I could use the free 20 users at once on unity's matchmaking, but would this limit be too small?

EDIT: just for information, my game is a simple tank shooter. I was thinking about limiting the amount of tanks in a game somewhere around 8-20. The bullets in my game are physical objects with rigidbodys and they move at a slower speed (if you've ever played tank trouble, it looks like that). The world is in 3D. There is a potential for there to be up to a hundred bullets in a scene at once at the worst. After hosting a LAN world with 7 players connected for about 20-30 minutes, windows reports the data usage being around 3-4MB.

\$\endgroup\$
  • \$\begingroup\$ What if your game becomes successful? Plan for that. You'll need to spend money for hosting your servers eventually, if only to mitigate DoS attacks on your server. \$\endgroup\$ – Vaillancourt Jan 1 '17 at 14:52
  • \$\begingroup\$ Well, hopefully if my game becomes successful, I would earn enough from it to either upgrade my server or use an online tool. \$\endgroup\$ – Joe Speers Jan 1 '17 at 15:12
  • 1
    \$\begingroup\$ You mention that you expect your home server to be able to host only 1-2 games at a time, which puts it in the same rough range of simultaneous users as Unity's free offering. In a scenario like that, I don't really see any benefit to using your own server - especially since it has a dynamic IP so you'd need to couple it with a web service that clients could query to find out where to actually contact it (which will be another cost if you don't already have web hosting somewhere). It's a pile of extra complexity for relatively little gain and terrible scalability. \$\endgroup\$ – DMGregory Jan 1 '17 at 15:40
  • \$\begingroup\$ @JoeSpeers did you get the answer of your question? \$\endgroup\$ – Muhammad Faizan Khan Jan 24 '17 at 10:02
  • \$\begingroup\$ I guess the best way to purchase this assetstore.unity3d.com/en/#!/content/58948 or this assetstore.unity3d.com/en/#!/content/58179 \$\endgroup\$ – Muhammad Faizan Khan Jan 24 '17 at 10:03
1
\$\begingroup\$

Don't go the home server route. The hassle and reliablity problems (dynamic IP, power, etc.) aren't worth it.

  • Get yourself a small VPS for a fiver per month.

  • Amazon's AWS offers (or used to at least) a micro instance free for the first year

  • Google's app engine (applicable if you implement the matchmaking service on one of their supported platforms) has a fairly generous free quota if I'm not mistaken.

Implementing a matchmaking service, which lets the player's connect to each other (i.e. isn't running the game itself) shouldn't require much resources, nor would it require a specific OS.

The above suggestions are also easy to scale if your game takes off.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.