Here is a 3rd party network library for c#: http://code.google.com/p/lidgren-network-gen3/
It basically gives you the framework for creating a connection between computers, and sending/receiving messages.
It's up to you to figure out (among other things): what messages will be sent, how they will be encoded/decoded, and more importantly, what network architecture you will use, i.e lock-step or predictor-corrector (this depends on the type of game you are making. Predictor corrector is the prefered for FPS (as it hides lag), lock-step is the best for large RTS (less data being sent back and forth).
For a board game its even easier to create something that works. Just send the required data at the end of each player's turn. If you plan on having more than two playes I'd recommend one of the players runs a dedicated host/server (in a separate thread, of course), for relaying the player messages to every client.
I have started a game and now I want to make it multiplayer.
Ouch, that may cause problems. Transitioning from SP to MP requires some serious changes to your game logic.
Edited by gfxCahd, 21 January 2014 - 05:32 AM.