Condemned 2 - First Impressions

April 7th, 2008

I loved the first Condemned. It was loads of fun, and I can count on two fingers the number of games that I’ve found as legitimately scary. So I was looking very forward to the second installment. Having now played through the first level of Condemned 2: Bloodshot, let me offer a few preliminary thoughts about whether or not it lives up to the promise of its predecessor.

Graphically, it looks considerably better than Criminal Origins. This is to be expected, since the latter was a launch title for the 360, and the developers clearly didn’t know much about how to utilize the resources available to them. As such, the fact that the character models and animation have drastically improved is as expected as it is welcome.

I wish I could say that the gameplay has improved as much as the overall look of the game. Not so, I’m afraid. At least through the first part of the game, everything feels much easier. Let me expand on that. The first thing I noticed when going through the combat tutorial at the start of the game was that I didn’t really need to block to keep from getting clobbered. In the first game, encounters usually began with you having to block a 2×4 being swung at you by a lunging hobo. Then you’d have to watch your opponent and precisely time your blocks and parries until you had sent the bastard to wino hell. Each fight was intense, savage, and thrilling. This time around, however, if you notice a bad guy before he spots you, you could potentially just run up to him and punch him until he dies. Not fun. But hey, who needs intense combat, when you’ve got… minigames? Uh, no. Thanks to God of War and Resident Evil 4, game devs think that tacking a small rhythm minigame onto a fight is sufficient to take monotonous button mashing into something innovative. It’s not.

Unfortunately, the worst consequence of taking the grit out of the combat, is that the game has lost its white-knuckle edge. Playing through the first one was exhausting. Each shadow potentially hid one or more bloodthirsty crazies who could kill you pretty quickly if you weren’t ready for a fight, and the resulting tension was genuinely draining. For this outing, if you’re not worried that you’re a couple of whacks away from game over, the best you can hope for is a jump scare when the weird ash-monster explodes from the ceiling. It’s just not the visceral experience that I loved the first time around.

What I do like is the storytelling. I like that our hero has essentially become one of the lost souls he mercilessly battered in the first installment. I really like that from his (and the player’s) perspective, there isn’t any real indication that he hasn’t succumb to whatever it is that has caused half of his city’s population to turn into brutal psychopaths. Most of all, though, I really like the turn towards horror that this game takes right from the outset. The city is covered in oozing tar, skeletal ash-men lurk in the shadows, and the weird lip-ring dudes are giving you attitude in the most ominous way. Good stuff all. I just wish the gameplay was able to match the tone of the writing.

Overall, I have a lot of serious issues with Condemned 2 that I really hope will resolve themselves as I get a little further along. However, given how fantastic the first game was, I feel justified in being at least somewhat optimistic that they will.

And speaking of violent video games, Stephen King has come out against the proposed Massachusetts law that would lump violent games in with pornography as being “harmful to minors.” Indeed, he even namechecks RE4. This further supports my long-held suspicion that Stephen King is completely awesome.

What I’m Reading: 3/28

March 28th, 2008
  1. It’s Not a League of Their Own: Boston Dirt Dogs has an excerpt from the 2008 Red Sox Annual in which the authors size up the Sox’ competition in the American League. On the whole, it’s pretty interesting I guess, but the best part is that the section on the Orioles is just one long reference to The Wire. And if you read a little further down there’s another Wire reference that’s masquerading as a pithy statement about the economics behind your brand new Tampa Bay Devil Rays:

    My economics are rusty, but when you have an inferior product in a saturated, inelastic market, one strategy is to re-brand the product. Therefore, exit the Devil, and their aqua uniforms, to be replaced by the San Diego Padres kits with blue replacing sand brown.

    Stringer Bell is alive and well in the sports pages, folks.

  2. WebKit gets 100% on Acid3: “Yesterday’s news” you say? Nope. The news today is about Webkit/GTK. Awesome news for us LXers. Also, definitely take a look at this account of the main Webkit team’s road to 100/100. It’s got some fun insights for spectators of the race between Webkit and Opera for full Acid3 compliance. And for some (probably much-needed) perspective, here’s one Mozilla-er’s take on the Acid3 arms race.
  3. JavaScript Talk at Northeastern: It’s a video of John Resig’s recent talk at Northeastern on Javascript and jQuery. What are you still doing here?

What I’m Reading: 3/24

March 24th, 2008
  1. Nine Techniques for CSS Image Replacement: If you spend any time at all playing with CSS, you know that there are a full bajillion techniques for replacing text with an image. It’s a lot to remember, and I’ll fess up that I tend to use whatever one I happened to have read about most recently rather than taking a considered approach to which of them might be the best solution for a given situation. No more! The above-linked post does a great job of running through the pros and cons of the 9 (9!) major techniques, and from now on you (meaning “I”) no longer have any excuse to not use the best, semantic, most accessible one at every opportunity.
  2. Drugs, Bugs, and IE8: A predictably good read from Eric Meyer, but I link to it mainly to have an excuse to echo the following point: There are a lot of beta browsers out there right now (one less, now that Safari 3 has shipped). If you’re testing your sites in them and something renders in any way other than what you were expecting, submit a bug report. Don’t change your code.
  3. Optimizing Page Loading in the Web Browser: For the browser builders, network latency is at least as big a problem as connection speed.
  4. A Japanese RPG Primer: The Essential 20: Last week, Gamasutra published this list of the best of the best in Japanese RPGs throughout the ages. It’s a top-20, so it’s not exhaustive, but it’s sure as hell exhausting–i’ve been chipping away at this beastie since last week. Anyway, if you’re at all into JRPGs, it’s a really fun read. It’s also neat to see some old favorites put into context alongside some seminal games that you may never have been exposed to.

Install Mongrel & Hpricot Under Ubuntu

March 24th, 2008

Whenever I do a fresh install of Ubuntu, and I’m setting up Ruby, Rails, I always run into the same problem with a handful of gems (such as Mongrel & Hpricot). This is how things usually go down:

matt@thinkpad:~$ sudo gem install hpricot
Building native extensions.  This could take a while...
ERROR:  Error installing hpricot:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb install hpricot
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1
Gem files will remain installed in
/usr/lib/ruby/gems/1.8/gems/hpricot-0.6 for inspection.
Results logged to
/usr/lib/ruby/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan/gem_make.out

Now what? The main problem here is that Hpricot and Mongrel both contain some C code that needs to be compiled. In order to fix this, you’ll need to install the Ruby & C development libraries for Ubuntu. To do that, just fire up Terminal and enter:

sudo apt-get install ruby1.8-dev linux-libc-dev libc6-dev

You should now be able to install Hpricot, Mongrel, or any other gem that requires you to build some C. It’s that easy!

What I’m Reading: 3/20

March 20th, 2008
  1. CSS Styled Scrollbars With Mootools and JQuery: Currently, only the IEs support the styling of scrollbars with CSS alone (although scrollbar styles are part of CSS3). This post links to a couple of Javascript-library-based techniques to get the job done in the meantime.
  2. Making ‘IE6-friendly’ PNG8 Images: Turns out our beloved hack to get transparent PNG32s in IE6 can sometimes crash the browser. To play it safe and ensure crash-free viewing of your site, it’s probably best to use PNG8 until IE6 is no longer a factor (someday, <<rassafrackin…>>). This post gives you some techniques to make your PNG8 graphics almost as useful as PNG32s.

What I’m Reading: 3/19

March 19th, 2008
  1. Martian Headsets: Spolsky’s take on IE8 & web standards.
  2. Translation From MS-Speak to English of Selected Portions of Joel Spolsky’s “Martian Headsets”: Mark Pilgrim’s take on the above.
  3. SitePoint Guru Lists: SitePoint’s authors have listed the best articles on the SitePoint, er, site, for getting started in various areas of web design & development.

A Couple of Design Tweaks

March 17th, 2008

There were a few little design-y things that were bugging me about this site, so I went ahead a fixed them. Mostly just adding some drop-shadows and fixing some footer behavior. Anyway, now that I like the look of the site better, perhaps I’ll write something!

Front-end Development Link Roundup

January 20th, 2008

Here are just a few articles that have come out in the last couple of weeks that might be interesting and/or useful to some folks.

  1. What CSS Did We Learn in 2007
    SEO site Search-This lists the CSS techniques they covered throughout last year. It’s a lot of useful, basic, meat-and-potatoes stuff.
  2. 101 CSS Techniques Of All Time- Part 1
    Noupe begins a multi-part list of what they find to be the most useful CSS techniques. Again, a lot of great basic stuff for those who may be new to CSS, but it should also be pretty handy as a reference for the grizzled vets out there.
  3. Acid 3 Tackles ECMAScript
    Resig lays out exactly what Acid 3 is testing. Very interesting, and some nice insight into some edge cases in Javascript
  4. Thoughts on Firefox 3.0
    Nice overview of some of the changes in Firefox 3. He mentions some improvements to the DOM implementation (and links to Mozilla’s more exhaustive list).
  5. Resetting Again
    Eric Meyer once again pushes the state-of-the-art in CSS resets.
  6. IE6 - CSS Bugs and Fixes Explained
    Another nice reference post. Dave Woods looks at a rogues gallery of cross-browser rendering issues.

That’s it for now. Hopefully someone will find something useful in here.

KDE4: meh

January 12th, 2008

I gave KDE4 a brief spin over the last couple of days, and I’ve got to say that I pretty much hated it. I think Ubuntu Tutorials hit it right on the nose, so I won’t go into any real detail of what sucked so bad. Suffice it to say that the two main things (for me) that made it so awful were the following:

  1. They basically took everything useful out of the K menu, so it’s not clear at all how to even do anything. If it’s so confusing for someone who’s previously used KDE at some length, I shudder to think how a novice user would fare.
  2. It looks so much like Aero. So much.

So, whatever. I kind of hated it. However, I’m a semi-devout GNOME/Aqua user, and I’ve got my desktop tweaked so I can wring every last drop of screaming productivity out of it. Maybe try the new KDE for yourself. YMMV.

If you do want to get it going on your system, and you’re running Ubuntu (or prolly any Debian-based distro), you can use this tutorial.

Stupid Ruby Problem

January 9th, 2008

Like I said, I’m working on getting my Ruby chops up to snuff. I thought it might be fun to do that by porting all of the code in Joseph Adler’s fantastic Baseball Hacks from Perl to Ruby.

I’m coming back to this project after letting it go for a while, and sure enough, the problem I was having when I put it down is still vexing me.

One script is intended to grab all of the play-by-play data from retrosheet.org. The files all have urls like this:

http://www.retrosheet.org/1957/1957al.zip
http://www.retrosheet.org/1957/1957nl.zip
http://www.retrosheet.org/1957/1957ml.zip

The snippet below is a simplified version of the code I’m using to build the urls. It’s intended to print the urls of each zip file for each league from 1957 to 2006:

year = 1957
leagues = ['al', 'nl', 'ml']leagues.each do |league|
  while year <= 2006
    url = "http://www.retrosheet.org/#{year}/#{year}#{league}.zip"
    puts url
    year += 1
  end
end

However, it doesn’t do that. It only generates the urls for the AL files, and I can’t get my brain around why.

I’ll be sure to add the solution when I figure it out, but for now I wanted to just document some of the struggles of a Ruby n00b.