I think I'm almost there with the connection issues.

Ports needed by hosts and clients:
  • Inbound and outbound 2300-2400 TCP
Port needed by hosts only:
  • Inbound 47624 TCP
Port needed by client only:
  • Outbound 47624 TCP
There may be more ports to open. I believe that users with simple network environments will be able to work this out just fine in general. For those who care, this is what the game actually appears to do:
  1. Host begins waiting for connections.
  2. Client attempts to join.
  3. Connection is made, or else the entire attempt dies.
  4. Host attempts to start a new connection to client.
  5. Connection is made, or else the entire attempt dies.
  6. Client attempts to start a new connection to host.
  7. Connection is made, or else the entire attempt dies.
  8. The client has now joined the session.
This is a very stupid method in my opinion. The host should be receive a connection, accept it, and that's that. There's no reason for multiple connections like this -- and certainly no reason whatsoever to have the client and host each initiate their own connections, as that requires clients explicitly to open ports for incoming connections -- and it sounds like it'll make it difficult for people on the same LAN to get in on gaming sessions.

Nevertheless, this appears to be what we've got. If all goes well, we'll be able to use either NovaWorld's system -- which still appears to work to some degree, by the way -- or else I can provide a program later that will enable a player either to host a game or join by IP, or even both.

I got this up and running on my end despite all of my own security issues. I'll need someone with a fair bit of knowledge of being able to open ports on his own system to test this with me, preferably on TS3 so we don't have to worry about seeing a chat window while the game is running and we're messing with settings. Once we have this set up, we'll be good to go live.

Good news is that Windows 7 users will be able to play Comanche Gold multiplayer natively without all of this virtualization and go-between software, as long as someone else with a CD is playing on the session.


DavidC99