Sunday, April 27, 2014

Why stuff has to work seamlessly.

For a while, I was starting to get the impression that the idea that things have to work correctly nearly 100% of the time with respect to computing was a ridiculous standard. I thought it was some sort of outcropping of the behavior of spoiled kids.  The first times I really heard it mentioned specifically were Jobs talking about the new macs, about how they needed to 'just work', and in Zuckerberg's comments about how facebook needed to be up all the time or that people wouldn't come back to it.

I later realized that this is not a progression of vanity or of unreasonable expectations, but merely an expression of trying to keep up with an existing standard.

Clay tablets and stone chiseling might have been unforgiving media, perhaps. They did give us a media where data could be archived for far longer than a human lifetime. We have learned substantial things about languages no longer spoken and mathematical systems no longer used merely from clay tablets and chiseled stone.  They are a bummer to carry around, but that's why you invent the library, and then thousands of years later you invent the steel-toed shoe.

We've had paper and pencil for a decent amount of time, and it's still a functional system. If the power goes out, you can still read it. If they make a new kind of paper, you can still read the old paper. You have a visual indication if a pencil is about to fail. You can feel if a piece of paper is about to rip when you're writing on it. Large amounts of paper can be bound together to make books, holding more information than tons of stone and clay tablets can.  If somebody found something interesting, you can make notes in the margins, or perhaps scrawl an idea or reference between the lines of text. If you mess something up, you can erase it and then recheck your work.

In the early days of computing, input was done via mechanical means. At that time, that mechanical input usually ended up being punch cards, since those were used for automated machines from the previous era.

The next step in local computing was the keyboard, an outgrowth of the existing typewriter. With the keyboard, we also got what we commonly refer to as the command line. It's just a prompt for us to type something into the computer, and the computer can act on that single command, or the command can ask it to start a larger program with hundreds and thousands of commands in it. If a single command failed, our feedback was immediate, and usually the failure was located somewhere between the chair and the keyboard. The syntax - the organized system of how a computer expects input in this case - can be tricky to memorize, but if needed we can also ask the computer what the syntax it expects is.  

My personal all-time most common ones were "fdisk /? and chkdsk /?" since you didn't want a catastrophic failure or a gigantic waste of time after messing up the syntax. Never hurts to check. 

As computing got larger, the need for standard libraries became apparent, since nobody wanted to reinvent the wheel every time they built a program, and there are lots of functions that people wanted that you weren't just going to build into the hardware or rewrite into the program every time - but this is where a lot of computing starts getting difficult for the users - and this was about the time we had a big influx of people using computers that weren't programmers of any sort. Having a library interfere with the program running or the operating system because of an unforeseen interaction is what caused the infamous "Blue Screen of Death" in Windows versions 3.1/95/98 most of the time, leaving a using wondering when the Feds were going to come get them for performing an 'illegal operation'.  While the information provided on those error screens were of great use to people familiar with troubleshooting Windows problems, it left the average user feeling frustrated a lot of the time because you don't know if it's because there's something wrong with the program, the data, or the hardware (or any combination thereof).   Apple has done a good job historically in mitigating a lot of these problems by allowing fewer hardware configurations, but it can't protect them from the problems that happen subsequently.

Once you get to large scale distributed computing, you've almost separated the user interface from the program. The user interface is a little tiny part of the program that the user's machine deals with, and it gets data from and sends data to the actual program, wherever that may be. For most of us, a lot of the web is this experience. Facebook, Amazon, Google, Mapquest, eBay, and the list goes on and on. For some of us, the programs we use at work are like this. In larger companies, all of the ordering and inventory management are done on offsite computers that local offices just call in to. Your printer in your office can let someone halfway across the country that's in charge of your company's office supplies know that it's out of toner, and place an order that's automatically routed onto a delivery truck and email you a tracking number so you know when it's going to show up. Your checkout terminals at a store can tell a corporate warehouse when you've sold the last copy of the new Beyonce album or the last piece of furniture from the collection that you're no longer going to carry.

When these things fail, however, it usually goes back on the people. Nobody waiting at the customer service desk wants to hear "Well, the computer said we had one..." when it would be easy enough to go out to the shelf and check, and no manager wants the employees having to rush around and personally check every inquiry when they're spending big bucks on a presumably good inventory management system. Nobody wants to show up to an establishment with cash in their hand and the product there available and get told "Well, we can't sell it to you, all the computers are down. Not only can we not record the sale, but we can't be 100% sure how much to charge you for the item."  It's not because they don't understand anything about computing, since computing has infiltrated the lives of a large portion of the world, but it's because the old way used to work just fine and didn't have a failure mode like this. If the customer has cash, you can ring him up. If you weren't sure how much to charge, you could open up your ledger and either check the previous sales, or figure out a fair price from the cost of the item when it was purchased.

