I've been pondering about different approaches that a multiplayer game server can be managed and programmed.
For instance some of the big engines like UE4 & Unity provide a 'build' flag that can enable them to run headless meaning it'll just be the calculations that are enabled for that mode and will handle a ton of the game state sync, object references, hit detection, cool downs etc..But what I'm wondering is if this is the best approach? From my current understanding for each game running there would need to be a new instance of the headless game.exe running that will then create new connections for users into the game, sync up the players and start. This sounds very resource heavy (I might be overthinking it).
EDIT: In the case of custom game server what would be a good approach into integrating the map data so that UE4 client map can be simulated on the back-end?
I can think of a simple solution looking at it from a 2D prospective, since it's just X,Y we can create a bitmap/grid of position that are available, where walls are etc via simple tile tools that can be easily mapped 1:1 to the client and use that information. However when it comes to 3D I don't see a solution on how to have a 3D map, collision detection and physics simulation.