Monday, July 20, 2009

Of Hardware Hacks and Interface Issues

So last night I tried a new type of problem-solving when it comes to getting software to work for me. I've owned Assassin's Creed for a while now, and never really got into it, which is a real shame. The storyline is interesting, the graphics are lush, the environment is fascinating, and it's always fun to leap from a belltower onto an unsuspecting mark as you bury your concealed blade in their throat.

Mister Stabby, this is Randomdude Abouttodie. Randomdude, Mister Stabby.

The problem I'd had with it was primarily a matter of interface. Assassin's Creed, while not technically a port per se, it does seem to have been designed more with consoles in mind. As a PC user, the basic control setup seems simple enough, with movement and camera control intuitive, thanks to the WASD/mouse input system every third person game ever has taught us. Where it really fell down was the functions; target locking, fighting, talking etc. Even onscreen, the function icons are arranged in the classic four-items-in-a-diamond-pattern. It seems fine, but in order to translate that to a PC setup, the default keybinds were all over the place, using LShift, Space, E and Enter (among others) - messy, slow and difficult to get used to. It might not seem like the biggest problem, but I play for immersion and experience, so to stop and have to think about which controls I need to be using every ten seconds is a dealbreaker for me.

Rather than spending half my night screwing around with variations on the binds, and wind up with something that was clumsy at best, I decided to try another approach - a console controller. At it's core, AC is a glorified 3D platformer - and we all know the native home of the platformer is the console.

I dusted off one of the old Xbox Controller S units that we had lying around, and lootedmy brother's USB adapter for it. Ten minutes of tinkering later, I had a fully functional input device in my hands. Credit paid where credit is due, however - the driver package that permitted flawless function was released by a gentleman known as redcl0ud, and the rebuild of said drivers that enable x64 function was done by a couple of guys at the PlanetAMD64 forums; Driver and BeAvErMaTiC. So thanks, guys :)

An Xbox-to-USB cable. They replace the small cable between the breakaway point and the console plug, so you can use the controller in standard USB ports. You can lay hands on one of these babies for about $10, but if you're feeling adventurous, making one yourself is a pretty simple hack.

The install process was relatively simple (I had to hunt down a custom .DLL for x64 compatibility), and the game itself detected the device with no trouble. I was worried that I'd have to map the controller, but I was pleasantly surprised to discover the game had a set of defaults that worked perfectly. Nice work, Ubisoft.

So after a few minutes of brainstorming, googling and troubleshooting I had a controller that intuitively suited the playstyle of the title, and an evening of quality gaming ahead. And guess what? Assassin's Creed really is as much fun as I'd hoped it would be :)

What I'm taking away from all this is that while no game is perfect, sometimes a concept or idea native to a different platform is the only thing needed to complete the equation. I know I'll certainly be keeping this solution in mind the next time I face a similar issue.

No comments:

Post a Comment