2006-04-18

And now for something completely different!

I'm doing something rather unusual: tinkering on a game engine.

Some of y'all might remember, about two years ago, when I started writing an RPG for cellphones. I eventually decided this was silly and stopped, but I had the basic foundations for a plot laid in my head.

In a conversation with Chris about a week ago, it came up — and I have new ideas.

I'm designing an engine for adventure-game type RPGs, in the vein of Maniac Mansion, Monkey Island, Sam and Max, or Out of this World. This genre of games has completely disappeared in the past ten years — much to my dismay, since it was a real hotbed of creativity in the early 90s. The games had depth, and had humor, interesting character interactions, and plot complexity that was totally lacking from their contemporary battle-oriented RPGs (like Final Fantasy). Other than flight sims and Tetris, they were really the only video games I ever got into.

In the early 90s, some friends and I wrote text-based adventure games of the Infocom style, like Zork or Hitchhiker. There was a package called Adventure Game Toolkit (which is still available for download!) that let you script text games in a simple file, and run them on all sorts of different machines. This was great, because it let you concentrate on the game design, rather than the menial programming.

So, fast forward twelve years or so. Sure, I was programming commercially back then, but my software design skills have improved over time. I'm going to try my hand at writing a graphical counterpart to the old AGT. And, to make things interesting for me, I'm targetting two very different systems: desktop computers and the Nintendo DS.

I just bought a DS, you see, and there's a thriving homebrew software community around it. It's a neat little machine, with neat programming problems to solve — and, with a pretty damn powerful processor, a touchscreen, and good sound, it's ideal for this sort of game.

And once I get the engine done, the exact same game data will run on both systems. Hell, I might even make save-games transferrable — the DS has wifi, after all — so you can play on whatever's convenient.

The programming will be a good challenge, but this lets me work in a number of areas, since I'll need graphics and sound as well. I'm designing a game as an initial use for this engine, and with any luck it will be quite neat: an intricate, dark, and twisted plot; hand-drawn graphics that swing between comic strip and surreal Vasquez-esque scenes; a multi-path plot that gives a good feeling of player freedom.

The scary thing, to me, is that I think I can pull this off. I've got some test graphics done, and discovered I've gotten pretty good at drawing people. I've put some basic music together, somewhere between Collide and Razed in Black. And as of yesterday, I've got a little guy walking around in a room — the basics are in place.

We'll see if I lose interest. It happens. :-)

Preliminary Game Synopsis

You play as Evan White, who's fresh out of college and has returned to his hometown to look for work. He runs into his old flame and some other folks he knew from way-back.

And, at about the same time, murders start — gruesome killings that have the town shocked and on edge. The local police force is out of ideas, and the FBI takes up the case. They take a particular interest in Evan, who arrived in town about the same time.

Evan, meanwhile, seems to be going slowly insane. He keeps seeing things. Weird things. And some crazy homeless guy is following him around yelling at him.

Things get weirder from there; I'm not telling where I'm going with the plot, in case some of you decide to try to play. Anyone who's read my fiction knows I love to put normal people in really twisted circumstances; you can expect plot twists, surprises, and character interaction similar to my novel (though it won't give you clues to the plot). (Matt, if you're reading this, yes, I will be playing with your emotions.)

2006-04-09

Social responsibility starts with your wallet

Those of you who talk to me in the real world have probably heard me say, more than once, "Oh, I don't give money to [company]." Frequently, the company is Sony, but there are a few others.

A lot of folks have written this off as a political statement or a personal grudge, which is accurate — to a degree. In this post, I'll try to explain where I'm coming from.


Corporations are, at their core, a power-amplification device. They're an emergent phenomenon; you can get a lot done with a group working together, but if you organize them into a legally-recognized entity, you gain special powers. Corporations are more than the sum of their people, and are treated as such by international law.

One of the most obvious effects of this: one can, when wielding a corporation, do spectacularly nasty things — like defrauding all of California's electricity users, killing lots of people in India, or deliberately maneuvering through payroll law so you can avoid paying your janitorial staff even minimum wage. (For those playing along at home, those were Enron, Union Carbide, and Wal-Mart, respectively.)

When at the helm of a corporation, the humans responsible for these actions get away with disproportionately small penalties. Stealing $500 from a convenience store might get you a few years in prison; stealing millions, like the Enron guys did, typically nets you about eight months. Killing someone in most states may well get you executed, but when Union Carbide killed thousands in India, the punishment was certainly not proportional.

This isn't a post about our legal system, however. My point is that corporations can do heinous things without significant punishment.

I don't fall into the typical trap of insisting that all corporations are evil, just as I don't think all politicians are evil. Instead, I'm interested in how we can keep the corporations on the straight-and-narrow.

There are three forces that can keep a corporation straight:
1. The goodness of their hearts.
2. Legal regulation.
3. Market forces.

Some corporations stay 'good' out of policy, or out of some sense of moral responsibility, and I applaud them (and their directors) for this. In an ideal world, this is all we'd need. However, this is the weakest of the three forces; in our stock market, an economic system governed by carnivorous chickens, a lot of companies find themselves financially forced to cut ethical corners in pursuit of shareholder value. (Some have pointed to my employer's entrance into China as an example of this, though I believe we have higher goals in mind.)

