I got a new game recently. It inspired me to rant about porting console games to PC. I used to think that it should happen more often, but I’m no longer convinced that game developers are competent enough to turn even a good console game into a quality PC port.
Dark Souls – Prepare to Have Your Hopes Die Edition
I had such high hopes for Dark Souls on PC, but while the game was great on XBox, this is one of the worst porting efforts I’ve seen. The default controls are unintuitive and unplayable with a mouse, the extensive in-game help for controls still refers to the XBox controller buttons, and it’s not like they just have a straight-forward mapping from XBox controls to keyboard keys (which would be bad, but simple). On top of this, it doesn’t hide the mouse cursor. I hope you like looking at your conventional windows cursor, because it will be randomly dancing around the screen. And remember not to turn off your computer while the autosaving icon is present (but the game is constantly reminding you not to randomly power cycle your PC, in case you forget).
The weird mapping manifests in things like how the y button does one thing in game, and one thing in menus. This functionality was split into two keys for the keyboard – left alt and delete. Very different keys, not very intuitive, and the delete key is placed differently on every keyboard so it’s rarely going to be in a good place (for example on my gaming laptop the x button in menus became the insert key, which is Fn+delete on a cramped laptop keyboard).
As for actually choosing a good mapping, it fails in several ways. The universal keyboard meaning of ‘Esc’ key to go back? Never works. At least WASD is used for movement, but putting the mouse on camera control ends up rendering the game unplayable. Targeting is needed, like any action adventure, for accuracy and shield maneuvers. Because the mouse was bound to the right stick, jiggling the mouse even a little causes your target to shift. What first feels like a classic keyboard and mouse control scheme turns into a farce when combat with more than one opponent becomes impossibly difficult. Mouse controls aren’t rebindable, so you’re forced to play with just the keyboard. This is playable, because IJKL serves as a the second WASD and thus right stick – but that’s just a mind-numbingly simple port of doing the ‘right stick’ like the ‘left stick’. That’s not the right way to play an action game with PC peripherals and is a massive waste of potential on top of being unintuitive for PC gamers.
Using Games for Windows Live was a bad mark to start with. Even before that the game looks untested to me, by how it started in windowed mode (fullscreen resolution though). But that’s nothing compared to how bad the control scheme plays and the blatant disregard for the current platform in the UI. I used to be moderately miffed when games showed default keybindings instead of pulling it from the current configuration, but this is a constant reminder of the lack of care spent on it. I’m convinced that the people writing and tested this hooked XBox controllers up to their computer for the entirety of development, and expect users to do the same (ignoring the additional hardware costs, unfamiliarity with controls, and the general reason why people want PC versions in the first place!).
Speaking of additional hardware costs, according to the Microsoft help site even though I have an XBox with working controllers, I still need to buy additional hardware to connect them to my PC (hardware that my pathetically brief searching says I need to get shipped from the US). Normally I prefer to play games on PC rather than the console, but somehow Dark Souls managed to make that the less appealing option in this case. If anyone keeps saying that people prefer games on console, stop to think about whether that’s just because the PC ports are mind-bogglingly bad. This isn’t the first bad port I’ve seen on PC…
To put it in context though, the black mark of the terrible porting effort isn’t enough to overcome just how great this game is. I’m still enjoying it, despite using the ‘twin stick’ keyboard configuration. But I had to get over a massive hump of rewriting all my expections about a computer game, and I was only able to do that because I already knew from past experience it was a good game. I doubt anyone playing it for the first time will enjoy that horrible starting experience enough to get over that hump.
Since I stayed my hand against posting this immediately, I’ve read some of the other coverage which provides better context (and the same complaints). I like how the PC Gamer review put it:
Ask yourself how you pronounce ‘PC game’. If your emphasis is on the ‘PC’, then run. Run far from Dark Souls and don’t look back. There is nothing for you here.
Fortunate then that I knew the game was a good one before I pre-ordered. The article further explains that the PC port was done by that studio because of massive online requests for it. Apparently the studio itself claims to have no experience with the PC. After playing their game, I concur.
Alan’s PC Porting Guidelines
So finally we’ve got a constructive part! For those who are porting their game to PC but don’t know what that means, here’s what should be done in a good PC port. I would like to credit Dark Souls for helping me create this list, much of it is what I was furious about when it was missing in that port 😉 . This is intended for people who may be professional game developers, but haven’t played anything on PC more advanced than solitaire (which has a better PC port than Dark Souls 😛 ).
PC interface conventions
Escape key always goes back to the higher level menu (closing the menu if it’s the top-level of in-game menu), or opens an in-game menu if none is open. This is what users will press if they just want to get out of the menu, or the game. Some games place this on F10, but they make that very clear in the interface when they do. Following this convention is important so that users don’t feel stuck in menus, at least until they learn your own unique way of navigating menus.
The conventional posture for playing action games on PC is the left hand on the left side of the keyboard, around WASD, and the right hand on the mouse. This uses the expected interface hardware well, the mouse as a pixel-perfect pointing device is excellent for precision aiming, and the WASD keys make a fast, though inaccurate, control stick approximation. Gamers also like to bind additional functionality to their extra buttons, so even though default controls should only assume two mouse buttons and a wheel make sure key rebinding allows rebinding functions to up to at least five mouse buttons.
Avoid using the numpad, insert, delete, home, end, page up and page down keys. At least for commonly used or time-sensitive commands. Keyboards place them in different places all the time, so any bindings based on their physical location (on your keyboard!) will be difficult to remember for many users. Laptops not only place them in even weirder locations, they will often hide them behind a fn modifier key to save space.
PC unique advantages
Configuration files can be used for extensive configurability. You may think that users don’t care about minor details of graphics rendering, and perhaps your UI is cleaner and easier without having those options in-game. But you can satisfy the hard-core PC gamers and ease your development by having plain-text configuration files in the game directory. The hard-core PC gamers are usually smart enough to figure all this out without even any documentation, so long as you use decent variable names (i.e. TextureCacheSize=512). If you’re feeling old school, you can even have a separate configuration utility for setting all this up 😉 .
This isn’t all that unique, but PC is the only platform where you can assume that they have a full keyboard hooked up for easy text input. Gesture systems (like in Dark Souls) are nice quick ways of emoting with a controller, but if you have a keyboard you can also just type things. PC allows for easy integrated text chat, but you can also add in other text input to the UI. Maps that you can place notes on, naming your inventory items, or a debugging console, there’s a lot you can add with just ‘free text’ input. The large number of keys on a keyboard, especially considering modifier keys, makes it easy to add a button to start the text editing mode for any of those additions. On other platforms those would be too much pain to implement or use for players to enjoy them, on PC it’s virtually effortless.
What is touted as one of the major weaknesses of PC gaming is also one of its strengths. While it’s harder to make the game be the same for every player, it’s easier to make the game be great for some players. Reconfigurability to the mouse, or gamepads, or custom keyboards makes it easier for players to command it in whatever way is most comfortable. Configurable graphics quality means that those with high-end, or future systems, can have it looking amazing while those with cheaper systems still have something playable. Don’t forget the variability in sound systems, which is actually something that too, where some people can be immersed in 7.1 surround while others can play using cheap stereo headphones. The mass market may be content with an average result aimed at the average gamer, but there’s a wide variety of other styles in PC gamers who are surprisingly easy to please.
PC community aspects
A final point is that I’ve seen the PC gaming community to be much more active on games compared to console gamers. Perhaps this is just that so much more can be done, but for popular games (even cult classics) the community has been known to provide a great deal of value on top of the game. Mods, fan patches, troubleshooting problematic configurations, PC game communities have the potential to get far deeper into the game implementation – and they do. This is just one reason why advanced configuration options like settings files or scriptable UIs are more favored on PC, it’s such a versatile platform that it’s as easy to work on a game as to play it. Perhaps if game developers were willing to give more to the PC community, more games would be a good start 😉 , they could appreciate all this extra value more.
This list left off some aspects of platform differences, like how it’s trivially easy to update PC games and absurdly hard to update XBox games. But since those are more implemented by the software platform rather than tied to the hardware platform, I’m going to let that one slide. It also left out the obvious stuff, like update the UI hints to use the PC keybindings (not the XBox buttons!). These points should be sufficient though to help guide better PC ports, if anyone wants to give a solid try on their next PC port. The key thing is to actually try to make it feel like a PC game, using PC strengths, rather than a mere port.