Wednesday, August 06, 2008

Baghdad by the Bay

I love San Francisco.

Even when it tries to kill me.

My routine is quite a bit different now than it was a month ago. The day still starts at 6AM, but instead of a 35-minute bike ride, my transit now starts with a light rail hop, then an hour on Caltrain, then a mere 5 minutes or so on bike. And that riding feels incredibly different. This is the first time in my life that I've ridden in a strongly urban area, let alone during rush hour.

But it isn't bad, of course. Not even close. Just different. My rides used to be pretty solitary. In those 35 minutes, I sometimes would not pass a single other rider. By contrast, the area around the station is simply teeming with activity. From the moment my wheels touch pavement, I am constantly within sight of at least several other riders, sometimes an entire pack. That does wonders to offset the stress I feel from crumbling pavement and a steady stream of automobiles. I feel more visible and, in a weird way, empowered than I am used to feeling. By now San Francisco drivers are well trained to expect bikes on the road, so they tend to look out for us, and even if they don't, it's good to know I have potential help around if I need any.

The amount of support around here is really interesting. Bicyclists form a very politically powerful group in the city, and make their influence felt through both hard and soft power. In hard power, they can put pressure on the city to enact policies that support their goals, such as increasing the number of bike lanes, shutting certain streets to auto traffic, etc. And, simply by having a large and passionate group, they are able to make even more important changes on their own. One of the best examples is the free bicycle valet parking at the San Francisco Caltrain station. I'm still amazed that this even exists. For no charge at all, you can bring your bike in to a tiny store located immediately adjacent to the Caltrain station, and they will store it away for you. The process is incredibly quick. If nobody else is in line, it takes about 15 seconds to drop off your bike, and maybe 40 to get it back. On the few occasions when there has been a line, the patrons have been extremely kind, and will let someone cut in line if they need to catch a train that's about to leave.

I really want to do something for these guys. It's a private enterprise, albeit one providing a public service, and they evidently make their living through operating as a real-life bike shop. They mainly sell foldable bikes, which are very popular among commuters, along with a small but thorough collection of cycling accessories like rain gear, helmets, etc. Probably the best idea/service they offer is a tune-up shop. You can drop the bike off, ask for what you need (derailleur adjustment, flat tire repair, whatever), and it will be done when you come back and pick it up.

The net effect is that this feature has allowed me to commute a very far distance with extremely low stress. Bicycle cars on Caltrain tend to be extremely crowded, and sometimes the conductors have to turn people away. I'd be happy to rent a locker, which you can find at every Caltrain station, but supply has not kept up with demand and all the major stations are sold out. If it wasn't for the good folks at Warm Planet, I'd need to wrestle my bike on and off the train every day - make that TWO trains, both the Baby Bullet and the VTA - and generally need to lug around a chunk of metal for not much added benefit. As it stands my bike stays in the city, I use it exactly how I want to, and can blissfully enjoy the rest of my commute.

It isn't for nothing that San Francisco was recently ranked America's #2 "Green City". I think it takes a whole lot of different factors acting in concert for a green city to really become possible. On the one hand, you do need public infrastructure in place - we individuals work through the government to set up systems of trains, parks, recycling programs, and other massive efforts. Entrepeneurial businesspersons can add to the party with flexible work schedules, innovative new technologies, energy efficiency, "green housing," and kick off economies of scale. Ultimately, it is a region's individual citizens who must make the lifestyle choices within the framework provided by the region and decide to ride the train, take the job close to home, start a compost pile, or replace their light bulbs. Individual action is necessary, but only becomes feasible if the local environment supports it. That's what's so special about the Bay Area: it's a perfect storm of big socialist government (San Francisco), genius tech-savvy business (Silicon Valley), and left-wing tree-huggers (Berkeley).

Oh, yeah: I had my first near-accident in the city. How exciting! It happened - or rather, ALMOST happened - at the intersection of 8th St. and Bryant. This is a funky traffic circle, where five streets come together with stop signs and traffic runs one-way within the circle. I was actually doing the right thing - I came to a complete stop, pulled in, and started doing the circle to the right, though if this was a standard intersection I would simply have turned left. As I was passing the second intersection in the circle, I realized that (a) this huge car had come up behind me; (b) this huge car was passing me; (c) no: this huge car was attempting to exit the traffic circle by passing through the space that I, the lowly cyclist, would momentarily be occupying in my orbit.

There wasn't any time for rational thought. I think I tacked a bit to the left, and stopped pedaling, though I don't think I actually hit the brakes. I remember thinking "Oh, no..." and being convinced that I would slam into the side of this car, my only consolation being a nice marker left in the metal side. I was fortunate, though, and missed it by an inch. I continued along the traffic circle, wobbily, and made my desired exit onto Townsend.

Since then things have been pretty smooth - knock on wood - and that experience seems to have been an aberration. After some contemplation over the best lesson to take from it, I've decided to keep my existing route. I remain convinced that following traffic laws and acting like a car should still be the safest thing to do, as opposed to turning into traffic or riding on the sidewalk. However, I do now check over my shoulder a few times as I ride the circle, and I now ride closer to the middle of the lane. If I'm feeling charitable, I think that the driver believed that I was going to exit at the same spot as him, in which case there would have been plenty of room and no collision. I'm trying to be more visible and make it clear where I'm getting off.

Cycling aside, the city is treating me well. I still just feel like I'm only experiencing a tiny slice of it, the industrial region that stretches from 4th to 9th in SOMA. Still, even in there, there's an energy and vibrancy that feels wonderful to me. Example: at my previous job, if we ever wanted to get food for lunch, we would need to pile into cars and drive for several minutes. Here, we just head out the door, and have decent options within a single city block, and great options within a three-block radius. There are lots of cars out there, but even more pedestrians, many other business folks rushing around to do their important businesslike things. Even going to Trader Joe's feels weirdly fulfilling. They have a TJ's, which is on the ground floor of an incredibly dense commercial block, right next to the three-story Mercedes Benz dealership. I dunno, I guess it's a little thing, but it makes me happy to go there.

I do need to find more excuses for staying in the city and/or exploring other places. After three years in the region I have a decent grasp of the city, but still nowhere near what I would want. Hmm... I guess I would break it down like this:
Neighborhoods that I know well and can navigate without a map:
North Beach
Chinatown
SOMA
Mission Beach

Neighborhoods that feel familiar and comfortable, but I haven't traveled well in:
Japantown
Inner and outer Richmond
Nob Hill
Russian Hill
Tenderloin (not so much "comfortable")
Pacific Heights
Haight-Ashbury

Neighborhoods that I feel like I kind of know, even though I haven't really spent much time there:
The Mission
Inner and outer Sunset
Portrero Hill
Castro
Twin Peaks

Neighborhoods I don't know well at all:
The Marina
Cow Hollow
Noe Valley
Bayview
Hunters Point

There's a lot to learn!

Lately, I've been feeling like I'm a horrible person because I get happy when I read about the housing market. I do feel bad for the people who are being caught by this mess, but at the same time, part of me wants prices to crash down to a reasonable level so I can buy a nice little Victorian place in the city. Hey, I'm just sayin'.

At the same time, I'm learning to be a little more... realistic about what to expect. While I still love the idea of living in the city, I'm also recognizing the advantages of San Jose. Besides the obviously lower cost of living (hah! I never thought I would get to write that), San Jose also is sunnier. It's also warmer, although that's kind of a wash for me - during the summer months, it would be pretty nice to take 15 degrees off the top. On the other hand, there are other benefits to the city that are hard to take advantage of from afar but that would be quite nice if I lived there - a ton of free and cheap options for music (something that sadly isn't part of my life right now), the possibility of being even more car-free, more cultural institutions, and general coolness.

It's also been interesting to think about the differences between cultures. I think this is true of almost anywhere in the country, but societies that seem homogeneous from the outside seem anything but once you get closer. For example, in my present situation, I'm used to (and guilty of) people talking about "the Midwest". Well, as Midwesterners know, there's a world of difference between the average person from a small town in Missouri and the average person from Chicago. And an Illinoisian (? what's the word for this?) would recognize a big gap between Wheaton and Chicago. And a Chicagoan would scoff at the idea that someone from the North Shore would have anything in common with someone on the South Side. And on and on.

Northern California is just another example of that. From my old perch in the Midwest, I had this fuzzy idea of the "West Coaster," who was a friendly and laid-back person. Generalizations are fine, but people from Silicon Valley do seem to be more result-focused, more likely to be obsessive about a few particular topics, and more likely to enjoy their toys. San Franciscans appear (in general!) to be more idea-focused, more likely to pursue a wide range of interests, and more likely to enjoy socializing. In all honesty I'm probably more of a SV person at heart, but I enjoy SF people.

Back to the commute - it's interesting all the little ways that it affects my lifestyle. Because I get home so late, I need to be really careful about what and how I eat, because I have a lot fewer hours now between supper and bed. Making dinner is now out of the question, so I do my cooking on the weekend and heat leftovers during the week. The overall rhythm is the same as before, the difference is just that now I need to plan ahead a little more.

I'm also reading even more than usual, which is good. It's an eclectic blend of stuff... novels and nonfiction from the library, news on my iphone, and occasionally a newspaper that someone left lying around. I recently acquired a MacBook, so it will be interesting to see how that affects things. I might try and do some more writing, or maybe experiment with tethering my iphone and do some work that way.

Anyways, that's it from me for now. Apologies for the long gap between posts - as you may expect, life has been a little hectic. Hope everyone is doing well! Enjoy the few remaining months before the election!

Tuesday, July 29, 2008

Only in San Francisco

If I wasn't working in the city...

... I wouldn't have run into enthusiastic Lyndon LaRouche supporters while trying to board Caltrain. Did you know that George Soros and the British are in cahoots to destroy America?

Thursday, July 17, 2008

Sam & Max Rock My World

My first love in gaming was adventure gaming.

I played a handful of other games prior to that. My first memory of a computer game was some space combat thing that I played against another person, losing horribly yet feeling utterly fascinated by it. Whenever our family would visit someone who had a computer, I would try and conduct what I thought were subtle investigations to determine whether (1) they had any games installed, and (2) I could play any of them, please? In this way I encountered a few other genres. These included an action game where you run a moon buggy along an alien surface, leaping over pits and rocks; the classic Where In The World Is Carmen Sandiego?; and a game based on Indiana Jones and the Temple of Doom, a game based on a movie that I still have never seen. And my elementary school was blessed with a computer lab full of Apple II computers that served up educational offerings that would serve in a pinch as games: Oregon Trail, Number Munchers, Lemonade Tycoon, and a few others.

But all of those games were transient, undependable things. I was at the complete mercy of others to supply me with opportunities to play. What I craved was something I could mooch off of more regularly. And, eventually, it came, in the form of my dad's work computer. Because I was at church so often - at least every Sunday and Wednesday, and occasionally on other days as well - I was able to grab some time in front of the computer while waiting to go home or if the adults around me were otherwise occupied.

I can still vividly remember the games on that computer. One was hangman, a fairly straightforward implementation with a the classic stick figure man. Far more fascinating to me, though, was a game called CASTLE. This game used graphics, but the graphics were composed entirely out of ASCII characters. The player is trapped inside a giant castle and needs to explore its various rooms, collecting items, uncovering secrets, battling monsters in a quest to escape.

It's hard to overstate how profound an impact this game had on my consciousness. It had the most primitive graphics you can imagine, and yet my eager mind filled them in with great detail. A § marked a snake, and I would feel my heart pound when I saw it slithering towards me. Your character was marked with a white smiley character, and onto him I projected my sense of heroism and bravery. This should not be confused with the black frowny character, also known as the daunting Ogre, one of the most fearsome foes you could face.

The game required a mixture of memory (recalling where the items were), reflexes (you attacked enemies by running into them, but had to be careful of how much damage you took), and problem-solving (determining how to use the various items you had collected). I kept playing this game in the little snatches of time allowed to me, getting further and further in, and yet it took years for me to beat the game. During this time it burrowed deeper and deeper into my consciousness. There would be nights that I would lie awake in bed, thinking through parts of the game and trying to figure them out... how should I escape the dungeon? Was I sure there wasn't anything more hidden in the garden? I have fallen in love with many games since then, but this is one of only a handful that I have actually had dreams about, and it proved immensely influential on me as both a gamer and a programmer.

I still remember the epiphany I had when, years after I started playing the game, I realized that there was an entire dimension to the game that I had not yet encountered: elements that were not visible on the screen. Out of pure boredom one day I began typing into the game, and found that if I typed "look", it would describe the room's contents to me. I could get even more specific and try to look at particular items within the room. In this manner, I finally found a key that was "hidden" in a desk, inside a room that I had visited scores of times previously. With this found, I broke outside of the rut I had been stuck in for so long and tore through the game, finally wrapping up the unsolvable puzzles and realizing the significance of previously baffling items. At long last I gained access to the magical elements necessary to open the castle's great gate, and triumphantly walk out, crowing my victory aloud.

Having beaten this game, I felt what would become a regular emotion for me when it comes to gaming, the mixture of elation and regret. I felt an undeniable surge of accomplishment - this feeling, I am convinced, will never make sense to my parents; why should one feel proud about a virtual achievement in an imaginary world? - that is matched with a sadness that the fun is over, the story finished. In the same way that I always wanted to continue the plot past the end of my favorite books, I wanted to learn what happened next in CASTLE. What do you see outside the castle walls? Are there more monsters out there? Does the castle guard a village, and if so, what kind of people live there? Do you know any of them?

I think that this sense of lingering need is a big part of what set me down the path of becoming a programmer, in the same way that my love of reading sparked a need to write. The game is over, but I can use my imagination to think of what comes next, and use my skills as a coder to, however crudely, make it come true.

As I've previously noted, another influential moment in my gaming/programming history was Great Adventures II, a floppy diskette with some purely text-based adventure games. These had even less in the way of graphics than CASTLE, but they had two advantages. First, I relied even more on my imagination to fill in the game, and so could create evocative worlds in conjunction with the white text on a black screen. Second, they were far easier to imitate, and so they spurred me on my investigations into QBASIC even as CASTLE remained an influential target that I didn't even hope to imitate.

Update: Wheee! I love the Internet! Turns out that Castle Adventure is available online. I haven't downloaded or played it yet, but will probably do so soon.

So those were some good times. I should note here that I was hardly living on the cutting edge of gaming; text adventures have been around since the 1970's, and there were far more powerful computers out there which supported games far more advanced than what I was playing on that wonderful old Epson. That said, while I enjoyed the world I was playing in, I knew that there were more out there.

I'm still a little fuzzy on how exactly I was first introduced to Sierra's graphical adventure games, but am certain that one of my earliest contacts came through a young boy I knew at church with the last name Weeks. I want to say his first name was Troy or Tony, but that has sadly been lost to time. Anyways, while Sierra had supported a variety of franchises that seems staggering in retrospect, I mainly knew them for a few: Hero's Quest (later Quest for Glory), Space Quest, and King's Quest. Of the three, the original Hero's Quest was the biggest for me.

This was a MASSIVE game. Unlike Great Adventures, where nearly a dozen different games fit on the same floppy, Hero's Quest came in a box with ten or twelve disks. If you didn't install it to your hard drive (and you might not; in those days, 3MB was a lot of space to clear up for a game), you would be swapping disks every minute or so.

Beyond the size of the game, it was gorgeous as well. Well, at least to my eyes. To a modern person's perception, it looks blocky and crude, but I saw a swirl of colors, exploding what was possible in an adventure game. Sneak past a darkened alley during night and be drawn in by a mysterious flashing light... wander through the lush green forest... spend a few minutes relaxing in Erana's Peace, not doing anything, merely enjoying the beauty and listening to the superb music by Mark Seibert. Much like CASTLE, this game blended some elements of RPG and adventure games. I didn't really know those terms at that time, though... all of gaming felt new to me, with limitless possibilities, and I just knew that I enjoyed it.

Fast forwarding slightly... Sierra remained the gold standard for me throughout elementary school. The games were expensive and the newest ones were out of reach; new games cost $50 (and remember, this was nearly 20 years ago), and my current computer was never capable of running the latest and greatest. Still, whenever I could beg or borrow one from a friend, it would become an obsession for the weeks it took to beat, and if I could, I'd continue to revisit and replay it. Sierra games were fiendishly difficult and punishing, often providing a ridiculous number of possible deaths. On the flip side, though, their inclusion of a scoring system added to replayability; perhaps you did beat the game, but if you only got 450 out of 500 points, you would be incented to try again and find the other parts you missed. And these things were chock full of hidden easter eggs and little jokes. During the golden years, the graphical images on the screen were matched with a textual interface for input, and the programmers could get very creative about what you could type in that box. In the same way that CASTLE taught me to look at everything and use my words, Sierra games were always rewarding the player who took the time to deeply explore the world and type to it.

Most people of my gaming generation agree that Sierra's gradual decline began when they switched from this text/graphic hybrid to an all-graphic interface. This switch began with King's Quest V, and was matched with Quest for Glory III, Space Quest IV, and so on down the franchise line. Severing the traditional bond with classic text adventure games, Sierra now asked players to interact with the world using only their mouse. Early versions had you choose between a selection of iconic verbs (Open, Talk, Take, etc.; Space Quest added whimsical and useless verbs like Lick and Smell); later games would be even more "dumbed down" and use only a single click to perform any action.

For old-school adventure gamers like me, the implications of this switch were dire. The games had become less challenging. They presented us with a discrete set of obvious actions to choose between rather than requiring us to conceive of possible actions. The opportunity for easter eggs dropped way down. (Although I never tried this, persistent rumors insisted that if you typed swear words into the text box, the game would swear back at you. No such system was possible without the keyboard.) Increasingly, these games became more like interactive Hollywood experiences than "real" games... players could advance through a more or less linear plot, appreciating what the creators had laid out for them, but not really participating in the sense that I had grown familiar with. Your role became that of a consumer, plucking morsels off a proffered plate, not that of an adventurer blazing your own path forward.

Meanwhile, in a seemingly parallel universe, were the Lucasfilm games. I was only tangentially aware of these games, primarily through Maniac Mansion, which I only knew via its NES version and so didn't really consider it as a counterpart to the PC adventure games I'd played. I would gradually come to learn more about this company and the different swing they had on gaming.

Lucasfilm was a little late to the party. It's hard to conceive of someone being much earlier than Sierra, which, as I would learn by reading Part 3 of Hackers, more or less coincided with the rise of the IBM Personal Computer. Lucasfilm's interactive games division sprang up later and quickly blazed their own path, unhampered by the legacy of text adventure games and fully embracing the graphical medium. Their signature series, following the gems of the late 1980's, was the Monkey Island series.

From the beginning, these games embraced the non-typing ethos that Sierra moved to. Even if you didn't play with a mouse, you still played the game by moving a cursor around the screen and selecting what to do. This typically required selecting one of a selection of typed verbs, covering the adventure game classics like "Look At", "Take", "Turn On", etc. You would then click on the item on the screen you wanted to interact with, and possibly repeat the process until your intent had been fully expressed ("Use the chainsaw on Chuck the Plant.")

There were tonal differences with Sierra as well. All of the Lucasfilm games (later LucasArts) were funny. Sierra games always had an element of humor, but the overall tone varied wildly based on the franchise. Space Quest games were outright silly and often laugh-out-loud funny; Police Quest could get quite dark and morbid; King's Quest would have occasional lighthearted moments and sometimes jokes. Virtually every Lucasfilm game, in contrast, was a comedy... oh, they had different genres and styles, but each was clearly designed to entertain you.

And therein lies the crux: what is the goal of playing a game, after all? As I grew older and my circle of experience widened, I increasingly met friends who loved Lucasfilm games and couldn't stand Sierra games. Weirdly enough, their reasons were the same as mine. It was impossibly to die or get stuck in most Lucasfilm games. Lucasfilm games were silly. Sierra games didn't have as many hints about what you needed to do.

So what was going on here? The most obvious explanation, and one that I cannot immediately discount, is that my love of Sierra games was a certain expression of masochism. On some level I enjoyed the frustration of NOT solving puzzles, of getting stuck, of losing and dying. All of these trials were quickly forgiven and even turned into virtues once I had beaten a game, because then they added to my (arguably misplaced) sense of pride. "Sure, you may have beaten Monkey Island, but I beat a game that was way harder! I died over a dozen times!"

Is this a valid attitude to take? I'm honestly not sure. I will say that I now am less confident that "harder" necessarily means "more challenging". When I go back and play those old Sierra games, I am sometimes struck by how nonsensical some of the challenges are. If you need to solve a riddle in Conquests of Camelot, then I feel like I had to stretch my mind and think, and in that sense the trial is its own reward. On the other hand, too many early text adventures rely on the puzzle of "think of the exact word that I, the programmer, am thinking of or I will not accept your command; and no, synonyms are not allowed"; too many later graphical games force you into a maddening game of "find the hidden pixel", where unless you click on the EXACT CORRECT SPOT - a spot that might not look any more significant than anything else on the screen - you cannot solve the puzzle. In my opinion, "puzzles" such as these exist only to artificially increase the game's difficulty and increase the average playthrough time without actually making it more challenging or interesting.

I do have to say that, by this new yardstick, Lucasfilm games age extremely well. Some of the best gaming I've had of the last few years has been from old gems like Zak McKracken and the Alien Mindbenders and the transcendent Grim Fandango. I've had to admit that my earlier biases were, well, not that great. While Sierra was incredibly influential on me as I played them, I find that today I far prefer Lucasarts games.

Which brings us to the topic of this post: Sam & Max.

I never played the original Sam & Max Hit the Road, but as with the best computer games, it has become part of our collective unconscious, and I feel like I know these characters and what makes them tick. The premise seemed simple and lovely: a psychotic rabbit and cheerful dog are private detectives who have zany adventures. What's not to love? Add a monkey and it would be perfect.

I was recently kicking around on Steam looking for something to play. Tangent: Steam is consistently about 90% of what I want it to be, but just far enough off the mark to keep me from actually using it. Most recently, I was prepared to buy one of two games, but could not justify purchasing either since each cost $10 more on Steam than they would on Amazon. (In case you're curious: The Orange Box and Bioshock.) Buying from Amazon would give me real CDs and a manual and not require me to check in with the mothership every time I feel like playing a game. I would sacrifice all these for the convenience of having a game right now, but I won't also pay another ten bucks for the privilege. It's especially annoying since I know that the distribution via Steam costs much less than through conventional channels; there are no factories needed to punch out physical materials, warehouses to hold boxes, clerks to stock shelves, or salesmen to run the register. Sending bytes is cheap, and they don't seem to be passing that on to the consumer.

But not to worry, because there are still gems to be had in Steam, the biggest of which is Sam & Max 104: Abe Lincoln Must Die! Available for free, it has provided me with some of the funniest gameplay I've ever come across in my life, and has good puzzles as well.

Backing up a bit: Sam & Max was resurrected outside the Lucasarts stable by Telltale Games to serve a relatively new and growing business model: episodic content. The idea here is to move users from one-time purchasers into a reliable and recurring revenue stream. In the past it has been used for things like expansion packs that allow a game's fans to extend their experience with the game. In Sam & Max, though, each "episode" is a complete stand-alone game. They're smaller in length than you would expect from a full-priced retail game, but each has a high level of professional polish. This model seems like it may be the best hope for adventure gaming. People don't really want to drop a lot of cash on a big game that they may end up hating; it seems more likely that they'll be willing to do an impulse buy for some entertainment that will last a few days or a week.

As far as I can tell the free episode of Sam & Max is comparable to the paid versions; at least, online reviews place it within the same general ballpark of quality. And after spending several hours going through it, I'm tempted to grab one of the other episodes the next time I feel a similar hankering for good, funny adventuring.

Let's kick off the pseudo-review proper with some

MINI SPOILERS

I feel like this game was custom-designed to appeal to me. It includes:
  • Satirical political humor.
  • Paranoid ravings.
  • A psychotically violent wisecracking sidekick.
The first item may only apply to this particular episode, but the others are so well done that I can feel reasonably confident that I would enjoy other Sam & Max content nearly as well.

Let's start with the controls. The game is fully in the mainstream of current adventure gaming, with a simple mouse-based interface. The cursor easily identifies which items in the world are valid for interaction, and will take a single action when you click on them. Inventory management is very simple: you can select one item from your trenchcoat and then try placing it within the world. When you enter conversations, you can select which statement or question to utter. The interface is complete, well-designed and attractive.

One touch I really like: you start the game with a "big gun" in your inventory. You can whip it out at any time and start shooting things in the world. As I suspected early on, it is totally useless for solving puzzles, but it feels incredibly therapeutic. When you get stuck and frustrated, there's a lot of satisfaction in spraying lead at everything in sight.

Violence is actually a really interesting thing to consider when thinking about this game. Looking back over it, it feels incredibly violent. Pretty much every sentence out of Max's mouth involves some flavor of carnage; Sam cheerfully aids and abets this tendency; and the game ends in a glorious spray of property damage and annihilation. And yet, the game is only rated "T", and there is absolutely no blood to be seen anywhere. When you sit down and review your actions, you realize that (other than playing with the Big Gun), hardly anything you do in the game is violent. So it's really a case of the tone and sensibility being driven by violence without it being an integral part of the plot. Anyways, I just thought that was interesting.

It's practically a hallmark of Lucasarts games that a lot of intriguing items in the game will be purely useless red herrings. That tradition continues here. One of the first sights you see is a rat lounging in an inner tube, being observed by a periscope. Wow! What crazy, weird stuff! I bet that's really important! Nope. From start to finish, no necessary action in the game involves these things. And yet, they do serve a valuable purpose: they're funny, they give you more things to interact with, and broaden the world by populating it with more interesting characters, making your path less immediately obvious.

On the flip side, the inventory in this game is far less extensive than earlier games. Throughout the entire game there are fewer than ten items you can pick up, and I think each one of them (except for the big gun) is useful. This is a place where the game benefits from becoming pared down: item combinations lead to the most complex permutations in gameplay, since any item in your inventory could conceivably have an impact on any item in the environment. The limiting of focus helps diminish a player's tendency to desperately try randomly using inventory items when they don't know what else to do.

MAJOR SPOILERS

This game was just chock full of amazingly fun moments:
  • Decapitating the President of the United States.
  • Witnessing the gigantic animated Lincoln rampaging through downtown Washington, D. C.
  • Every single statement that Max makes during the presidential debates. My favorite is probably the joke he tells about the Pope.
  • Having a usable toilet in a game. Hey, I won't claim this is Ulysses, but still.
  • I will never forget the all-singing, all-dancing Secret Service calvacade of whimsy and nuclear annihilation.
Things I could have done without:
  • The governor characters. It seems like these may be recurring characters, and maybe I'd appreciate them more if I had the background, but as it was, they just came off as annoying.
  • .... it seems like there must be more, but I'm drawing a blank.
Insufficiently explored possibilities:
  • I love having the Big Gun, but next time, having it actually blow things up would be awesome.
  • Bosco's shop is filled with awesome stuff that you can't use. I hope that other games make more use of the stuff in there.
  • On a similar note, Sam & Max's office is a lot of fun. Still, part of the charm is the fact that there isn't a point to it. It would be a bit of a shame to learn WHY there is a bound and gagged man hidden inside their closet.
  • The war room is totally worth it once you finally get in, but still... there are so many other things I would love to have destroyed!
END ALL SPOILERS
So: Awesome game! I highly recommend it to all. If you loved adventure games in the past but have fallen out in recent years, give it a whirl. If you've never tried one before, this is one of the best: a funny, interesting game that makes you think without frustrating you. I can't claim that everyone will appreciate its warped and deranged sense of humor, but I think readers of this blog are more likely than the average population to enjoy it. Bon apetit!

UPDATE:
So I went ahead and downloaded Castle. What a great trip down memory lane! At the same time, it's pretty amazing how much your memory can drift over fifteen years. A few corrections to what I wrote above are in order:
  • Your character is represented by the "clubs" (i.e., the card suit) character, not the smiley face.
  • The smiley face is used by - wait for it - the ANGRY DEMON monster. Wow, I feel bad for having played this game in a church.
I doubt this game will mean nearly as much to someone who didn't play it in their childhood. If you want to give it a whirl, though, the key is to play it using DOSBox, a really good free program that lets you play classic DOS games on modern machines and operating systems. You can also google for Castle Adventure to find several options to play the game online or download a modernized update, although I haven't tried any of these. Setting up DOSBox takes a little bit of effort, but is well worth it if you think you might want to dive into retro gaming. When you start the game, press CTRL+F11 to decrease the game speed (labeled as "Cpu Cycles" in the current version in the title bar). Going down to about 800 cycles seems to be the optimal point for this game. You can actually make it easier by slowing it down even more since the monsters won't be as quick.

Friday, July 11, 2008

Let's Resume

Please be prepared for one or two work-related posts. Don't worry, we'll swiftly return to the more pointless direction of this blog.

Several years ago I started interviewing candidates for various engineering positions. This has been a fascinating experience for me. After you sit on the other side of the table, you gain a much deeper appreciation of how hard it is to find good workers, and also learn a lot about the wide variety of skills and personalities that are out there.

I have to admit that at first I was a horrible interviewer. To start off with, I was nervous, even more nervous than when interviewing for a job. (Don't ask me why. It's a very irrational reaction - when I'm conducting an interview, I have all the power and nothing to lose, but when I'm an interviewee, there's a lot more on the line. It probably has to do with my general discomfort with occupying a position of authority.) The more interesting problem, though, was that I was unprepared for the need to exert control over the interview.

I had previously been in many different interviews throughout my life, from my first application to Frank's Family Foods up through the whirlwind Week Of Too Many Flights And Interviews just before arriving at my current position. These were with many different types of companies, but all had one thing in common: I was the person being interviewed. Because of my personality and my sense of etiquette, I approached all these interviews like a friendly oral exam. I would wait patiently for my interviewer to ask a question, formulate a response, communicate it, make sure they were satisfied with my answer, and then wait for the next question. At the end, if prompted, I would ask questions of my own.

This process seemed completely natural and right to me, so before I started interviewing others, it didn't occur to me that some candidates might have a different idea of their role in an interview. As a result, when I started my first interview, I completely lost control. I had diligently prepared my list of questions, carefully calibrated to evaluate the candidate along a set of criteria, and started with an icebreaker about his ride to the office.

That was pretty much it.

He just kept talking, and talking, and talking. I'd nod and say, "Yes," or "Mmm-hmm." If he asked me a question, I would respond. I kept waiting for him to finish so I could start with the next question, but seconds stretched into minute, and soon I realized that I had lost him. At the same time, though, I have this really powerful inhibition against interrupting people, so it was very difficult for me to cut him off. I finally did so, way too late, and asked a real engineering question, only to have the experience repeat itself. I think I only got through a handful of questions.

After personally debriefing my performance, I came to understand what had happened. What this person was doing wasn't wrong or bad, just different. While it didn't fit well into my style of interview, it did allow this person to demonstrate aptitude, to direct the conversation towards the areas that most highlighted their skills and abilities, and demonstrated their ability at communication. From an unemotional perspective, it's interesting to think of the trade-offs that this style takes. The downside is that you don't learn what the interviewer is looking for, so you risk wasting valuable time on items that won't help your case and may work against you. On the positive side, it may allow you to mask certain deficiencies and focus the interviewer's attention on your most positive aspects.

So that was interesting to think about, for the next time I interviewed. In the meantime, I had a job to do. As an interviewer, my responsibility is to evaluate a candidate's technical and personal skills, and present my employer with a recommendation (whether to hire, where they would fit, and at what level). Those early interviews kept me from being able to make strong recommendations one way or another, since I wasn't drawing out enough information on the most important areas.

Fortunately, as with most things in life, the longer I did it the better I became. I've become more comfortable responding to a variety of situations, such as really quiet candidates, ones who can't write code, or ones who have been programming for longer than I've been alive. I also have become more comfortable in my role, which has led me to be more assertive, which ultimately is better both for me and the candidate. Now, I typically greet the interviewee, introduce myself, and give a brief overview of the process. It might be something like, "Hi, it's nice to meet you! My name is Chris King, and I'm a software engineer here. We have about 45 minutes for this interview. I'll start off asking you some questions about your previous experience, then some programming questions, and we'll write some code on the whiteboard. I'll leave a few minutes at the end to answer any questions you have for me. Are you ready to get started?" I like this because it lets the candidate know what to expect, it puts me in control of the process, and provides an excuse if I need to cut things off at any time.

I wanted to share a few thoughts about the interviewing process. Note that this is not at all meant to be a generally applicable sharing of wisdom, just codifying the very narrow slice of existence I occupy (mobile software engineer living in the San Francisco Bay Area).

First, Tips For Writing A Resume.
  • Most importantly, keep it short and focused. I should be able to read it in a few minutes and get a rough idea of what you've done, what you're capable of, and what you'd like to do.
  • That doesn't mean you should cut out experience that you think is relevant. But if you worked on five projects at one company, you can list them all on a single line, not patiently explain for each one that you helped with the design, coding, and debugging.
  • List your skills in a separate section. If you are stronger in some skills than others, either explicitly break them up (I like doing "Expert In", "Proficient At", and "Comfortable With"), or list them in order from greatest comfort to least.
  • Remember, the resume's purpose is to get you an interview. It should make me want to talk with you, not be a closed book.
  • Along these lines, you don't need to exhaustively explain everything you ever did at a company. Instead, pick the most interesting ones that you want to talk about and apply most to your current search. Make me want to learn more.
  • Feel free to put anything on your resume. I'm used to at least seeing work experience and education, but if you have other things you would like to communicate (articles you've written, things you're passionate about, future career goals, etc.), go ahead and include them. This also includes sample code projects that you'd like to share.
  • Edit your resume. I have been shocked at how often I see resumes with misspelling, poor grammar, or other basic technical problems. Remember, your resume is the first impression you'll make on me, and you want to make it a good one. Now, you can be a brilliant programmer and a poor writer; but, a new job is an important step, so take the extra time to show your resume to a friend or professional and clean it up. Granted, as an English Literature major I'm biased, but I automatically associate sloppy writing with sloppy thinking and a general lack of carefulness.
  • Formatting is less important. I won't think less of you for using an ugly font in the same way I'll think less of you for confusing its with it's. However, it can make a slight difference, so if you feel like punching it up, here would be my advice:
  1. Follow the standard resume format: Name at the top in big letters; then a Summary or Objectives section; then skills; then work experience; then education; then everything else.
  2. Use plenty of whitespace to clearly separate sections. Label sections with a large-font title.
  3. Use bullets where appropriate. Don't bullet a list of single words; this makes it look like you're padding. However, bullets can be perfect for listing project summaries or titles.
  4. List the years that you were at each job. This isn't a big deal, but I'll be more likely to ask about something you were doing in 2006 than something you were doing in 1996.
  5. Pick a readable font. Personally I like to use serifs for my text and sans-serifs for headers. In any case, you should generally avoid unusual fonts, italics, very small text, and wingdings.
  6. Notwithstanding the cardinal rule to keep it short and simple, don't fret about length. I used to be maniacal about making sure my resume fit on a single page, but haven't received a single-page resume from anyone in all the years I've been interviewing. If your resume is longer than a page or two, ask yourself, does it need to be? If you can trim it down, great! (Once again: the purpose of the resume is not to document everything you've ever done; it's to start and guide our conversation.) If it really needs to be that long, then don't cut out good stuff just to decrease the size; but keep in mind that I may end just reading the first page or two, so be sure the most impotant information is up front. (I usually try to read through a whole resume, no matter how long, but if I learn at 12:50 than I have an interview at 1:00, that just isn't happening.)
Finally, a big one to keep in mind: be prepared to talk about anything you put on the resume. Listing cool languages and technologies may have landed you the interview, but to get the job you will need to show you actually can use them. If you can't write Java, that's totally fine, you'll still get a job. If you list Java as one of your skills, and can't write a simple class or describe what an interface does, then you won't get the job. We can train technical skills, but we can't train honesty and candor.

Along the same lines, be sure that you've actually read your resume and understand it. If I ask you about a project on your resume, it looks really bad if you need to think for a minute about what, exactly, you did for it.

All that being said, I look to the resume to guide me about what questions to ask. I'm not trying to play "gotcha" or catch you off-guard. If I see that a candidate wrote C++ until 2005 and then Java since then, I will be giving coding questions in Java. I'll still expect you to demonstrate that you have worked with C++ in the past (e.g., you should know what a template is and what a destructor does), but it isn't fair for me to judge you in a language that may be rusty for you. If you declare yourself a C++ expert in your resume, then you're saying that it's fair for me to ask you expert-level questions.

One side note: When I interview a candidate, I usually get a Word document copy of their resume. At many large companies, though, they actually accept resumes as plain text files, or convert Word to plain text, to make it easier to search. If you are planning on submitting your resume to multiple companies, consider writing it up in Word first. Then, manually create your own .txt file using Notepad or a similar program. Bring over all the content, but structure it so it looks better in plain text. This will probably mean using more whitespace and CAPITAL LETTERS. By having this in your arsenal, you'll be able to handle submission in any form, whether it's to an individual person, into a web form, or through a jobs database system. Finally, you might want to consider saving a .PDF version as well. This doesn't seem to be as widely used as Word, but it is more portable, non-editable, and stable.

Anyways, that's that! I don't know how much more interviewing I'll be doing in the future, but people who follow the above steps should find themselves in a much better position. Assuming that they are looking for a mobile software engineering position in the San Francisco Bay Area. Good luck! (And, seriously, don't take this as gospel; I'm sure every interviewer has their own preferences and quirks, and what annoys me might be wonderful to someone else.)

Monday, June 30, 2008

Wow, Thanks!

A heartfelt "Haha!" and "Thank you!" go out to the kind, anonymous soul who sent me an XKCD T-Shirt. It's the compiling one, which will be pertinent and germane for as long as I live, or at least until we reach exaflop CPUs.

I assume this is an early birthday present, but I also like the idea of a kindly, slightly crazed good samaritan who mails funny T-Shirts to random people. Either way, you've made my world a better place! Arigatoo gozaimasu!