Mainstream Gaming Goes Multicore

The just released first-person shooter Call of Duty 4 hit store shelves a couple of weeks ago, targeting a variety of platforms, surprisingly including the PC. I grabbed a copy to supplement my Battlefield 2 outings — I still enjoy the odd late-night frag-fest to ease me gently into sleep.

I was pleased to find it priced at <$50 at my local electronic superstore: 20 years ago, terrible games for a ColecoVision cost $70-$80, so it’s amazing to pay less for such an incredible product. It’s even more amazing after factoring in 20 years of inflation.

CoD4 is a remarkable feat of software engineering, demonstrating significant technical excellence. As a business-class software developer, it’s a bit humbling. It’s pretty clear that the team is extraordinarily capable. The game is riddled with remarkable details that are easy to miss, but they’re so impressive you’re surprised that they didn’t stop the action and highlight it to make sure the player savoured every laboriously created effect.

Probably worth mentioning that It also happens to be a lot of fun to play!

Featuring unparalleled visuals, incredibly intense combat, an interesting and immersing storyline, and a lot of gameplay variety, the single player game has been a pleasant surprise. I usually skip the often trite single-player games in first-person shooters, heading directly online for some multiplayer combat. For this one the single-player game has captured every moment of the few chances I get to game.

It isn’t a perfect game, though. Like many games in the genre, the player is tightly coralled along a heavily orchestrated path (standing in stark contrast with even dated games like Operation Flashpoint, which allowed the player to basically do whatever they wanted within the confines of the island). The game features invisible triggers that cause predictable outcomes: When I pass this line the two guys will appear behind that door, and then I’ll move right and the guy will run out at the top and the five guys will march in the door at the end of the hall.

It does randomize to a small degree, but I can’t imagine that there’s a lot of replayability.

One noteworthy attribute of the PC version — what inspired me to write about it on here given the various entries about quad-cores over the past while — is its ability to scale out across multiple cores. The following is a graph of CPU usage on my otherwise unladen quad-core PC.

Call of Duty 4 Multicore CPU Usage

The drop-off at the end was the period of time while it switched out to the desktop so I could take a screenshot of the task manager. While actual gameplay was underway, the application consumed about 75% of 3 cores at times, peaking up to 75% on the fourth core, using this to apply the physics model used extensively throughout the game. Further evidence of the technical excellence is the fact that they didn’t just spin out threads for each core and then busy wait for the duration (which would have fixed each at 100%) — as many games sadly do (Netscape Navigator’s download manager used to do that) — but instead they have some finite amount of calculations they perform and then they properly yield to any other tasks on the system that might have work to do.

A brilliant game, making great use of modern hardware.