this starship 'A' runs on dedicated BYOND daemon - a self-contained world so-to-speak... starship 'B' also runs on its own daemon with its own crew, ship layout, etc... in fact every ship that plays is running on its own server daemon, using server-to-server communications to handle combat between ships, transferring of characters to other ships ('beaming' them over), communications, etc... I suppose you could extend the daemon concept to include worlds for the ships to visit as well. And lastly, a map-server daemon that tracks where all the ships/planets are, and deals with certain universe physics such as travel time from point to point for ships and communications between ships.
I've been kicking around a P2P idea for Darke Dungeon. It would make client interactions much faster (reducing the lag for game menus) and eliminate lag from others downloading resources. Each client could be resposible for tracking a handful of monsters, so no one computer gets bogged down by scores of monsters running complex AI algorithms. I could even have each client working behind the scenes on new dungeon level maps as they play.
There are two big problems I face with this method.
First, BYOND doesn't leave the connection open. Each time you send data, the two machines must forge a new connection over the internet which will slow things immensely when two or more players get within range that their clients must communicate heavily. I think DD has more that would have to be communicated than your space game would though, dungeon levels would be transmitted to each player in the same dungeon, each player on the same level would have to be tracked by each other player, and any monsters that are within range of another player would have to be tracked by that player. If you can minimize the amount of data passed and the number of connections required, this lag shouldn't be as noticable.
Second, BYOND can't transmit to a player who has a masked IP. This can happen because of a firewall, internet sharing software, or the broadband modems from some ISPs. These players would be cut off from the game world. They could play alone, but that's just not as fun!
If we had some way to keep a persistent connection, it wouldn't be as much a problem. When a player connects and anounces his/her presence, the connection would remain open allowing data to travel both ways. The client they connect to would send a list of other players in that dungeon, and the masked client could forge connection with each of them. The only trouble would be if two players in the same dungeon had masked IPs. They couldn't establish a P2P link and would have to route through one of the other players. I could go full client/server to get around this, but I just don't have the resources for a serious broadband connection and the computing power to back it up properly for a large group of players and hundreds of monsters with robust AI.
I guess I have a feature request to ask for before making such a system for DD: Persistent connections. A DM proc to find the latency on an existing connection would be very nice too. ;)
I was unaware that BYOND opens and close connections repeatedly - that explains why these DBZ games (the decent ones -if there is such a thing) have noticeable lag when moving characters around the screen. Moving 3 steps, then waiting a quarter- to a half-second before the next 3 steps can get annoying fast... I think persistent connections would have been an obvious need, unless Dantom wanted to keep server load balanced in a certain way...