Now, though, we have 'middleware'. It's not the input, and it's not the output - it's all the stuff happening under the hood on the way from A to Z. That makes it the stage where you really don't want to have problems, and can't afford to have problems, because it's the sort of thing that can turn a customer away from a product or service fairly quickly. Customers are far more likely to be forgiving with an inexperienced employee standing in front of them than they are to be forgiving when a computer error makes a simple transaction for a couple of items take half an hour.

On a related note, I had a chance to try out a wireless mouse/keyboard combo from digital innovations just recently. The keyboard works well enough, even if I didn't entirely like the feel of the keys. The mouse had an odd habit where left clicks were not registering all the time. How many times can you left click with a mouse on a computer (oh, I'm sorry Apple users - just ignore the word 'left'...) to no effect and put up with it? Since it's a wireless device, you wonder if there's an issue with where the receiver is placed, but then you remember that you were typing just fine a second ago, and rolling the scroll wheel and moving the pointer just worked. You think, could it be the batteries?  But there again, the other things were working. Maybe you hadn't pressed firmly enough? If you felt the 'click', you would think that you had. I wasn't even going to address the issue of drivers, since I'm not sure that it had asked me to install them in the first place and Windows rarely asks for them for basic functionality any more. (A left click counts as basic functionality, right?) Each of the kids had tried it on their machines (one XP, one Win7) with similar issues with the left click and no other issues. I thought it would do better or fail entirely on my Ubuntu machine if it really were a driver issue, but it exhibited pretty much the same behavior. Everything worked find except the left click. So, it's probably a mechanical failure and we'll have to tear it down and see if we can fix it. It's not going to get much use in the meantime, though. I don't actually remember having this sort of a failure with a mouse before.

After switching keyboard/mouse setups around a bunch of times in the house to get everyone to try it out, I ended up short on the Linux machine again so I found something that I really like that was only $30 (and I'm using it right now.) It's the Logitech K400r, which is a wireless keyboard that has a trackpad where the number pad would usually be. Ubuntu didn't have any issue with it at all. The track pad is smart enough to know if you're using two fingers, so you move the pointer with a single finger, but scroll with two fingers, similar to other multi-touch devices. It also had no problem doing the 'zoom' in the browser gesturally. My only actual complaint seems rather petty in that the right Shift key is located in a strange spot and I've hit the up arrow by mistake quite a number of times. 

One of the other unusual features is that in addition to tapping on the track pad and using the dedicated left button on the bottom of the track pad, there is a button at the top left hand corner of the keyboard above the escape key that also functions as the left mouse button.

I guess somebody realized how important it was for that to work.

Sunday, April 20, 2014

PS3 games people overlooked, Part 1

I don't normally play shooters...

(no, this is not a Dos Equis commercial)

...but when I do, they should be interesting. As I might have stated previously someplace, my primary experience with FPS games really ended sometime around id Software's Quake III Arena and Rare's Perfect Dark in 2000. I tried playing Timesplitters 2 on the Nintendo GameCube some time later, only to find out I should have called it "Headsplitters", for similar reasons to the games I already explained here.

Now, I didn't seem to have this problem with Resident Evil 4, first for GameCube and then for the Wii - but this isn't a 'first person' shooter. They put the camera above and behind you and generally this solves my nausea issue, unless the camera is jittery. The character's reaction to the environment helps me visually process what I'm seeing in a consistent way.  In addition, having the character fully on screen makes the motion more like action games like Devil May Cry and Bayonetta and God of War, or any of the brawlers like Mad World or Urban Reign or God Hand and such.

So after a while of owning a PS3 and being near the end of the console's lifespan, I start asking myself and the internet the question "What have I missed that I probably didn't want to?" and one of the answers that came up a few times was the Platinum Games shooter "Vanquish" from 2010. It's a third person shooter, so I didn't have too many nausea issues, but I was surprised by a lot of things.

One, it's got a much better story than I was used to for a shooter (but I realize part of that is because I haven't been playing shooters for a while). Most of the the story takes place in a big space colony, allowing for interesting changes of atmosphere (pun partially intended). The main character Sam Gideon works for DARPA, but has the challenge of working with the Armed Forces. On old enemy becomes a big problem after years of a manageable truce, and some important technology changes hands because a scientist has been captured. Maybe it seems familiar in the broad strokes, but it seemed well executed in the details.

