Author Archives: DMZ

Fallout 3 and the failure of imposed morality

Spoilers ahead.

Fallout 3 attempts to implement a morality system that ultimately fails to provide satisfying gameplay and in many ways undermines the game’s freedom in a frustrating way.

For instance: every action can be neutral, bad, or good. Stealing is bad. Killing people can be good or bad.

Let’s say I head to Paradise Falls, with an aim to wipe out the slaver camp. This is a weakness of mine in role-playing games: I will go out of my way at the first mention of slavery in a game like this, find where they are, and kill everyone involved before I go any further. I (personally) consider slavery humanity’s cancer, to the point where I’m unwilling to play evil characters in some cases. Anyway.

I go to Paradise Falls and start shooting up the place. Wheee! When certain slavers are killed, I receive good karma. Yay! I can loot their bodies for their weapons and ammo, no problem. When slaves attack me, which poses a creepy moral dilemma, the game is neutral on killing them in self-defense. But if I look at (say) the boss slaver’s stuff, it’s red — stealing. If I steal his stuff, it’s a bad thing.

What? It’s a net positive to go in and slaughter everyone involved with the operation. I’m encouraged, as a good character, to turn slavers into corpses and ruffle through their personal effects. But cracking open a locker is bad?

Similarly, there are stretches of the game where the game’s morality determines what a good character should do. For instance, you’re sent to go find a kid. You find the kid’s disappeared from a village, and you go to find him. You may, in trying to hunt him down, find where he is and be denied entry. Forcing or sneaking in can turn the people there hostile and spark a fight. And then you’re shooting up people trying to prevent you from rescuing a kid, and when you start popping them, you accumulate negative karma.

Which, if you’re trying to play good, will probably cause you to think back through the story and maybe even reload from a previous save and try it again. If they’re good, why can’t I see the kid?

The game, by giving you clues about what it considers good and bad, forces your character to take a certain course of action even though that path can seem illogical for a character making decisions that seem good or bad at the time. Poor scenario design is bailed out in a way by the overbearing red/green morality markers.

There are two things that go wrong here: if every situation has a good and a bad karma outcome and you get feedback immediately when you make a decision, you’re being tipped off to the game designer’s opinion of your actions. As a result, you can’t go down ambiguous paths without knowing what’s happening right there. If I had carved through the settlement to rescue the kid and then realized I’d done something horrible, that’d be a great moment in mindfuck gaming. I would have played the rest of the game more considerately, doing more investigation in each situation.

Instead, I shot up the place, furrowed my brow with every cue that the game considered what I was doing wrong, then loaded from a previous save. The next time I spent a long time to figure out how I make friends and influence people for fun and profit.

Here’s the kicker, though — the people I shot up were the Family, who
a) liked to shoot up and generally harass an innocent settlement
b) were cannibals. Reformed, sort of, in the Terry Pratchett Discworld Vampire Temperence League way, but cannibals.

Throughout the game, if you defend innocents from attack, it’s a good thing (or at least, non-penalized). But given a chance to go end a specific group threatening someone, that’s evil. Why?

Or to return to the slavers: the game clearly endorses murdering evil people as evil. Killing bad people is a greater good than the toleration of their human trafficking. That’s an ambiguous moral situation where the game’s karma system makes a clear determination of which choice a good person would take.

And to some extent, rewarding individual actions results in deeply unsatisfying conclusions. Early in the game, you can nuke a town for fun and profit. This results in a huge amount of negative karma. In various game locations, there are people desperate for purified water, which you can give them for a small amount of positive karma. Then they want more, and you can collect the reward again. You can eventually balance out and overcome using a nuclear weapon on a settlement for money by handing out bottles of water.

That’s lame. Your reputation should be forever stained. There’s no going back from that. No one’s going to think “that guy killed a couple dozen people in one of the only established holdouts of civilization to make a buck, but that’s okay because he’s sure generous with the purified water!”

It’s tough to fault the game in some ways: any implementable system that tries to track good and evil which also presents a plot of any complexity is going to get people like me arguing relative morality, or utilitarianism, or universal non-violence, or something that views game decisions differently or otherwise breaks morality. It doesn’t seem right that the game would reward a player for *not* killing evil people (1 point for every 10m of game time without shooting at anyone!), and at the same time, the system does explicitly endorse that some people need killing.

