FileTransferDetails

From DaphneWiki

Revision as of 04:41, 14 October 2007 by Matt (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

File Transfer Details

BitTorrent

DaphneLoader uses a built-in BitTorrent client [1] in order to handle file transfers. BitTorrent works by having everyone upload at the same time that they are downloading. This is known as peer-to-peer file transfers because every peer sends and receives from every other peer. The other people who are also downloading are your peers, so you will both upload to them and download from them.

Why BitTorrent?

The main advantage of using BitTorrent is that you can generally download files much faster than if you were trying to download from a central server.

Why don't you make it more obvious to the user that they are also uploading?

DaphneLoader is designed to be as simple as possible. I feel that if a newbie starts downloading a file and gets a message that they are also uploading, they will get confused and worried, which will prompt them to ask us to explain why they are uploading. My main goal is to minimize questions, so I am going to avoid anything that will cause people to ask questions, especially redundant questions. Users who are savvy will poke around the Daphne menu and notice that they are also uploading while downloading. Chances are, they already know about BitTorrent will understand immediately what's going on.

What is this about opening up a TCP port?

Since BitTorrent is a peer-to-peer system, it works best when all peers can connect to all other peers. If peers cannot connect to you, and you cannot connect to them, then you will only be able to connect to a subset of all peers. In practice, those peers who can receive connections from everyone download significantly faster than those who are 'firewalled'. Imagine that peers who can connect to everyone have about 3/4 of the bandwidth and peers who can't have maybe 1/4 of the bandwidth. This happens in practice all the time. Don't underestimate the benefits of being able to receive incoming connections.

Why is it allocating 3 gigs on my drive when Dragon's Lair only takes less than 1 gig?

Because the torrent contains four games, not just one (see next section).

Why does a torrent contain more than one game? Doesn't this waste hard drive space?

The torrent that contains Dragon's Lair also contains Dragon's Lair 2, Space Ace, and Thayer's Quest. This does waste disk space if you are only intending to play one of those games, however, a great benefit also exists which outweighs this cost. The benefit to bundling these files all in one torrent is that the overall bandwidth for this torrent will be much greater than if they were all split into separate torrents. For example, since Thayer's Quest is a less popular game, if it was a separate torrent, you would have a really hard time getting decent download speeds if you wanted to play it. But by putting it in with the more popular Dragon's Lair, suddenly bandwidth isn't a problem because everyone is sharing Thayer's Quest too. I feel that this benefit far outweighs the extra disk space that this uses, especially considering how cheap huge hard drives are these days. If you have a problem with this system, make a better one :)

Why may my download seem to get slower when I'm close to finishing a download for a certain game?

This may happen because each torrent contains multiple games (see previous section) and by default, DaphneLoader will try to download the rarest pieces in the torrent first. So if you're downloading Dragon's Lair, but all your peers already have Dragon's Lair, then by default, DaphneLoader will try to download the less common games before it finishes downloading Dragon's Lair. Why is this the default setting? Because the main priority for me as a developer, is to ensure that all the games in the torrent are well distributed. If the torrent becomes unbalanced and suddenly one game is much more distributed than the other games, then this will hurt everyone and cause everyone's transfer speeds to drop (I won't explain why here, so you'll just have to trust me). I have added an option in the DaphneLoader preferences to change what I call the 'Piece Selection Priority' to prefer Required Pieces before Rarest Pieces. Since you are one of the few people who is actually reading this documentation, you've earned the right to this secret: if only a few people use the Required Pieces First option, then no harm will be done, and those few people will be able to finish their transfers faster. If everyone uses this option, then everyone will suffer. So feel free to try out the 'Required Pieces' option in the DaphneLoader preferences. It may make your downloads finish faster. In the future, I may add some kind of algorithm to automatically determine which option to use.

File Transfers and the DVD Requirement

Some people wonder why they must download a bunch of data and insert a DVD.

What you are actually downloading

When you download certain games that warn you that you will need a DVD later, you are actually downloading the full games in encrypted form. The DVDs are only used for decryption and no actual data on the DVDs are converted and used.

Why does DaphneLoader seem to hide the fact that the DVDs are used for decryption?

DaphneLoader is designed to require the user to know as little information as possible in order to run the game. Therefore, all details that aren't required are hidden from the user in order to keep things simple. Those who want to learn more will search documentation like this in order to satisfy their curiosity.

Personal tools