   Client / Server game design for single player?
  I am beginning work on my first networked game which is a co-op beat 'em up and trying to do some design before I start coding. The one question I keep stalling on is if the game should always be at least 2 processes even if only one person playing. This would simplify my code because if 1 person works then 2 people should work and n people should work but will this cause lag for single player? Is it worth taking the time to have the special case for a local player?   
  If it simplifies the code, it is almost always a good thing.;  the Quake series (and probably a multitude of others, Unreal Tournament, Farcry?) does this. they have a client and server instance running, even for single player campaign, and they don't seem to have problems. In fact, Quake3 as very responsive controls and uncapped high framerates. If you ultimate goal is a client / server game, it is always easier (imo) to start with a pure client-server architecture and make a single player game out of it, than the other way round. However, having two separate engines usually requires more code, as you need pretty much a client and server instance of everything in your game, they will communicate through a message transport layer. But it's very neat and you don't need to deal with horrible special cases.   ;  You may be interested in this thread for some ideas on this subject   