The natural solution seems to be to remove universal morality and instead let the game world react. You might have good reasons for killing civilians (say, you think you can put their guns to better use than they can). But the world’s going to react badly. If you shot up a community of cannibals, the town they were threatening might be happy, while wider opinion could be divided. And so on. In a way, this is where a limited open world like the Grand Theft Auto games succeeds where Fallout 3 disappoints. God doesn’t award you points for being a taxi driver, and doesn’t hand out demerits for carjacking. But people around you when you do these things will react realistically.

It’s an interesting design choice then to implement a universal morality scale that introduces all of these problems. It posits that there is right/wrong, that a higher power (in-game, the designers) can determine the rightness or wrongness of actions, and that power will reward or punish players based on their actions and cue them which is which as they confront their choices. In so doing, it puts the people who came up with the system in the place of god, arbiter of morality, robbing the player of free will and the ability to stumble and fall in a game largely based on freedom.

A couple dozen tanks

Reading through an October Jane’s Defense Weekly, I came across a story (“Tanks on pirated ship were bound for southern Sudan, says source” 22 Oct 2008, p25). The Faina story is ongoing and getting a little coverage as part of the larger Somali piracy issues. This story focused on how the tanks were bound for southern Sudan, the third of three shipments, and who’s denying what about where they were headed and how.

The shipment included “ammunition, rocket-propelled grenade launchers and other weaponry”.

So a couple of Somali pirates took over this ship (which they still hold as I write this) and are now in possession of a tank force superior to South Africa’s (who have ~40 active and outdated main battle tanks). If they’d taken the ship, run it aground, found some former Soviet army conscripts to man them, they’d be a third-tier military force on the continent (compared to Egypt and then Libya-level) (Libya has ~85 T-72s running). They’d be able to run amok shooting up everything they wanted (until presumably the Fifth Fleet sends some planes after them).

Army in an unguarded box.

Side note: what in the world is Egypt (or really, anyone) doing with M1 tanks? Does Sauron sell copies of the one ring to anyone who comes by?

Marnie Sterns rocks out

I roll the dice on too much new music. I find myself on the bus frowning at my ipod, wondering how some of those bands got on there because I just can’t keep track of it all. I take flyers on all kinds of stuff I can find on emusic and wherever. I keep at it because sometimes, I find just ridiculously awesome stuff, like this. I’m loving Marnie Sterns. I couldn’t even tell you why. The guitar shredding, the crazy complicated songs, her strange, high, enthusiastic vocals… the lyrics, where they’re even comprehensible, are cool, too…

It’s titled “This Is It and I Am It and You Are It and So Is That and He Is It and She Is It and It Is It and That Is That” which is highly annoying. I know. I forgave it.

Anyway. Go sample a couple of songs (seriously, just the first 30s of track one is a really bad indicator… try 2, “Transformer” or 3 or 4…). If I get anyone to listen to this and dig it as much as I do, I’ll have done a good deed for the day/month/whatever.

The best part of my job is release morning

I spent part of this weekend finishing up a presentation I’m giving to a new dev team about what a program manager does at Expedia, and how we work with the developers in particular. And I spent some time looking through my schedule at what I was doing, where my time was actually going, and what I really liked about my job.

Expedia shuts down when we do major releases (this is bad, yes, and also outside the scope here). We run a series of shifts on release nights: the A shift runs from before we start to roll servers out of rotation and ends at about seven in the morning, while B comes in at six (and C, about ten hours later, and so on). There’s an all-Expedia crew steering the ship, and then every team has its own mini-team (so there’s an overall release PM, tester, dev, as well as EU PM/test/dev).

It’s really nasty work. It’s bug investigation on extremely tight deadlines, it’s figuring out if the Dutch site is supposed to have insurance in the package path by default or not while the Dutch site is down… and with any roll-out the size of the Expedia code base, on a server farm the size of Expedia’s, strange things can happen where one server in the French cluster decides to serve bad pages one out of ten times.. and someone has to track that down.

You’d expect anyone with any sense would duck this — it’s so ugly, and all you get is comp time, so it’s entirely reasonable to think that everyone with an ounce of sense would sluff it off on the newbies, and as much as managers would like to have their best there, they can’t draft people.

No. Program managers who have projects in the release want to be around to troubleshoot and see their work go live, which means that the PMs on A/B are disproportionately PMs who regularly ship things, which somehow selects for an outstanding section of the PM corps. And the same’s true of the dev and test organizations.

