TYP talks to the XLink crew about their history, how they came to work on the GC, and all sorts of technical ins and outs.
XLink is a powerful, user-friendly tunneling application designed to bring LAN-capable Xbox games online. Although the project caters first and foremost to the Xbox, the XLink crew recently announced that the next version of its tunneling software, RC3 (codenamed Kai), will also fully support the GameCube. The XLink crew's lead programmer, TheDaddy, was gracious enough to answer PGC's questions about XLink for the GameCube community.
Q: Why is XLink supporting the GameCube? I thought Xbox fanboys hate Nintendo!!11!!1
A: That's something which a few people have asked about. Our decision to support it came about after the recent price drop in the UK. A nice new Cube is only £79 here now - which means it's almost rude not to buy one. I mean, yeah, we're mainly Xbox fanboys here - but reduced price gadgetry is something that we'll never overlook - and it's a damn fine piece of kit for the money, with something that at times the XBox has lacked - games written specifically for the hardware.
So, a few people in our forums started asking about the upcoming broadband adapter, and its support for a "system link" style setup. At first, I must admit, I had absolutely no idea how the syslink worked on the GCN, but a couple of guys told me that it was just a normal Ethernet lead! This being the case, XLink basically supported it already - although by default XLink only listens to "MAC" addresses (each console has a unique one) which begin with "0050F2" - ie XBoxes. Support for GCN is as simple as telling XLink to listen out for packets which come from Cube MAC addresses as well.
Q: How did the XLink team discover the potential for GC support?
A: Again, this is something that's been bandied around on a few forums - with some people casting doubt on exactly how we "discovered" how to tunnel Cubes. While a full technical discussion would be beyond the scope of this interview, our "discovery" went something like this:
a.) Lots of devices in the world talk over Ethernet cables.. PC's, XBoxes, Cubes, etc.
b.) All devices which use Ethernet use the same way of talking. It's called an "Ethernet Frame" - and its just a type of packet, which contains a source MAC, destination MAC, and some "Other info". This "Other info" can be anything - it really doesn't matter.
c.) If you have a piece of software which can take these Ethernet frames off the "wire", send them over the Internet, and put them back onto the "wire" at the other end, then you basically have a piece of software which can support tunnelling *any* console / other device in the world. So, we "discovered" that XLink could tunnel GCN data as soon as we realised that GCNs used Ethernet cables to connect to each other.
Q: Besides GC support, what other new features will the C++ rewrite of XLink boast?
A: Well, the big ones are the port-free thing, and the new modular architecture. Port free just means that there's no setup to do - no messing around with forwarding ports or configuring firewalls. You just install the app, then run it - and it "just works". I'd say that about 90% of the support we've done so far with XLink has been in helping people configure their routers / firewalls - so this should make it all a lot more accessible.
The new modular thing works like this: You have an "engine" - an invisible program which runs on the PC, which does all the boring network stuff and talks to the "XServer" (our big XLink server - hidden deep in the heart of Texas). Then, you have another small application which does the visual stuff - the "UI" stuff. These applications talk to each other. Up until now, these 2 pieces have been bolted together in one program.
The advantage of having two is that as we're making the information about how the 2 talk to each other publicly available. People will be able to write their own XLink UI programs - in whatever language they choose - on whatever platform they choose. So, if you dont like how it looks, fire up Visual Basic - or any other language - and make your own - it's dead easy to do. The engine will also be ported to linux and OSX, amongst others. Once this is all in place, you'll end up with a set of engines for different platforms, and a set of UI's for different platforms - all of which will work perfectly together - even cross platform :) For example, run the engine on your Mac OSX, and run the UI on an iPaq under PocketPC or something.
Apart from these 2 [new features], there are a number of functionality improvements - WGN and Rooms mode have merged, forming Arena Mode. Also, you will be able to tell the XServer what consoles / games you have, and ask it only to show you games relevant to what you have. Loads more [of] bits are in there - but you'll have to wait a while for the final feature list.
Q: In layman's terms, how does a GameCube owner set up XLink Messenger with Kai and a router?
A: Well, when Kai is released, you download one single EXE file, and run it. Thats it. You'll obviously need an XTag (a sort of username) - which you register for free on our site. You put these details in, then press Login and get playing. The router things are answered a couple of questions down.
Q: How many GameCubes can be connected together with Kai? Can one copy of XLink Messenger connect multiple GameCubes to the XLink network?
A: We've always had support for multiple devices - with the current XLink (RC2) - you can have any number of "Local" XBoxes - and depending on what mode you're in and how much bandwidth you have, they can all join / host separate games. This will be just the same in Kai, and will work just the same for Cubes.
Q: What's all this talk about port forwarding and multiple Ethernet cards?
A: Well, forwarding is something which has always been a problem with tunnelling - it's fiddly and annoying. But, with Kai, you can forget you ever heard of it - it's just not needed anymore. As to [how] the router and ethernet card talk, thats quite simple now too. Get the lead which connects 2 cubes together (crossover cable) - plug it into your Cube, and try to find somewhere else to plug the other end. It will either fit into the back of your computer somewhere, or into "that box which does the internet stuff" - whatever that may be. If you can't find a hole for it, go and buy a cheap PCI network card (NIC) - and put it in your PC - then connect the wire to that. I'm not trying to patronise - it's just that there's no need to make it more difficult than it is.
Q: What is the recommended connection for XLink? Do you need a particularly high upload rate?
A: It all depends on the game - and I have no proper data yet about Cube games. With XBox games, they range from stuff which can be played fully and fluently over a 56k modem to games which require at least 128kb upload for two Xboxes. As a general guide, if you have something like the "standard" BT connection in the UK (512kb down, 256kb up) - you will not have any problems.
Q: Can college students living in a dorm with multiple Ethernet jacks use XLink without a router?
A: Yes. Those Ethernet jacks will just be part of a ring around your dorm - so that should work perfectly.
Q: Can you tell us a bit about XLink's Voice Streaming? What are VoiceStream's limitations (such as latency), and when can it be used?
A: Well, in the existing build, VoiceStream uses Microsoft's DirectX voice stuff - it was a bailout really on our part - we just "snapped it in" - requiring hardly any code. Saying that, it works amazingly, using only 6.4kbps (yes - kiloBITS per second) of data for a conversation. The quality is equivalent to a cell phone. I've not decided whether to change to a new method for voice (so it will be crossplatform) - or whether just to stick with the DirectX one - as it works so well at the moment. It can be used in Rooms mode at the moment - although in Kai it will be available just about everywhere.
Q: Nintendo is convinced an online strategy with the GameCube would be a poor financial decision, and has no foreseeable plans for a true online network. XLink is a free, partial alternative to Xbox Live! What is your opinion of Nintendo's attitude towards online gaming?
A: Thats a good question. I'm not very familiar with Nintendo's position here - I'm basically totally new to the GCN scene. However, judging by the reaction which we're getting to our support for GCN, there must be a lot of Cube owners out there who wanna play some games online. That being the case, with the right business model, Nintendo could have made money from it - as all you really ever need is demand. I assume that some games will provide their own servers for online gaming though - specific to the game - or else why make a BBA? PlayStation 2 does it this way, and they have pretty good results with things like SOCOM. Although I have to say, I can find little fault with MS's Live! service - it's been thought out well, and for any serious online gamer, the price tag is totally sensible.
As to Nintendo's attitude... Well, things can change - and it would not be outrageous to suggest that Nintendo would respond with a service of their own if enough users and developers ask them for it. Either way, I would be suprised if the next evolution of the GCN and the PS3 dont follow MS's lead with the Live! model.
Q: What are Microsoft and Nintendo's responses to your software?
A: Well, they never really say anything about us - or any of ther other tunnel people, really. Or at least, nothing which I've heard. That's to be expected though. I know, however, that a few of the game developers in Microsoft Game Studios used an earlier build of XLink to test out Midtown Madness 3's peer to peer system link mode - so maybe at least some people [out] there do care about poor little XLink :D As for Nintendo, I wouldn't think they'd react much differently from MS ... in fact, as long as Nintendo doesn't implement their own similar service, we probably have even less to worry about - if indeed we have anything to worry about anyway.
Q: What motivated the XLink team to start the tunneling project?
A: Quite a while back now, another of the XLink developers bought an Xbox. I wanted to play him on TimeSplitters 2 - so we had a look round at a few Tunnels. GameSpy crashed when it loaded the tunnel portion of the software - and I couldn't stand the ads. XBConnect was pretty good but seemed long-winded just to play a friend - and we couldn't stand all the l33t kids in there. So, XLink was born. It started life as a simple 1 form application, into which you entered the IP address of whomever you wanted to play against :D. From there, it was all just listening to people and adding features. And here we are :) Still totally free - and still totally ad-free.
Q: Have there been any major difficulties during XLink's development?
A: Hell yes. We had some amazingly weird problems earlier on - with ports and stuff. Also, we dropped a couple of totally broken releases on our users (2.1.6/7) - which didn't help. Things are pretty settled now - the RC2 release only had a few little probs which were fixed with 2.2.4. So, in typically foolish fashion, we're gonna start again - in a new language - supporting a new console :) Heh. I'll stop now before I talk myself out of it.
Q: How can the GameCube community help the XLink community and software?
A: You should all buy XBoxes.. hehehe ... No, really, the best way to help is just to wait for Kai to be released - then give it a go and let us know how you get on. Anyone who's particularly technically minded, or has a lot of spare time, could join our beta team - look on our forums for the "XLink Giveaways" thread - and sign up there. Although, the first few beta builds won't actually have the GCN tunneling enabled - so you might as well ignore the first few emails until one arrives with GCN support in.
Q: Is there anything else you would like to add?
A: Just one thing. After I was first contacted by you guys, I took a look at WarpPipe. Looks like those guys have been working on something like this for a while now. I'd just like to make it clear that we aren't deliberately trying to tread on anyone's toes - we're adding GCN support to our tunnel because *our* users asked us to. Yes, we will welcome GCN-only users of the XLink service - and I dont think there's any way we aren't going to get in each other's way.
All I can say is that we don't want any trouble, and anyway, there's easily enough room for 2 tunneling crews in this emerging scene. I must, however, object strongly to the completely unfounded accusations ... that we "stole" [their] early Alpha code and LAN Spec. While I have the utmost respect for the WP project, I must stress the fact that XLink had been tunneling Ethernet data months before WP even existed.
Planet GameCube would like to thank TheDaddy once again for his time. PGC would also like to thank the XLink crew for their dedication to helping fellow gamers and proving that GameCubes and Xboxes *can* live together peacefully.