Moreover, corporations are made up of, and guided by, humans — and humans are notoriously flexible in the ethics department.

The next force, legal regulation, can be effective at times, but is exerted by a fundamentally ineffective (and frequently corrupt) system: politics. Moreover, as a conservative (of the old and nigh-forgotten variety), I don't believe legal regulation is an appropriate way to guide corporate policy, or enforce morality in general.

So, that leaves us with the third force: the market. The market can exert incredible pull on a corporation, for both good and evil, because it's the only force that can hit them directly where it hurts: the pocketbook. Too often, market forces drive a corporation to sacrifice principles and cut corners, as I mentioned above — it directly counteracts the "goodness of their hearts" force, in practice.

But I don't believe this is intrinsic — I believe it's a side effect of our current economic system, which could probably use some work. And such change starts with the individual.

A number of companies do things that I don't like. Let's take Sony as an example.

Every Sony product I've bought in the past decade has been limited in unexpected and disappointing ways, almost always to prevent me from doing something within my legal rights, but which Sony feels would be inappropriate. For example, I loved my MiniDisc player, but it had all sorts of restrictions and misfeatures to prevent me from stealing music. (The fact that they also prevented me from using the player in a convenient fashion, or working on my own music, was lost on them.)

The rootkit debacle of a few months back is another good example. In their effort to keep evil consumers from stealing their content, they eliminated the user's Fair Use right to back up their music or move it to their computer or portable player — and, while they were at it, installed a trojan horse on the computer to watch for and prevent actions that Sony didn't like.

Individuals who release such trojan horses into the wild are typically faced with fines in the millions, and jail terms. In some cases, they're legally prevented from using a computer for several years. Sony received no criminal penalties, and the only civil action I'm aware of is a class action suit that may wind up awarding $5 or so to those affected. Yay.

Sony has worked to prevent homebrew games and media from working on the PlayStation Portable. As a programmer, I'd probably buy a PSP if I could write my own software — and moreover, I already own a number of DVDs and have no interest in repurchasing my movies in the UMD format.

I don't like these policies, and thus, I don't give Sony my money. This is basic capitalism. Am I, a lone person, likely to make any difference? No, but it's my responsibility stand up for my principles by helping to guide the market.

Adobe is another good example. When Dmitry Skylarov broke the encryption on their PDF files, they arranged to have the FBI throw him in prison when he entered the country to give a talk. When Ed Felton of Princeton planned to present his analysis of the encryption at a conference, they threatened to do the same. This is totally unacceptable, and as a responsible consumer, I cannot support these actions by giving Adobe my money. This is a harder one, since Adobe has the only high-quality photo manipulation software on the market; I've been trying alternatives for several years, and I keep falling back to my (now painfully out-of-date) copy of Photoshop.

This is not a grudge, or some sort of kneejerk political activism. This is the basics of responsible capitalism. I believe the market is the only effective way to keep corporations from doing stupid things — and the market is made up of consumers like me.

