FPS Best Multiplayer Solution (Photon, SmartFox, Unity's Default...)

Hi, my name is Henrique, i’m from Brazil, and I would like a little help from you guys.
I’m developing a game (just me), basically about surviving to mutants of a biological accident. I would like to know what’s the best way to implement multiplayer in my game. I’m not asking for code, or anything, just trying to start a discussion around the theme.
I started watching some tutorials about multiplayer implementation, I got the basics, but can’t decide wich solution to use (Photon, Smartfox, Unity’s default…). The features I need are:

  • Up to ~20 players online in a single room.
  • Ability to create, join, and find rooms.
  • Use Javascript (as I don’t know C#) - Photon does it, but it hasn’t autocomplete in Javascript
  • Ability to self-host server (while the game is in development, so I can test it with some of my friends) and dedicated servers too. (After I I know Photon supports it).

A good example that fits all that I want, is Contract Wars. I just don’t know if I can self-host it. Another one, but not developed with Unity is Counter Strike series.
Hope I was clear, and sorry if I miswrote something wrong, as English is not my main language.
Thx in advance!

I’m afraid that you don’t have many options since ‘javascript’ or also known as ‘UnityScript’ is a proprietary language for the Unity engine.
So unless someone wrote a wrapper for UnityScript, you mostly will need C#
My advice would be to start learning C# and if you don’t want to, stay with Unity’s networking.

Depending on your exact needs, for an FPS i would recommend using a networking solution which allows you to run the server inside of the Unity engine itself. This simplifies so much due to the fact that the server usually needs the entire world in memory when doing an FPS. The solutions which can do this, that I know of, are as follows: uLink, Unity Networking, Lidgren, UdpKit (my own, open source and you find the code here: https://github.com/fholm/udpkit )