ID:154320
 
digitalmouse wrote ( in [link] ):
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. ;)
Yes I agree, a client-server solution would be best in your case. In mine too, through a map-server that deals with ship positions in the 'galaxy'...just easier that way to keep everybody updated.

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...
In response to digitalmouse
It does use persistent connections for standard-style games, its just ones where the server has to communicate to some other server that it opens and closes new connections.

-AbyssDragon
In response to digitalmouse
digitalmouse wrote:
Moving 3 steps, then waiting a quarter- to a half-second before the next 3 steps can get annoying fast...

As mentioned, that's on a persistent connection. It's mostly bad programming combined with low-bandwidth, too many people on the same server, and BYOND's limitations.

Part of the problem is supporting infinite people on a single server. Just not possible...even the big boys like EverQuest can have trouble with 50+ people in a small area.

A typical EQ zone might have 100 people in it, and each zone is handled by one computer or processor.

A properly designed persistent server-based game will shuttle players between servers for the game.
In response to Deadron
Deadron wrote:
As mentioned, that's on a persistent connection. It's mostly bad programming combined with low-bandwidth, too many people on the same server, and BYOND's limitations.

I stand/sit corrected! I did think it would be odd to not have persistent connections, but anything was possible...

A properly designed persistent server-based game will shuttle players between servers for the game.

I agree completely! I do not expect an infinite (or even rather large) group of players in my StarTrek game concept, but now knowing that persisitent connections are the norm, setting up zones, as you mentioned, one per-computer (luckily I have 5 P2-200s sitting around collecting dust) should keep everyone happy with speedy game play... I'm figuring maybe something like 1 'zone' equates to a certain area of space (Klingon region, Terra region, etc...), but we will see about the design...first-things-first: develop a ship prototype! :)