Multiplayer Online

Hey guys this is my first post! Anyways…

I’m in the middle of designing a side-scrolling video game which is to be collaborative online. I want two people to be able to be on the same level and fight the same bad guys and each person to see what the other person is doing.

The only thing I don’t know how to do is structure the game to allow for this networking capability. The connection will be peer to peer, there will be no server in between, unless this is advantageous in some way i dont see. My question is how should I frame this? Should I have one client actually running the game logic and telling the connected client everything that is going on and polling for input from player 2? Should I have both boxes running the game logic and just pass user input accross the wire? I’ve never quite done something like this before, but I have done all the networking before. If anyone has any recommendations please post! Thanks in advance!

[quote]The connection will be peer to peer, there will be no server in between, unless this is advantageous in some way i dont see.
[/quote]
One advantage of having a server between clients is for internet based games. Most people now site behind NAT routers so for a peer to peer connection you’ll have to burden people with opening a port on their router. I think this will be a deal killer for most users.

[quote]Should I have one client actually running the game logic and telling the connected client everything that is going on and polling for input from player 2?
[/quote]
There are lots of ways to do this and I don’t think any of them are “right”. Whatever you feel most comfortable with.
What you describe sounds fine, but I would not have the machine with the logic polling. I would have the passive client send updates to the logic side, then have the logic side send updates back. The passive client would accept whatever the logic client tells it is the current state. For best results, process the commands locally, then reprocess them on the server, then fix up when you receive the results back from the server.