I have read several forum posts and still have a couple holes in my head on using an authoritative server. I understand that the authoritative server is essentially the game, where... (1) clients request movement or other inputs (2) the server checks their requests validity (3) the server sends back something based on the requests. Now my questions lies in how to implement something like this?
Does this involve creating a separate Unity project like MyProjectServer (to run on the server) and another project like MyProjectClient (to run on all clients)? Or do I even need another Unity project to run just on the server? I have seen things about running a headless Unity project on the server, which I think is nearly what I said above. If that is the case, how do I make sure that the project is running on my server. Does it run as a stand-alone app? Does it need to be running all the time? Or if maybe if it is not running that would be the time to tell the clients "Server is down"?
Maybe this is not even the right approach at all, but essentially my goal is to use an authoritative server to network the most simple game possible. I don't really care if it is just boxes moving around on a plane. I would just like to know that by using an authoritative server I am networking in a way that restricts clients from cheating, etc.
If anyone has tried this or has a simple example, I would greatly appreciate any help on this topic. Thanks!