What networking solution should I use? (Details of game inside)

Hey everybody. I’ve been spending a few hours looking over information on networking in Unity, and have come to the conclusion that I need some personal input before I can make a decision on what I’m going to do. I’m not sure what I should use for networking: The built in Unity networking features, or a 3rd party networking feature set. So you can better understand what I need, here’s some information about the game I’m working on.

The game is a 2D sidescrolling action-rpg. The core mechanics are similar to the post 16-bit 2D castlevania games. The bulk of the game will be spent slashing and blasting your way through randomly generated dungeons. The game could yet go in one of two directions: A roguelike, in which players will make their characters and be pretty much immediately dropped into a dungeon, and the game ends when either all players or the final boss are dead. OR: A full-blooded rpg, in which players explore many smaller dungeons over the course of their adventure.

The game will feature 4-player Co-op, both local and online. If possible, I’d like to be able to mix the two, and have any combination of groups of players adding to 4 be able to play together. (4 people playing online, 4 people playing locally, 1 person connected online to 3 people playing together locally, etc.) The important thing here, though, is that there will never be more than four people playing in a single game.

There may be a hardcore mode, in which players can attack one another. Doubt this matters to the question at hand.

I’d rather not have to pay for servers. Players should be able to connect directly to one another, or at most, ping a server for a list of people accepting other players into their game. If I go the second route, passwords would need to be implementable.

I’m not worried about cheating. My game will likely not have paid dlc or microtransactions, so if hacking makes the game more fun for players, more power to them.

EDIT: I forgot a few very important things. Not sure how I managed to do that.

I’m currently using Unity Free. Once I have art assets and a majority of the game built, I will attempt a kickstarter to fund the acquisition of Unity Pro, but I do not expect to be successful, as I have not built up my name in the gamedeverse and I am not a master of marketing.

The game will be launched on PC, and most likely Android as well. Launching the game on Android is lower priority than getting online co-op.

I’m not entirely set on using online multiplayer, but the game WILL have local co-op. Online multiplayer is very high on my list of priorities, though. I’ve been doing some tests with Unity Networking on a generic game (not my current project), and more often than not, I’ve found myself unable to connect with people, and them unable to connect with me. These tests were all done with a web build, though, because that was the most convenient format to send to people, and the test was made as a copy of a video tutorial I built along with. So I don’t know too much about unity’s networking yet.

You could use the Photon “Redistributable Server” package to make your game LAN-enabled and switch to online multiplayer when your prio allows you to. There is virtually no effort to switch between both (unless you modify the servers).
The redistributable server requires a Windows machine with a DotNet runtime installed. Not much more.

To try it, simply download:

You can also run the regular server on your machine, if you like:

I just looked it up, and it seems like I’d have to pay to have more than a certain number of servers running at once. If at all possible, I’d like to avoid a solution like that. Ideally, I want my players to connect directly to one another, so that I can avoid paying a recurring fee for a service.

Hi Sharpevil,

I think Unity Networking solution still may be feasable to you for this kind of game with few only players. But it require the master server to handle your connections.
You said you did some tests with Unity Networking and found unable to connect with people using the web build. Did you used a masterserver?
I am working on a project looks closed, as networking mechanism, to your tests. You can take a look here and share the webbuild to see if you can connect with people, and if them are able to connect with you. With the same goal, you can also download and run some compiled clients and servers available in given page.
If tests results are closed to your game connections expectation, than the Unity networking may be applicable to you at least for PC version. For Android version, read the comparison here - looks Unity Networking have some issues with Android.

For your specific needs then you might want to give TNet on the asset store a chance :slight_smile:

Check out uLink. 550 Euros once off license fee.

In practice, your customers won’t have the best experience if you make random players host the game. It’s often tricky to connect (firewalls, NAT, etc), gives you random network quality during sessions and if the host closes the game, any other players are thrown out of it too.
Of course neither matters if you do a hobby game or have a great community of players who cooperate on this. I

I don’t particularly expect the game to be a success, but I’m not so pessimistic as to rule it out. This is a hobby game, in a sense, but I’m spending vast amounts of time on it (often 10-15 hours per night), have found an excellent artist, and plan to polish it to a mirror shine. When it’s done, though, the game will be sold at a relatively cheap price point, so if the game’s popularity were to explode, I may find myself quickly hemorrhaging money if the server automatically scales up, or dealing with a number of angry customers if it does not.

If you go with Photon or Photon Cloud, we can will find some way to limit the costs for you. We know you can’t always anticipate how successful things become or how to make (enough) money out of it from the beginning. We can discuss what makes sense for you via: developer@exitgames.com if you like. If you got material or screenshots, even better. We will treat it confidently.

pick something from this: SERVER ENGINE COMPARISON - Google Sheets

from this thread: http://forum.unity3d.com/threads/95277-Networking-Server-Comparison-Chart

Hm. When the game is further along, I’ll send you some information. Flexibility is good.

Thank you for the list, it’s very useful. I’ll be looking through it for a while.

Seriously TNet would be great for this. I’m even using it for FPS stuff.

Agree - TNet with VPS hosting if you are looking for the cheap solution!
I’ve recently converted “FPS Kit | Version 2.0” to TNet and I’m pretty happy with the results :
http://forum.unity3d.com/threads/153337-FPS-Kit-Version-2-0/page62
Demo:
http://exposedconflict.com/unity/TNet.html