Monday, September 17, 2012

The controls are wrong: why ported games are hard.

It's usual, these days, for videogames to be released on multiple platforms. There are plenty of good reasons to do this; for one, the difficulty of hooking up consoles to a TV goes up exponentially as you add more consoles (as I should know, having at one point attempted to have eight different wossnames hooked up to one TV, and needing multiple switchboxes to do it since the US lacks SCART and its ability to Just Work) and so most people of normal sanity will tend to buy one console and stick with it. Then there are the people who don't really have consoles; the LA and I have a Wii, which initially stomped all over the PlayStation 3 and xbox 360 in sales, but which is now mostly passed over for high-profile games releases because things can't be made quite as pretty on it as they can on Sony's and Microsoft's offerings. So to get at all the potential sales, a smart developer and publisher will release on as many platforms as possible.

And therein lies the problem. Control schemes are inevitably going to be different. The Wii has its own issues with controlling the games, and generally Wii releases aren't straightforward ports; but PS3 and xbox releases will often be the exact same code, compiled for two different platforms. The controllers for these consoles are very similar; designed to sit in both hands, with four buttons and a joystick for each thumb to waggle about, and four more buttons in trigger-like positions. Some details are different, such as where the joysticks are, or whether they actually fit human hands or are designed for tiny elves, but that's the basics; twelve buttons and two joysticks. The joysticks can also be pressed on to make two more buttons, and there are a couple more buttons used for system access, overriding the game.

You can make certain assumptions with controllers. The fact that you have two guaranteed analogue input devices means you can get fancy with driving controls, and have somewhat realistic speed sensitivity in your steering; wallop the stick hard over at speed, and you'll spin out spectacularly. And so on. The four buttons under the right thumb make a very easy reflex test, known as a quick-time event; remember Simon? A lot of games nowadays use that for "react fast" challenges such as disarming bombs.

And these control assumptions fall apart when confronted with the harsh reality of PC gaming. A keyboard and mouse make for far different control inputs. For one thing, you only have one analogue input, and it's a pointing device rather than a steering device. There's typically a direct mapping between how far the mouse is moved and how far the pointer moves; flicking the mouse will move it fast, moving the mouse slowly will turn it slower. A joystick, by contrast, varies the speed of the pointer based on how far it's pushed over; accurate pointing is much more difficult. The different control methods here are a big impact. A recent high-profile problem caused by this was discovered in id Software's tech-demo Rage; on consoles, everything looked gorgeous, all the time, while on far more powerful PCs, at the same resolution, turning around too fast would result in the player seeing a blurry mass of foot-wide pixels for a short while until the game could get the proper gorgeousness on screen. The fundamental problem was the difference between a pointing device and a steering device; consoles didn't allow the player to turn faster than the game could get the right data.

And then there's the problem of car controls in driving games. Remember the speed-sensitive steering I mentioned earlier? One of the PC games I play has that, and it's a disaster trying to drive in a straight line at high speed. The reason is, the mouse is needed for camera control, and so the steering is delegated to the keyboard. Keys have two states: on or off. This means that the steering is either straight ahead, or at full lock. This has led to my typical method of cornering in that game being to bail out of the car by opening a parachute, which gives me enough time to see a car going in the right direction and steal that one. It's far quicker than slowing down to the point at which I can avoid spinning out, and cheaper than buying a gamepad. Another console port game has a much less speed-sensitive steering mechanism; I typically turn corners in that one, although the keyboard turns them from a dexterity challenge to a timing puzzle (hit the keys with the right timing to flick the car through 90 degrees, and punch the go pedal at the right moment, as opposed to judging how hard to shove the stick)

Similar difficulties prevail going the other way, rare as that is nowadays; the consoles being where the money is, they're likely to be the primary market. I've attempted to play ports from PC to console, and they're generally clunky and awkward at best.

As long as the control assumptions remain as they are, porting in either direction will remain a problem. Input handling is one of the hardest things to get right in making a game.

1 comment:

  1. Your first point is obsoleted by HDMI. No one needs a mess of cables anymore except Wii owners :)


After some particularly vile spam showed up, I have disabled the ability to comment as a nonny-mouse.