Two, there seemed to be a lot of interesting scenarios that I'm not sure were really possible before on older game systems. There was a sniping level, a 'protect the armored vehicle while you're on foot' level, a level where two moving vehicles on tracks try to gun each other down, a 'clear the area so a transport can land here' level, and quite a few other things. It was a lot more varied and interesting than the usual 'go down this corridor and hide behind boxes or you're going to get shot' or the 'take that building from those dudes' scenarios that I feel like you seem to get a lot of in shooters.

Three, the game has a cover system that works pretty well, or a inexperienced shooter player like myself couldn't have gotten along with it. One button is dedicated almost entirely to going in and out of cover, and you get helpful onscreen prompts where appropriate.  The levels are timed, and you get a better rating if you take less time, and you get a better rating if you don't overuse cover, so there's a good reason to use it efficiently.

Four, it did a great job of making you feel like you were part of a team (another item probably improved on by other shooters first). The other AI soldiers actually got things accomplished, spread out in a sensible way, and picked the right weapon most of the time. One of the responsibilities they gave Sam, your character, is to act as medic to the soldiers, and you get weapon bonuses for helping them when they need it.

Five, it did a magnificent job at impressing you with a huge sense of scale when enemies and ships as large as a building (or bigger) came at you.  A varied array of giant robots and walking battle tanks stand between you and finishing the game.

Six, and they really didn't have to do this one, they took a mechanic that could have been really gimmicky - a ridiculous speed boost in short bursts for your character - and made it work fantastically with the level design and the character story.

There are a few quick time events here and there during boss battles, but I didn't find them too onerous or distracting from the game play. Veteran voice actors Gideon Emery, Kari Wahlgren, and the always amazing Steve Blum play the lead characters Sam, Elena, and Lt. Col Robert Burns, respectively. I really liked the music when I was playing the game but I can't remember any of it now that I haven't played the game for a week. My favorite enemy in the entire game was an enemy that built itself out of spare parts called Unknown - don't worry, you'll know it when you see it.

The down side was that as an inexperienced shooter, I was only able to finish the game on 'Casual', but I didn't have to rely on the autoaim of the slightly easier 'Casual Auto' setting.  This means (or at least I think that it means) that experienced shooters will have at least two more levels of difficulty to test themselves against. Even after finishing on Easy and having a pretty good sense of the control mechanics, I was killed on Normal difficulty prior to even reaching the first boss. Used copies for XBox 360 are going for $10, $13 if you have a PS3.

Thursday, April 10, 2014

Relationship problems

So, CAPCOM announced the fifth character that they're adding to the newest iteration of Street Fighter IV, and the internet doesn't seem to jazzed about her so far. Decapre, similar to appearance to Cammy, because she's another one of M. Bison's "Dolls" has some similarities in moves, but a lot of differences. The complainers seem to be focusing on the similarities. In my head, it sounds like this...

Dear Virtual Advice Columnist,
I really want to like this girl - let's call her Dee - but I feel a little bit guilty about liking her because she reminds me too much of my old girlfriend, Cammy. I mean, I know that I should like her on her own merits, but I find myself yelling things at her like "Is it just me? Or was this the worst moment of all in the SF4 series?"and "This is a joke, right? In what Universe (do they) honestly think fans would be hyped for this character?" She's actually got some friends that I knew from before, a wrestler, a hot biker chick/dude/whatever that hangs out with the wrestler, an African princess that learned capoeira, and this really badass mercenary. I did get to hang out with them lately and didn't complain about them much, but I still feel bad about the whole thing.

-Confused And Possibly Crabby Over My Female Avatar News

You're complaining about getting 5 more characters for $15 on a download, or $40 on a disk - and the disk version has all of the previous costume DLC included? I think that if you really don't like Dee, or Decapre as she would prefer to be called, there are plenty of things to like about the new version. If you're looking for a reason not to move on, nobody's stopping you.

It stems basically from this - when content publishers put a new version of an existing IP, it's nearly guaranteed that the internet will scream out one of these two things:

"I can't believe they just repackaged the old game and only added some stupid cosmetic feature that I totally don't care about."