(Of course, most of these consumers don't really care about this stuff, so change seems unlikely...but I can hope.)

2006-04-08

Hilarity.

It's been a couple weeks of new experiences for me, which is unusual.

I slept at the office for the first time. Not, as it might have been in years past, because of a pressing deadline or emergency issue. No, I slept at the office because my apartment was filled with deadly gas (another first).

I was awoken at 1AM by my carbon monoxide alarm. (...well, okay, roused, not awoken. I was brushing up on the scientific rebuttals to the moon landing hoaxers, because some people are idiots and I attract those people.)

Step one? Hit the thing until it stops screaming. I've had innumerable false alarms from smoke detectors in the past, so I figured I'd silence the thing and see if it stays silenced.

It didn't.

Okay, then...that left me with two possibilities. One: I'm feeling tired and fuzzy because it's ONE IN THE FREAKING MORNING, and my headache is the same nagging headache I've had all day. Two: I'm feeling tired and headachey because I'm being slowly killed by an invisible odorless gas.

I popped the detector off the wall and checked its instructions. "If you're feeling sick," it said, "call the fire department and leave immediately. If you're not feeling sick, open some windows and go back to sleep. Sucker."

Well, as noted above, I wasn't equipped to choose between those. So, I threw together an overnight bag and headed to the nearest available crash space: teh GOOG. This turned out not to be a brilliant idea, as our facility is basically 24-hour and it was not quiet. But at least we have showers.


Saw Al Gore speak yesterday. Wouldn't have considered going, were it not for Wil Shipley's very positive review of the talk. I had the same initial reaction as Wil: "Oh, goodie, I can go listen to the man too boring to be elected president."

He was positively riveting. His presentation was alternately hilarious and terrifying. I was floored. (Not to mention that he had the single best slide-to-speech synchronization that I've seen outside my own presentations. Just when I thought I was the only one who cared about the details.)

As a self-styled hanger-on of the scientific community, I've been aware for some time that the "controversy" over global warming is manufactured by the "liberal" media and the politicians — the scientific consensus that we're really screwing up has always been pretty solid. Gore made this point, and others, in a very clear, very punchy fashion. Go Al. (Psssst. Hey, if you try running for president again, but with the personality? Yeah, might work out.)


Got Windows XP up and running on my MacBook Pro. The Joy of Tech guys said it best. It works great, and is very speedy, but I'm really not sure what to do with it. The OS doesn't even come with Flash, much less any productivity software or development tools, or Java.

I see why Windows users play Solitaire: unless you want to dork around in RegEdit or Hyperterminal, it's about all the damn system comes with.

But, I had to see it work. And it does.


I admit, at the end of last week, I was honestly considering quitting my job. (Not that I had any idea what I'd do then, having moved to a new state and all.) I won't go into detail — the information leak ninjas don't appreciate that — but suffice it to say that the issues I had with Choice, in terms of poor testing and development rigor and lack of coherent design, are magnified where I am now. There's a sense that rapid system expansion and solid design are mutually incompatible, which I've proven false any number of times — it implies that design is a slow process separate from coding. Strangely, these same folks are proponents of XP (eXtreme Programming), which basically agrees with me on this.

Fortunately, as I was reminded this week, that's a feature of my current location in the company, and a temporary thing at that. So, no need to do anything rash. My current program for fixing these issues is as follows:

1. Stand my ground. I really do know a lot of the stuff I espouse, quite well. I've been backing down in arguments because I'm new at the company, and because I have a lexicographical impedance mismatch with the CS folks. There will be no further backing down. (Except, of course, if I'm beaten or refuted. There are a large number of people here that are smarter and/or more experienced than I, and when they say I'm wrong, they're probably correct.)

2. Keep my manager abreast of these issues, so that it won't come as a shock when I move to step 3.

3. Finish the project and, if change isn't in the wind, move somewhere else in the company.

So, I'm going to give this a shot and see how things go. Everyone on my team is brilliant and capable, but we're having some paradigmatic clashes. Stay tuned.

2006-04-02

Iiiiiit's Stupid-Time!

I woke up this morning to find all my clocks arguing.

The smarter clocks had advanced an hour; the older clocks hadn't changed. And, I admit, some of them had been wrong for weeks.

This was my first indication that the government-mandated consensual temporal hallucination had kicked in. Yes, it seems Daylight Savings Time has started.

DST still doesn't make any sense at all to me. Arizona has ludicrous quantities of daylight, with the sun rising at or before 5 in the summer, so I've always been of the school that says "If you want more daylight, get the hell out of bed earlier."

But no, in this state we "get more daylight" by agreeing to lie about what time it is.

I know this is wrong. Time as I use it is relative to a cesium standard set up by NIST, or at least to one's distance from UTC.

I also understand that this doesn't get you "more daylight," in that the earth's tilt does not change. This, of course, tells us that stupid has no mass (unlike neutrinos); if it did, the massive shift in stupid in the northern hemisphere today might have actually altered the seasons.

So, what's the net effect of Daylight Savings Time?
1. It is darker between about "5" and "6" AM.
2. It is lighter between about "6" and "7" PM.

(There's an old saying about extending your blanket by cutting off one end and sewing it on the other.)

I really don't see the practical benefit of this. Do the stores I want to visit stay open later now? No, now they just close before sunset.