Hi there, I know its a pretty common question recently in these forums, but due to that I’m quite confused.
I read about the Relay server and the Matchmaking server will be cloud hosted by Unity and they’ll have a fee, if I’m not wrong. But what I want to know is if its possible to develop and self-host a dedicated server, even if it doesnt have any kind of relay or matcmaking server.
With dedicated server I mean a program you can run on a Linux Server with Batchmode or no graphics.
That was a scary point for me to choose between Unity or Unreal, but if its possible to host it as Authoritative on a Linux dedicated server, I’m going straight with Unity.
I am doing exactly that. Each client connects to 2 authoritative servers simultaneously (a world/chat server, and a zone server). Not having any problems so far.
The Unity multiplayer service only serves two functions. The first being a very nice matchmaking system, through which you can write your own matchmaking logic, or just use it as a server browser. The second being as a relay server, which exists as a solution to get around NAT. The idea is both you and the server are connected to a relay, and all network traffic passes through the relay. This however is a paid service. (As a side-note, I’m kind of curious why the relay server isn’t a fallback, as it is with Steam’s API. With that, it will first attempt NAT punch-through, and use a relay server if the attempt was unsuccessful. I guess Unity’s method is probably better for monetization.)
Phase 2 as I understand it is about creating a standalone server app, probably in the form of a library or something that you can use to communicate with Unity clients. As of right now, as stated above by Seanr, you can simply create a standalone unity build that acts as a dedicated server.
No, you don’t have to use Unity Cloud. You can host your own.
Last I heard, there will be some features coming for authoritative servers, but that might be tied to HLAPI. I would like some extra library functions for the LLAPI too (as that’s what I use).
So basically what you guys are saying is that I can use Authoritative servers with Unity instances? Do I have to use LLAPI or HLAPI would able to have Authoritativ servers too… there seems to be nothing out there, and I am no network expert…
Your architecture is up to you. I think most people are using the HLAPI, but I personally found it didn’t suit my needs, so I use the LLAPI alone. I run headless unity instances as servers, and that works just fine.
That’s seems to be all the answers I need, I am just wondering if there is “pit” I will fall into when I use HLAPI, when I find that Authorative server in HLAPI isn’t really Authorative, and how is the security verifications during player connection and DDOS attack?
I am trying to run a unity player on OSX using batchmode, but my process becomes unresponsive after a few seconds. The project is a freshly created project with a single scene.
Here is the command I am using to start it up:
open -a game.app --args “-batchmode”
Is there a certain setting that need to be set when building the player for this to work ?
Maybe the batchmode is more stable on Windows or Linux ?