Most PC games are client/server. That is, someone creates a game and others join that game. The data then goes from you to the host (the server) and then back to the other players. Sins of a Solar Empire is client/server.
In Demigod, it is peer-to-peer. This was necessary because it needed to have the least amount of latency possible since your moves are directly sent to the other players rather than to a server first. Because the action in Demigod focuses a great deal on Melee in the third person (i.e. players can see their hits) a lot of traditional methods to mask latency aren't possible. Peer-to-peer reduces the problem of "lag".
The downside of peer-to-peer is that everyone has to be able to connect to each other. In a client server game, many people have heard someone say "I can join games but I can't host them." In a peer-to-peer game, everyone is technically a host thus greatly increasing the challenge of connecting players.
The solution developed is known as CVP NAT, a new feature of Stardock's Impulse Reactor development library.
So what problems can people have? Below are the most common issues:
- Windows may fail to create a local socket. There's a million reasons for this unfortunately and your options are to try to rejoin a game or try hosting the game instead. It's not terribly common but feels very common when it happens to you. It will be more common if you have an older router as we have learned that older consumer routers are more likely to be problematic when opening sockets.
- Your ISP is sending your messages with different IP addresses. This is common in Europe where people have DSL lines that have multiple IP and the router picks and chooses which IP to send things. It can also happen for people who have multiple Internet connections going. For instance, I have a Verizon 3G Internet connectiont that's always on. I also have a Comcast line on. If I'm trying to play a game, turning one of these connections off will likely help. At Stardock, we have a thornier issue -- we have 2 comcast lines in which our router picks the one with the most available bandwidth to send out a particular packet. CVP NAT has been designed to deal with a lot of oddball issues like this but it's not infallible.
- Firewall. If youre firewall is blocking TCP or UDP packets, you won't be able to connect.
- Windows failed to configure a local socket. This is another one of those annoying issues that can come up. It's similar to item #1. The best way to reduce these kinds of problems is to use Skirmish or the Pantheon. The "Custom Game" setup in Demigod is the most likely case this will come up since it requires multiple sockets to properly connect players.
If you know what you're doing (and only if you know what you're doing) you can load a program that's in the bin directory of Demigod called ImpulseReactorOptions, set up the options there and then seperately go to your router and make sure those ports are port forwarding to the right machine.
To learn how to port forward, see this website: http://www.portforward.com/
To learn more about what ports to open see this document provided by the Monk (THANKS MONK!)