My response to RPS: 10 things all PC games should do.

I read an article on Rock, Paper, Shotgun this evening which spoke to ten things that should be in all PC games. Let me preface my response by saying “Yes, I agree on all counts,” but I’m not here to agree, since I could have just say “Amen” in a comment there. No, here I will speak on behalf of developers everywhere about why these ten things don’t always appear.

1. Alt-tab support.

Alt-tab support is a PAIN in the BUTT to implement. I can use WAR as an example…you notice how in “Use Full-screen” mode it breaks on an Alt-tab, but otherwise (when it’s in “Windowed Mode”) it works fine? That’s because when Alt-tab is hit, WAR needs to give the graphics card back to Windows (in Full-screen, it has it fully reserved). In my own lessons trying to get this to work, even when DirectX docs I followed said it should work, I’d tab out and back in and well, hey…my Tetris blocks would no longer be tiled in pretty colors. They would instead be awkwardly tiled in little partial “Start” buttons. Srsly, it was weird. In my case, I wasn’t reclaiming the resources correctly. Since you can tab out but not back into WAR, it could be a similar issue: they are not reclaiming as they should.

Basically, you have to tell Windows “Hey, can I use this?” and it says sure. Then you say “Windows, have it back,” and it takes it back, no sweat (it is Windows’s space, after all). Finally, tabbing back in you’re like “Hey Windows, can I have it back?” and it says “Sure” and hands it to you all clean and new and…crap, where were we? Drawing something. Damn. Didn’t I save it? Yes. Where. On the graphics card (it’s faster there) but shit, Windows didn’t pay attention and wrote over it. Well great. That’s not my texture. In my case, I didn’t check, and I drew with it. Perhaps in WAR’s case it checks and it’s like “crap” and just gets confused. (Ok, there I’m totally guessing, but maybe you get the idea.)

In “Windowed Mode”, WAR just let’s Windows handle all the resources and that’s why it works. It just means WAR doesn’t get the full graphics card, and you don’t get all ur powa. Implementing tabbing just isn’t trivial. Cut them a lil’ slack. <3

2. Use standardised install and savegame folders

I chuckled out loud at this one. Not a day goes by that I don’t gripe over some 3rd-party library or add-on about how, were there more standards that people adhered to, everything would be tremendously easier to work with. I wouldn’t have to relearn how to use a wheel everytime I see yet another developer’s method of making it happen. Two very popular examples are Direct3D and OpenGL: these both follow remarkably different paradigms, completely different views on how to handle 3D. Learning one front to back will not help you one lick in learning the other one. It’s Japanese vs Chinese: both very efficient ways of communicating your feelings, but no way can one talk to the other.

3. Automatically set themselves to your desktop screen resolution

Developers do testing in all screen resolutions to make sure they all work (or at least, in theory they all do), but really they do the vast majority of their testing in a handful of screen modes…perhaps even one screen mode. Whatever one is their favorite, in that it produces the most consistently acceptable results, that is the one they default to. They always will. If they happen to test in your native screen mode, consider yourself lucky. <3

4. Support widescreen resolutions.

I haven’t actually seen any recent games that fail in this regard, but I believe you that they exist. Since most of the black magic behind screen modes is long gone, I would just write this off to what hardware they had available to test/develop on in the shop. Small budget game, small company, that’s just how it rolls. I’d bet they’d love their game to run on wide screen, if they only had the time/money/gear.

5. Uninstall in seconds.

This sort of gets back to standardization and what the install initially did to your system. If it just did all that it really needs to do (copy the executable and its data files to the hard drive) then it really should be instant…just flag all files concerned as deleted (literally delete the file table entries and the first few characters of each file) and call it a day. If you have a game which uses some new anti-pirate tech (which I hate) and hooks into your system like a root-kit, it may not remove every single piece of itself from your system. One good reason to think twice about games that do this. And stay far away from Starforce. Anyway, some games dig themselves in pretty deep into your system (arguably deeper than they should), usually trying to hide little remnants of itself to prevent cheating or piracy or the like. Since all such methods fail, it’s a waste of effort, and really I can’t excuse the fact any uninstall may take longer than it should.

6. Don’t require the CD/DVD in the drive to play.

Sorry, developers; I can’t justify you requiring a CD in the drive either. Not only is it not necessary for space conservation (as the article says) but any data accesses to the CD-ROM significantly slow the game down (because accesses to disk drives just take longer; keep it to the hard drive, please…one is enough). This is in fact a very ineffective anti-piracy method. Just give up on it. Take a note from Galactic Civ 2. It’s OK.

7. Keep the quicksave and quickload keys far apart.

You know, I have seen more than a few games that do just this. Jedi Knight Academy did, and I believe Bioshock as well. Again, it’s standardization, which people just don’t get down with…they would rather express their individuality.

8. Escape means menu/pause

It definitely should. STANDARDIZE.

Sorry, I dropped the ball on my own article theme. Back to defense.

9. Auto-backup quicksaves

Saving a game state isn’t always an easy thing to do quickly. How much is going on? Really? How much needs to be saved? It goes beyond inventory and position. For instance: how was the map built? How is it stored? When your character is loaded into the game environment, is it ok to load him in on an incline at start up? Will that get him stuck? Fall through the floor? What if you have your map(s) seperated into regions for speedy loading of what will and won’t be seen from various positions? These kinds of things are why some games enforce save points over save-wherever-you-please. Notice how save points are very often on level ground. <3 There are other reasons, of course, but suffice it to say: it’s non-trivial.

10. Patches should fix, not break

It’s going to happen, as I’ve discussed before. Software Engineering as a field and science is not well-defined; not like building a house. We don’t know in SWE how to build the best foundation, the best walls, the best insulation, the best plumbing, etc. We do our best, and often fixes and improvements can break seemingly unrelated things because of unforeseen cross/co-dependencies. Patches will break things for probably decades to come at least (if not centuries), so please, please, please grow to accept it.

RPS gives a painful example: Eve Online’s patch deleting boot.ini. Why the hell was it even looking at boot.ini? Was it something dumb, like a “del *.ini” that was meant to toast game files but accidentally directed at the root directory? Did you test this patch? Did you reboot the test machine(s) after the test? I bet they did and wanted to rush the patch out, and didn’t link the inability for a machine or two to reboot to the applied patch. (They probably blamed Windows.) To be fair, maybe it was a Windows thing…maybe it asked Windows for a path and got a wrong path, and just fell into the root directory. It could be so many things. That’s how SWE works.

11. Free cupcakes.

Since the cake is a lie, the least they could do is compensate us.

Advertisements

~ by thade on October 5, 2008.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: