There is one fact: it is possible, but obviously not easy, and like TheBoneJarmer said you need a deep understanding of networking and whatnot, however there are services that can help with that, like SpatialOS but my personal opinion in regards to using services is that you should definitely learn how to do it instead because I believe that being bound to a service like that leaves you with little control over your own project when it comes to such a core feature.