MonoTorrent and Unity. Possible?

I just discovered http://www.monotorrent.com/ and it occurs to me that it might be possible to connect my game clients to each other using BitTorrent trackers. I’m very inexperienced at networking games, so It seemed prudent to discover a few details before I spend weeks learning how MonoTorrent works. In Theory, it seems reasonable that my computer could find your computer by using the same trackers to share a similar file. At that point can our computers talk directly to each other for the remainder of our networked game experience? No need for my own server to host. Is this completely flawed logic?

We attempted to use Monotorrent for a project at work. it was buggy.

It sounds like you want to implement an entire file sharing network for the sole purpose of finding other players.

In theory, you could do that, and have each client share the same file, and also look for that file on DHT. (Without DHT, you’re back to needing a server, and using someone else’s server for this is unethical.) Finding clients will be very slow and your users will hate it.

I understand wanting to get around hosting a server, but all you really need is a simple PHP script, backed by a simple database (noSQL is a good choice, probably) that lets clients register themselves and removes them after a timeout, or when they de-register. It would also let them get a list of registered clients.

The bandwidth use would be minimal, and the storage space needed would also be minimal.

In short, I do not recommend your plan. It’s very hard to implement, your users will hate it, and it’s actually harder to implement than the usual route.

You didn’t indicate that a particular part of this concept was broken, just that MonoDevelop might not be the right tool set for leveraging torrent trackers as a means of player discovery. It just seems like it could be a beautiful way for someone without a server farm to create very large online communities. Lets say I’m making a game that isn’t concerned with players hacking the system, like say, Minecraft. I share a torrent file, maybe even a file of my world. When you start downloading that file, as far as I know (in this early stage of understanding networked games), we could begin just about any type of network communication that Unity is capable of. Someone tell me I’m wrong! ;] Still ahead, Nat traversal and understanding distributed hash tables. The fun never ends!

That’s pretty concise, and thanks for the feedback. Sounds like hosting a server for people running my game client, to find each other, isn’t such a big deal if I stick with the conventional routes. I must be over estimating the commitment and costs, particularly if we assume my game will suck. heh. =0 Still, it’s so alluring to piggy back on a well established technology. With a super simple torrent app built into my game, is using thePirateBay to track each client that is sharing the same file really unethical? It’s why they exist, and they don’t have a problem tracking everything else. Maybe i’m looking at it wrong.

Edit: Also, I’m not well versed on discovery technicalities either, When wccrawford says very slow, I don’t get it. If there is only one person sharing a particular torrent file, I still seem to connect with them within a few minutes. How the game introduces players would determine what constitutes “too long a wait”. Particularly if the game isn’t primarily about the multiplayer aspects.

I reckon it would be really interesting if some pioneers would make this monotorrent work for games and maybe one day the established route becomes outdated. Or at least we would have some alternative.