On release morning, there’s a triage meeting where all the open bugs on the release are reviewed when both A and B shifts are there. It’s traditionally in a too-small room, with all of the finest people who sign up for those two worst duty shifts packed in, standing and sitting everywhere. The A-shift people are about to fall asleep on their feet and look disheveled, and the B-shift are smiling and eager, on their first cup of coffee, freshly-showered, often in clothes too casual for normal work days. Almost everyone knows everyone, and as the group goes through the bugs, teams doing badly have crap flipped at them by people they’ve worked with for years, and after they’re done, they’ll volunteer to help out.

I love that meeting. I love the camaraderie, the gallows humor, seeing everyone together with a single shared purpose, the constant pacing of release management as we go down the list of everything wrong in our world.

“Bug 77884, EU, French hotel path failing, what’s going on with that?”
“Ops didn’t copy all our files over to EU-FRA-06, we’re pulling it from rotation so you can do replication again.”
Much booing.
“Sorry about that. Bug 77886, APAC…”

That meeting is the heart of Expedia. The people who can’t stop going putting their hands up for the A/B shift after a couple years, who are shipping something each time there’s a release window, the senior individual contributors who want to read through error logs at 4am on a Friday because bookings are dropping… those are the people who make shit happen.

I love them. I love being one of them.

Moen kitchen faucet low flow repair

(throwing on the cloud for future generations)

I have a single-handle Moen kitchen faucet (it’s a Moen 87787) with sprayer which began to choke up a while ago, with low water pressure in both faucet and sprayer.

Here’s the faucet (which may not have the soap dispenser there)

(part of a Moen diagram)

This is frequently a problem with the diverter, which is the part that controls flow between the faucet and the sprayer. It lives under the spout and not the handle. If your house has old pipes that occasionally flake a bit of rust into the water or hard water that results in mineral or calcium build ups, that’ll clog the diverter and you’ll get no pressure to one, the other, and so on.

(from the Moen exploded parts diagram)

Here’s how you fix it. If you can swing a wrench and don’t have any access problems using it under the sink, it might take an hour to do this. The harder it is to disconnect and reconnect stuff under the sink, the tougher this will be.

Repair instructions
1. Remove the spout. You can do this two ways:
– reverse the installation instructions, leaving the spout body in place
– disconnect the hoses, undo the fastener piece, and pull the whole spout out with assembly and spout body. Then pull the spout assembly off the spout body by unscrewing it.

The first one was a major pain in the ass for me, so I went with the second and it worked well. Then

2. Now within the spout body

You’ll see a small plastic piece, white within the brass spout body. It’ll look like it wants to take a giant hex key.

(I believe that’s a Moen part drawing)

3. Remove the diverter
If you don’t have a giant Allen wrench, you can also take a pair of needle-nose pliers, grab an edge carefully, and rotate it out.

4. Clean the blockage
Examine it and the spout body. If the diverter is the problem, you should pretty clearly see the bits of rust or buildup blocking the holes and water path. Wash out the spout body, then take the diverter and do your worst. If it’s a calcium buildup, you can use vinegar (or whatever your fancy is). You can use water softener if that’s the problem. For me, it was the rust bits, and I just had to brush the whole thing out and replace it.

You can, if want to spend the money, just buy a new diverter from Moen or whoever and have it in hand for easy drop-in replacement.

Then it’s easy.

5. Put the diverter back in the spout body
6. Put the spout assembly back on the spout body
7. (if you took the whole thing out, put it back)
8. Reconnect hoses and fasteners.

Ta da!

Now turn the water back on and test it out. If it was the issue (and you’ll know that at step 4) you should now get the same water pressure as you had before, and the sprayer should work great again.

If it’s not, well, sorry. It’s probably the cartridge. But that’s it for me. Hopefully this will help future generations of people and save them from having to spend a ton of money on kitchen sink repair. And ideally, that particular part wouldn’t be so easy to clog, but I won’t hold my breath for design improvements.

Oh, the pain

I can do plumbing, but it’s by far the least favorite home-improvement task. Wait… insulation… no. Plumbing combines all the worst elements: it’s often cold and wet, involves being sprayed in the face, awkward positions, there’s a lot of cuts and skinned knuckles, cramped working conditions, and a certain amount of incomprehensible results, where you can put together a beautiful set of connections and have it leak, take it apart, stare at them and see nothing wrong, and then put it all back together and have it not leak. Drive me batty.

