   [.net] [C#] Inter-process Communication and Single Player on Client Server
  The long title says it all! :)I am cooking up a client server architecture for a 3D action game. The server will communicate with the client through a combination of TCP and UDP as described in the Quake3 Network article. I am wondering how to have the local player communicate with the server. If the player is starting a single player game, then they are creating the server. If the player is hosting a game then they may well have the server up and running and then join up. Ideally, I would like to have the server running as a seperate process.One option is to have straightforward TCP/UDP communication between the client and the server, but this seems a waste since the player is on the local machine. Another way is to use remoting through the IpcChannel introduced in .NET 2.0. Is remoting overkill in this case?Yet another way is to use named pipes as described on the Code Project site. This approach seems fairly complicated, but in a sense, it seems to be the most appropriate.What are your suggestions? Also, please correct me if my assumptions above are off the mark.    
  Developing (and maintaining) two (sort of) different clients is more difficult than just one. I wouldn't wory about the 'lag' because the remote machine will suffer more from that.I'd pick a seperate server process that could be accessed by one (or more -> more complex) protocols... and start with one protocol.Cheers(Isn't it nice to findout why MS is creating something like Windows Communication Foundation... :-) )   ;  Thanks for the reply. That may well be what I end up doing. I actually wanted to start with the single player protocol and then implement the network protocols, but the idea is to abstract out the common functionality into an interface so that at run time, I can swap out the actual underlying protocol. I suppose I could just work with TCP/UDP which is necessary for remote clients and can be used for the local client, but I wanted to be sure that I wasn't missing anything.   