"What the heck is this broken game? It doesn't have any of the characters/features that I liked from the last game and the new game engine is totally rubbish and how can you be expected to play a game at only 30fps."

So I'm not surprised that people say these things, except if I'm not surprised by it then on some level I'm surprised that this reaction keeps happening, because I can't be the only person that notices it.

It's an especially difficult phenomenon in an IP's second iteration, since it's hard to look at a series of games or albums or movies as a cohesive whole if there are only two data points. This tends to drag us straight into compare/contrast territory. When a game's iteration is in to the double digits like Street Fighter is, you should start to be able to see a pattern. Street Fighter's pattern has been so far, at least according to what I understand about it, is that they make a new game and game engine, and then they do periodic updates of the same engine to keep people interested in it and balancing the game while cutting down on the labor required to do a full new release every time. Looking at the Street Fighter 2 series, the Street Fighter Alpha series, the Street Fighter III series, and the Street Fighter IV series, that's what's been happening so far. The original Street Fighter didn't do this, but I don't think that they had quite adopted the strategy at first and the gaming climate was rather different.

Another one of the complaints that I heard was "Where Is Street Fighter V? We want all new characters!" Based on the reception of Street Fighter III at the time that it came out, I'm not sure that the mass market appeal of a Street Fighter game with all new characters would be well received at all. When Street Fighter III came out, only Ryu and Ken were carried over, and the other eight (well, OK nine, but Yun and Yang were identical at the time) characters and the one boss were all new. The game was very good, and by the time the game got to its final iteration (Street Fighter III:Third Strike) it was well-balanced and very complex. Street Fighter III is a technically great fighting game, but it's hampered by the fact that it was designed for people that were already really good at fighting games. The other thing that impacted Street Fighter III's popularity when it came out was that it was only available for one home system at the time, the Sega Dreamcast. The original PlayStation and the Nintendo 64 couldn't have handled Street Fighter 3, and Street Fighter 3's 2000 home release on Dreamcast preceded the XBox and Game Cube by about a year. Technically, a home version of Street Fighter III could have come out for PlayStation 2, but this was before a multiplatform home release was a standard occurrence for anything that wasn't EA Sports or Mortal Kombat. The PlayStation 2 and the XBox did eventually get versions of Street Fighter III:Third Strike, but it was so long after the fact that it was more a nostalgia package than anything.

Did anybody actually think that Capcom would go to the trouble to make new character models for Hugo, Poison, Elena, and Rolento for "Street Fighter X Tekken" and then not use them in a subsequent game? At some point it's a business decision that it's far easier to do something with resources you have than spend even more time developing new resources. I also thought when I started using Rolento in SFxT that it would be cool to see how he holds up against the rest of the SFIV roster. I'm sure that there are some Hugo, Poison, and Elena players thinking the same thing. The other thing that happens having them in another game before they get moved into SFIV is that the game design team gets a chance to see how their moveset works so that they can get game balance dialed in correctly.  Historically, they've been a little less worried about game balance in their crossover titles, but it is nice that they get the chance to try things out there first.

So, I'm not really mad about Decapre, but I'm probably not going to use her right away. Oni Akuma didn't get this kind of negative reception when he was announced, and he is a similarly positioned character - similar to a character already in use, but tuned with a slightly different moveset for more aggressive play. I don't really use him, and I haven't quite warmed up to his style yet. I think it takes more time for us Street Fighter old-timers to digest new characters. I thought Rufus and El Fuerte were stupid at first, and now I've really warmed up to them even if I'm not that good at them.

If you're still thinking 'what-if' about the whole thing, check out this video where lots of other characters that would have worked just fine are shown. (Well, except for Skullomania, who doesn't belong to Capcom.)

Tuesday, April 1, 2014

How to get motion sickness while sitting comfortably.

I think about motion sickness a lot these days. I used to have problems with it from time to time, but I have developed strategies to deal with it. Mind you I don't spend much time on boats or roller coasters, so technically the word that most people use for what used to happen to me and currently happens to my younger child is "carsick". My younger son has really liked playing Scribblenauts Unmasked lately, but he's had to be careful about how much he plays in the car.

I don't remember ever having big problems reading in the car on family vacations, but since we had a big van I was probably lying down when I was reading. I think it happened occasionally, but I couldn't nail down the triggers for it specifically. The first time I specifically remember having a big problem was after I got a Game Boy.

