Borderlands Browse

 

I’ve been playing the excellent new game Borderlands recently, which is an FPS/RPG hybrid. One thing that really annoyed me (and others) however, was the built-in server browser. Co-operative play is one of the major fun points of this game, and finding a server to play on is currently a nightmare. The built-in browser lacks filtering, and does not display countries or latencies. Also, it seems to miss many servers.

I managed to track down a neat little command line tool called gslist, which is an open source game server query tool. It took me a while to work out the right combination of arcane command line parameters in order to actually get a list of games out of it. Using a command line tool like this, under windows, is pretty unwieldy - especially if all I want to do is quickly find a game and hop in. In addition, I couldn’t get gslist’s ping functionality working, so I couldn’t filter games out by latency.

So, I decided to write a Borderlands-specific frontend to gslist in C#. I chose C# because this is only useful on Windows, and because C# apps are trivial to deploy on Windows. The result is Borderlands Browse. I’ve had a few people test it already, and they tell me it works well. One thing to keep in mind, is that you should be logged into GameSpy within the game for it to connect to servers (ie. don’t logout in-game, just hit escape to get out of the online menu). If you just end up at the main-menu, chances are that either you weren’t logged in - or the server didn’t let you connect for some reason (firewall, full server).

Interesting things I learnt during this project:

Storing settings for your app is as easy as going into your project’s Properties folder, and into the Settings.settings file, defining your settings in there, then simply using Settings.Default.YourSetting throughout your app.

ClickOnce deployment is awesome for quickly being able to churn out an installer (with self-updating capabilities!) out of a .net app. Though working out the right parameters (especially when you’re not running IIS or a site with frontpage extensions) can be tricky.

Threading still sucks. ;)

I’ll post the source up once I get around to working out a license and maybe doing a bit of a cleanup.

Borderlands Browse

blog comments powered by Disqus