C# XNA Network Game Without LIVE
I have made a game in C# with XNA. And I would like to make it playable online.

I want to be able to host a game on one machine and be able to connect to this game on other machines. Kinda like a listen server in Half Life.

This might seem like a pretty common problem that should have been solved a million times. But I have googled my ass off and i cant really seem to find any useful information. 

**I want to know exactly what I would need, concerning network-stuff, in order to create an online game with XNA, without using the microsoft-Live thingy.**

 1. A Library? the using-thing located in top of a class. 
 2. Code for initializing this stuff
 3. How to look for another computer playing this game.
 4. How to get/send data between the computers.
 5. On which client are things calculated. If one guy would fire a bullet, should this bullet be created as an object on both clients? Or is one having the object,(checking for collisions etc.) and the other one just gets positions for draw?

I would like someone who has made a game like this to answer, what would be a standard approach.

 
C# XNA Network Game Without LIVE
===

I have made a game in C# with XNA. And I would like to make it playable online.

I want to be able to host a game on one machine and be able to connect to this game on other machines. Kinda like a listen server in Half Life.

This might seem like a pretty common problem that should have been solved a million times. But I have googled my ass off and i cant really seem to find any useful information. 

**I want to know exactly what I would need, concerning network-stuff, in order to create an online game with XNA, without using the microsoft-Live thingy.**

 1. A Library? the using-thing located in top of a class. 
 2. Code for initializing this stuff
 3. How to look for another computer playing this game.
 4. How to get/send data between the computers.
 5. On which client are things calculated. If one guy would fire a bullet, should this bullet be created as an object on both clients? Or is one having the object,(checking for collisions etc.) and the other one just gets positions for draw?

I would like someone who has made a game like this to answer, what would be a standard approach.

 