The first video game that made me sick was "Atomic Punk". It's not that it was a poorly Americanized attempt at re-branding Bomberman while capitalizing on the success of the Game Boy as a platform, although I can certainly see how you might think that. It's just that I was so nuts for Bomberman then that I wanted to play it all the time - especially on long road trips where all I really had to do was sit in the passenger seat and navigate. However, that was exactly the time that I could not play it. I was ready to hurl even before we got out of the city limits. It has occurred to me that the biggest difference between playing an action game and reading a book in terms of the motion sickness that when reading a book, there is nothing to stop you from periodically looking up from the book. (Sure, you could pause the game, but who does that?) So, when playing a game in the car, you're looking at a mostly fixed screen, and your peripheral vision is seeing the interior of the car which is also not moving, but your inner ear is reporting data that would indicate that you are moving. So, I presume that motion sickness stems from the brain's inability to process conflicting data under certain conditions.

Now, some people that I know used to get nauseous from playing first person shooters back in the early days, like playing Doom and Quake. This is kind of the opposite problem from the handheld game, where your peripheral vision and your inner ear report no movement, but your central vision reports movement. I do not recall ever having issues with this back then, but I started playing Doom and Quake with the arrow keys and I did not start whipping my point of view around with the mouse in a rapid fashion until some time after I started playing those games. Since how much you move around depends on your input to the game, I presume that I had no issue with it because I understood the relationship between controller input and screen movement.

Typically when moving around in a virtual world, or watching a movie where they pan the camera around, the motion is very smooth. Part of the reason it tends to be smooth in the game is because you're aiming the direction of movement and your weapon with the mouse, so it needs to be somewhat smooth so you can aim your weapon and travel in the intended direction.  Your brain is able to extrapolate perceived movement and figure out where you are looking to some degree.

Once the camera becomes small enough that it can fit in a person's hand, all that smoothness is right out the window and we end up with feature films like The Blair Witch Project, which I thankfully watched in a nearly empty theater in the middle of the afternoon so only my wife and a friend of mine had to watch me slowly freak out. The movie was considered innovative for its use of handheld footage, but it was too jittery for me to process. I tried using chocolate and caffeine to combat the effects, but I left the film feeling like someone punched me in the back of the neck. This is similar to the Doom/Quake example where the inner ear and peripheral vision report no movement but central vision reports movement, but I wonder to what degree the brain trusts your peripheral vision in a movie theater.

I presume that this is similar to why some people have problems with in 3D films, again because of the differential between the inner ear information and the visual information, but complicated by the problems with stereo vision and a forced fixed perspective. When you move your head around in a 3D film, the 3D scene doesn't correctly track to your head movement, so again you have a disparity that your body's visual procession and sense of balance aren't happy about. I haven't had issue with this yet, but I have been pretty picky about which 3D movies that I've watched so far.

With games, I had assumed that since I hadn't had any issue with the old first person shooters, I was unlikely to have any issues with any games. Strangely, this turned out to be wrong. The first time I had a big problem with in-game nausea was the 2001 Playstation 2 game Twisted Metal:Black. It's not a first-person shooter, it's a related genre that only exists periodically: Vehicluar Combat. Despite imitators like Vigilante 8, Blood Drive, and Twisted Metal 3 and 4, Twisted Metal:Black reigns as the best of the genre and a good game in its own right. Running on a rather well-optimized engine and capable of a rather high sustained frame rate, there seemed to be too much going on. I was only able to play the game by building up a tolerance for it, and I think I still only managed to finish with some of the characters. I don't recall that the game was jittery, only that is was fast, so I don't feel like I sufficiently understand why the game made me motion sick.

Just recently, I have been making some progress on Resident Evil 6. This game is similar to Resident Evil 4 and 5 in presentation where the camera is positioned over your character's shoulder. I have tried to play the Mercenaries mode a lot to acclimate myself to the controls, and I have just gotten to the second chapter of Chris' campaign having started there after many attempts at the introduction. I have noticed that the game engine is rather sophisticated and tries to replicate a cinematic feel some of the time, including an area where you fight a boss enemy from the second floor of a building which he's trying to knock down while you're in it. What do you get when the boss is trying to knock down the building you're in? Jittery Action! I was so glad to get to a checkpoint so I could quit but I think I'm nearly out of bullets. So, if you hear me say that Resident Evil 6 makes me sick, it's not a comment on the story.

Well, at least not yet it isn't.