I had the day off today (I have to work tomorrow) so I spent my time working on my kitchen faucet.

Digression: buying an entirely new faucet set is cheaper than calling a plumber to come out and see why your existing faucet doesn’t work unless you bought a really expensive faucet set. It’s almost cheaper to buy a new faucet set than it is to buy a replacement cartridge.

Anyway, so I get the whole thing apart again, figure out that the part I suspect is at fault is almost certainly at fault, and I decide to clean deposits off some of the parts by soaking them in a vinegar solution. Only to discover that in working under the sink, I had taken two cuts, one on the tip of my index finger and another on a knuckle… both of which I managed to briefly immerse in undiluted vinegar.

Fortunately I was the only one at home, so my cursing didn’t result in a citation for disturbing the peace. This is why you pay the plumber.

OB Beer

The OB stands for “Oriental Brewery”. Another fine beer I picked up shopping at the “International” grocery store near my house. Has a nice blue can:

Beer can

Beer can

The small text there reads, and this is exact:

Timeless enduring heritage, craftsmanship and new rice addition delivers refreshing smoothness and clean after taste, making OB the most drinkable beer

The can notes that Oriental Brewery’s been in business since 1933, so timeless… ummmm…

Anyway, it tastes like other rice beers. I’d have trouble picking it out from Bud in a lineup.

Speaking other languages, a quick reference

German in Germany
Fluency: long-broken college-level

There’s a comprehension line, where if they understood what I was saying, they’d just keep on going. If they didn’t, and they were young, they’d swap over to English. If they weren’t, and they didn’t, things got hairy. No one ever cared that I was speaking German either way.

Flemish in Belgium/Netherlands
Fluency: some traveler phrases, aided by knowledge of German

They were either delighted I tried or nice about figuring out what I meant. I frankly gave up, though, having already spent two weeks trying to speak German, after discovering that everyone spoke English.

French in France
Fluency: long, long-forgotten high school French, study

I was surprised at how nice Parisians were about French, to the point where they’d stop and talk to me about how to pronounce things. I felt like they were interested in having me speak French well.

…anyway.

Coffee, in Europe, beyond

Coffee in Europe has been pretty much crud so far. Bear with me for a second.

I agree with Coffee Geek in that there are two kinds of coffee: coffee-coffee and culinary coffee, for lack of better terms. One’s the sludgy, often drip, really bitter coffee many people like a cup of in the morning. I have a fondness for this myself. The other starts to include good beans, reasonably fresh roasts, and processes that do more for the flavor, like french press or espresso machines.

I think of this sometimes in terms of who sells what: 7-11’s pot of drip coffee is the coffee-coffee. Starbucks establishes the culinary coffee spectrum. People who want to pay 79c for a cup of joe don’t want what Starbucks is offering. People who want a decent latte don’t want to pay 79c for the other option.

In Germany and Belgium, it was all super-automatic machines. These are the beasts that have a hopper of beans on top and when the operator presses the button, they make a lot of noise and shake a little and a drink comes out the other end. They produce culinary coffee, of a sorts. On a scale where “1” is “awful” and “10” is “best I’ve ever had” the super-automatic machines, given decent beans, will consistently hit a 4, which is not bad at all. But getting beyond that requires better beans. And getting way beyond that requires better equipment, a lot more attention to the beans, a whole extra level of training and attention (and here I’m thinking of Cafe Vivace). But sometimes you get just wretched coffee and you have to be prepared for that — there’s a risk not present otherwise.

For most places, the super-auto is good enough. I had coffee a couple of times where it was pretty bad, but if you’re going to start serving espresso, a super-auto means almost no additional investment and you’re in business. But it’s not good culinary coffee, especially when they’re feeding it awful beans. It just means they’re checking off a box that says you offer lattes because you have x coffee with y steamed milk.

But when I got my first really good restaurant espresso here today, I wasn’t surprised when I checked it out and found they were using an old-school, semi-automatic machine. They’d have had to grind, tamp, and time the whole thing themselves. And the result was I got the first decent coffee in weeks.

Now this whole thing has an application to the Starbucks-McDonald’s thing, which I’ll get to soon.

Or not… Belgian beers are ridiculous.