Posted Dec 11 2013 - 04:41 PM
I will have to rent server space somewhere, to host a list of available games. This is not a real problem (and is very cheap for small-scale stuff), but takes some setting up, and I will not do it until the game is capable of online play. For the sake of programming (and my sanity) matches will be hosted on one of your computers. This will be similar to how one hosts a basic LAN game. I have done a few small attempts at network programming, but I have not gotten a full system up and running how I like it. It is still some time in the future, I'm afraid.
How I figure it will work: One person is the host. This person selects match settings etc. and starts up. The map enters waiting mode at this point, waiting for LAN connections (like in many other games). By clicking a menu option, the host makes the game "online", either public or closed with a password. This works by sending a network message containing the host's IP to the server space I'd have to set up. The server will then keep a list of these IPs. It should probably ping them every now and then so they can be removed if they no longer respond.
Now, all this list really is needed for is so that you can see which games are available when you try to join one. Otherwise you can just share IPs directly via copy/paste in some chat program, like people usually do on private matches. In-game you would ideally be able to click "Join game", then wait for a few seconds to let the list fill out. Pick one, and the game connects to that IP.
Potential problem with this method: The host will have to devote their machine both to hosting and playing at the same time; and it requires port forwarding, which I foresee I will be forced to explain way too many times. Anyone can host, though, with their own settings, and I do not need to rent servers or set up dedicated matches.