Category: Games

  • Code Size is the Enemy?

    “Size is the Enemy” is a Jeff Atwood (Coding Horror) article that has made the rounds lately. It’s a response to a rambling rant by Steve Yegge about how large code bases are unwieldy, and how language choice affects the viability of software projects beyond a certain size. Early on, Jeff calls out a quote that I, too, find really amusing:

    I happen to hold a hard-won minority opinion about code bases. In particular I believe, quite staunchly I might add, that the worst thing that can happen to a code base is size.

    I don’t think I’ve ever encountered a programmer who truly believed that “bigger is better” with regards to codebase size. Granted, the crowd I tend to run with isn’t exactly a bunch of Perl golfers either, but no reasonable person would doubt that complexity scales superlinearly with lines of code. So, at least with regards to the sentiment that codebase size should be minimized, I find myself in agreement with both — if you can reduce the size of your code while maintaining readability, then it’s an easy win. For example, on Neverwinter Nights 2, we drastically reduced the number of scripts required by adding a parameter passing mechanism to NWScript — I actually ran the numbers and discovered that 75% of the script calls in conversations used our new, parameterized scripts rather than the one-off style of scripts from NWN1. This is a great example of reducing code size without reducing functionality, and it made things much more manageable.

    I take issue with the second conclusion of Yegge’s article, though. While it’s true that functional languages can often express algorithms more eloquently than imperative languages, I don’t think this magically translates into huge maintainability wins in a monster codebase. Sure, the trivial example of reading lines out of a file makes other languages look great in comparison to hoary old C++. (I’m not sure if I’m allowed to call Java “hoary old Java” yet — after all, it’s only 12 years old or so.) But to hold up this example as proof of language superiority is missing the bigger picture — what makes an application distinctive is not how it reads lines out of a text file, but rather all the other stuff it does that no other piece of software does. The design of that “stuff” probably has more to do with maintainability than language choice ever could.

    The biggest factor in the complexity of a code base, in my opinion, is the complexity of its internal interfaces. I hate to trot out the quixotic concept of the “software IC”, but thinking about an interface in terms of building it onto a chip is a decent analogy in this case. Once you get beyond a certain number of “pins,” or command multiplexers, or what have you, things get complicated. When you have 500,000 lines of this kind of “complicated,” all interacting with each other in mysterious ways, you have big trouble.

    Now, I’m not advocating going gonzo with componentization, either, in spite of how delicious ravioli code sounds. I’ve seen and heard about way too many over-engineered, CORBA-gone-wild projects to make any kind of blanket statements in support of component architectures and stuff like that. But by keeping interfaces (whether internal to the code, or part of a component system) minimalist in nature, and designing them so that doing the right thing is easy, and doing the wrong thing is hard, you can maintain a good level of understandability in a codebase. I see no reason why this advantage does not scale with project size. Dividing a codebase into easily testable, well-defined components with simple interfaces is key, particularly for lone-wolf developers.

    I find it very interesting that the project in Yegge’s article (Wyvern) is not just a game, but a role-playing game. I know first-hand that RPG rules systems can, by their nature, necessitate a kind of code design that leads to massive complexity. RPGs tend to carry a massive amount of state around, and have rules systems that interact with that state in often arbitrary ways. (An example of this would be a character trait that changes the order of combat resolution, or some kind of “luck” trait that allows re-rolls of certain types of skill checks. If you have many rule-changers like this, it’s almost impossible to write a clean system to handle it.) This kind of complexity is design complexity, and has nothing to do with programming languages and the features they support. For this reason, I think that even if he succeeds in his goal of removing 33% of Wyvern’s lines of code, I don’t think that the resulting code base will be any easier to maintain. (His game is a 2D Java RPG — I don’t think that it’s a stretch to say that the majority of his code is going to be related to game rules and game content.)

    I think that both authors are missing a key point — namely, that if you can simplify your application or problem, you should do so. Wyvern should look more to Magic: The Gathering’s rules than D&D. (Granted, Magic has its own mind-benders, but I think that it’s fundamentally simpler than even the newer versions of D&D. Coming from a math professor, that’s what I would expect.) Granted, sometimes it’s not possible to simplify a problem any further, but in this case Wyvern appears to be a self-inflicted wound. And, finally, I am still in agreement that code size reduction is a wonderful thing, but I am less enthused about the opinions rendered in the language wars…

  • Plastic Guitar Brinksmanship

    There has been a bit of a brouhaha lately with regards to guitar compatibility between Rock Band and Guitar Hero III on the PS3. As of now, you can’t use the Les Paul guitar that comes with Guitar Hero III when playing Rock Band (on the PS3). Why? It’s not like they’re very different — and, of course, you can already use Guitar Hero controllers with Rock Band’s 360 version!

    It seems that Activision has demanded that Harmonix/MTV Games/EA (the three-headed monster involved in producing Rock Band) pony up for the privilege of using their guitar. This is all, of course, playing out to Harmonix’s advantage in the court of public opinion, but one additional factor makes me think that this will be resolved to Harmonix’s satisfaction. Harmonix still has a very relevant patent on the scrolling note display used in Guitar Hero III — one that this news article suggests was, in fact, licensed by Activision. (I had heard through the grapevine that Neversoft had investigated using non-patent-encumbered ways of showing the notes for the game, but I guess they gave up on that.) The material covered by the patent is pretty critical to the gameplay of Guitar Hero, and after the stellar sales of the third installment, it’s easy to see that Harmonix could use future licensing of the patent as a bargaining chip.

    I don’t own a PS3 (or Guitar Hero III — I had just rented it), so I’m not affected by this issue, but it’ll be interesting to see how this all plays out.

  • Fixed: Size of the Moon

    The gaming blog Rock, Paper, Shotgun recently ran an article mentioning the next project of the developers of the 2005 PC game Boiling Point. That upcoming game, however, is not the real focus of the article (nor of this one). There’s a bit of pointing and snickering at part of a bug fix list for the first patch for Boiling Point — I’m sure that the bugs in the list seem pretty crazy to most people. I thought it would be fun and illuminating for non-game developers to give my best guesses as to what these bugs actually represent under-the-hood, and how they may have happened, solely based on the descriptions. Note that I haven’t played or ever even seen Boiling Point in action before, so my guesses may be totally incorrect.

    The aforementioned article had the following bugs highlighted:

    • fixed: the snake wasn’t able to bite you while you were crawling

      • I have two guesses as to how this may have happened. One would be that the player’s “hit box” and the player’s “personal space” (a space surrounding an object into which other objects can’t move — I’ve borrowed this term from Bioware‘s earlier games) are not always the same. When the player crawls, perhaps his personal space grows large enough that the snake’s weapon range isn’t long enough to reach from the edge of the player’s personal space to the player’s hit box.

        Another guess would be that the targeting AI for the snake (governing where to move in order to attack, and things like that) somehow got messed up when the player was prone, or had an early-out return.

        Odds are good that this slipped through the cracks because either it wasn’t tested, or that crawling was tested for other animals (but not the snake). Not uncommon.

    • fixed: size of the moon

      • My guess would be that, if there was actually a separate “moon” object (i.e. it was not something done entirely in code), that it was created as a copy of another object, and the size was never correctly adjusted.

        Alternately, if the moon was created in code, it’s possible that: a) nobody ever really looked for it, b) it was working at some point, and later broke, or c) if the game simulates lunar cycles, that testers explained away the missing moon by assuming that it was a new moon.

    • fixed: posters in bar vanish as you turn away from them

      • The culling code is buggy for that specific type of object, or the bounding boxes generated for them are incorrect. If the posters are built as three-dimensional solids with a very small depth, it’s also possible that it may be caused by numerical precision or other issues.

        Stuff like this tends to be pretty easy to notice, as long as it’s in an area of the game where players will commonly visit — I’m guessing that the developers knew about it, but it was not determined to be a “stop ship” bug.

    • fixed: dog does not cast shadows

      • For performance and artistic reasons, it’s common to have per-object flags to turn off certain effects or processing. The “cast shadows” flag was set wrong on the dog.

        Likewise, this is not a “stop ship” bug, so it’s a toss-up as to whether or not the developers were aware of it.

    • fixed: a metal clanking sound plays, if the user’s character stabs the curtains

      • As with the dog, this is an issue with incorrect data being set on an object.

        This is also not a fatal bug, but it’s one that I can easily imagine slipping through the cracks, since it is not only object-specific but weapon-specific as well.

    • fixed: jaguar floats across screen at treetop level

      • This is a tough one to hypothesize about without having seen the game. One possibility is that creatures in the game can be set as “flying” (unaffected by gravity), and this jaguar had that flag set on it for whatever reason. If the jaguar was initially placed on a slope, but then walked away, it would seem to be floating in mid-air.

        Another possibility is that it is somehow set to collide with coarse LOD bounding box representations of, say, a village, and is just “walking” on top of it.

        If this bug only occurs in one area, or with one jaguar, then I can see this potentially being missed during testing. If it doesn’t cause problems with the game, either they figured it was okay to ship, or ran out of time to fix non-fatal bugs.

    • fixed: npc die on contact with grenades, and not from the actual explosion

      • It’s not clear from the description if this is limited to friendly NPCs or not, but it’s possible that the damage resolution code for area-effect weapons has an (erroneous) early out for friendlies, while the damage resolution code for other types of attacks does not.

        This might be a case of a regression failure, where functionality that was working at one time later breaks due to other changes. Alternately, it may be a case of testers selectively testing ways of killing friendly NPCs. (Hey, it’s an anti-social thing to do in the first place, so I don’t blame them for not trying out every weapon on their buddies.)

    Like I said before, I might be totally wrong on some of these, but it’s fun to speculate and to try and understand how games are doing things under the hood…

  • Big Game Hunter (Not Starcraft Related)

    In furtherance of my recent Gamerscore binge, I decided to branch out a little bit and explore a new game genre for me — hunting games. I rented Cabela’s Big Game Hunter for the 360, and just got done getting all 1000 Gamerscore a little while ago. I have to say that I was fairly disappointed with the game and the hunting game genre. As someone who basically knows nothing about the topic (never mind the fact that I also lack interest, for the most part, on the topic), I was disappointed that there wasn’t really any pedagogical material in the game relating to hunting — there was a brief weapon/gun encyclopedia, and that’s about it. There were no tutorials on hunting technique, or the use of the various lures and other items you can get in the game. In short, it seems unlikely that anyone would learn anything useful from this game.

    In essence, the game boils down to essentially a corridor shooter where nothing attacks you (with the exception of the “rival hunts,” against creatures like bears, leopards, and lions). The checkpoint-to-checkpoint action is broken up occasionally by shooting-gallery segments, and the occasional frustrating mini-game, but that’s about it.

    I wound up going through the game twice, because I missed one of the optional mission objectives the first time through. You can’t go back and play prior missions once you’ve completed them, so I had to replay the game in order to get the “full completion” achievement, which was worth 120 points. (I initially had the auto-save functionality on, which prevented me from backtracking. I recommend playing with auto-save off.) The game is pretty easy, and all of the achievements can be obtained (even in easy mode) in a couple of hours if you know what you’re doing, and keep track of what you need to accomplish.

    The game has a general lack of polish — most quadruped animals move with exactly the same gait, and do not react in realistic ways to events around them. Animal bodies vanish in front of your very eyes, and the animation in general is not very good — your character can run full speed up a very steep slope, but uses the same animations as he does when running over flat terrain. There are invisible walls and arbitrary walkmesh blockers everywhere — half the challenge of the game is trying to figure out how to traverse the terrain to get to your next objective (which is clearly marked on your map). I think I got more joy out of calling it “Marmot Blaster 2K8″ than from actually playing it.

    I’m once again reminded of the “Mass Effect Hard Landing” article that I mentioned awhile back. Big Game Hunter definitely exhibits a lot of signs of changed/curtailed plans, as mentioned in that article. The first mission contains a mini-game (rock climbing) which is never used anywhere else, and has a cutscene of an animal (a bear) menacing the player — something that’s never done again in the game. Dialogues with NPCs are much shorter and less frequent towards the end of the game, and the last couple of missions are almost devoid of any spice or polish. The last “boss,” a lion, looks decent, but many of the other, previously-encountered creatures don’t look very good. There are weird statistical anomalies, such as how many animals that I’ve shot are exactly 10 years old, according to the saved statistics. (This includes things like hares, for which a 10-year life span in the wild would surely be several standard deviations from the norm.) This strongly suggests to me that there was default data used to set up creatures that, in some cases, was never overwritten with proper values. I could probably point out a dozen more things, but you get the idea.

    The game also gets my personal vote as having the most worthless paid downloadable content that I’ve yet seen. You can pay 350 Microsoft points to receive another rifle, and the ability to hunt another creature (some kind of sheep) in “instant hunt” mode. Now, you can get some very good Live Arcade titles for only 400 points, so the value of this offer is, to say the least, extremely suspect.

    Oh well. Another 1000 points are in the bag, so it’s on to the next game.

  • The King of Peter Jackson’s King Kong: The Official Game of the Movie

    Continuing my Gamerscore binge, I rented Peter Jackson’s King Kong: The Official Game of the Movie, another (mouthful of a) title that is somewhat infamous in the 360 world for being a relatively easy 1000 points. I picked it up last night, but didn’t get a chance to play it until today. With the help of the invincibility code (which, conveniently, still allows achievements to be earned), I powered through it in about six hours. Overall, I would say that, especially now, there’s not much to recommend about this game.

    Most of the games that I’ve played so far during this binge were released at or close to the 360’s official launch, and you can definitely see the rough edges here and there:

    • In King Kong, there is some shoddy animation in the game (particularly during the introductory boat-rowing sequence), missing lip-synch in some areas, dialogue vocals that were clearly recorded in pick-up sessions (and not by the original actor), missing links in the story, and lots of missing details. Characters in the game pivot about their origin, rather than taking a step or two. They frequently get caught on terrain, too. It’s clear that, from a technical standpoint, much more effort was invested on Kong himself than on the FPS sequences that comprise about 75% of the game — as a result, while Kong still looks decent for a next-gen game (and his animation still looks quite good), the rest of the game has a decidedly last-gen feel to it.
    • I ran into a bug in NHL 2K6‘s player editor where, if you try to exit editing a player, but cancel the exit, you will be unable to save the player until you completely exit the player editor and return. (Any changes you have made will be lost — there’s no way around this.)
    • NBA 2K6‘s player profile unlocks seem to share data with College Hoops 2K6 (which I had played long ago). After I started playing, I began getting tons of unlock messages as the game progressed, because it was using the same profile stats as College Hoops 2K6. Since the code checks for see if something should be unlocked whenever the appropriate game event occurs (i.e. a score, a dunk, a 3-pointer, a block, an assist, etc.), whenever I did just about anything in the first few minutes of the game, I would see an unlock message. This shouldn’t happen.
    • Madden NFL 06‘s commentary is pretty dreadful (and the color commentary is basically non-existent), and the in-game presentation itself is pretty lacking — I don’t recall seeing many post-play cutscenes or any other “flair” except some bizarre camera shots of an unoccupied part of the stadium. Also, it’s very clear that this edition of the game still uses a traditional single-threaded approach — when simulating seasons, the interface is generally unresponsive, and the background UI animation is very herky-jerky.

    While it’s understandable that launch titles are going to have fit-and-finish issues, it is definitely a bit jarring playing them two years into the 360’s lifespan. Fortunately, for the most part I haven’t had to play these older games for very long…

  • Running Up the Score

    With Sandy out of town for a few more days, I decided to do something silly…namely, binge on Gamerscore points by getting a Blockbuster Game Pass and renting as many easy 1000-pointers as possible. The goal is to see how much I can pump up my score in a short period of time. In preparation, I consulted Achieve360Points.com’s achievement list (which can be filtered by difficulty) to see which games out there are the cream puffs of the 360 line-up.

    Starting Gamerscore: 10781

    The first game I rented was the notorious Avatar: The Last Airbender: The Burning Earth. This game just came out recently, and has already earned a (well-deserved) reputation as an easy 1000 points. Why? You can get all of the achievements within a couple of minutes by simply mashing the B button. This video demonstrates how it works. Overall, I only played the game for the couple of minutes required to get all of the points.

    Next up was NBA 2K6. By tweaking the game and coaching sliders at various points in the game, I was able to get all of the required achievements in one game. After maxing out Shaquille O’Neal’s stats, the 90’s West All-Stars coasted to a 264-39 victory over the Atlanta Hawks. O’Neal finished with 202 points, 26 boards, 28 assists, and 33 steals in a dominating performance, scoring over 50 points in the last 3 minutes of the game to reach the 200 mark. Since I was playing with 12-minute quarters, it actually took me a little over an hour to rack up the 1000 points from this game. Some of that was running up the score, though, so it’s probably possible to do it in a shorter amount of time.

    Third on the day is Madden NFL 06 — I settled for this since they didn’t have NBA Live 06 available, and it took me a little more time to finish than NBA 2K6. The big kahuna in this game is the “complete 30 years of franchise mode” achievement, which any sane individual would accomplish by simulating those 30 seasons. This is where the picture-in-picture mode of my TV comes in handy — while slowly advancing through the 30 simulated seasons, I was watching TV or otherwise entertaining myself in between the sporadic button presses required to continue simming. Afterwards, I played one quick-play game to get most of the remaining achievements (a 192-9 victory for the Patriots over the Niners, in which Tom Brady threw for something like 1700 yards, and Deion Branch had over 1000 receiving yards), and one franchise game with 1 minute quarters (won 6-0 by the Cowboys).

    Today I picked up NHL 2K6, which I’m about to start playing. After this, I should be up to 14781 points. UPDATE: That was fast. I pumped up the Dallas Stars, and faced off against Belarus, which was the lowest-rated default team that I could find. After figuring out the fastest way to get some of my own guys in the sin bin (wiggling the right analog stick furiously when defending against an offensive player), I quickly got all of the achievements except for the one involving a penalty shot, which took a little more research to obtain. Ring up another 1000 points.

  • Watching Movies With Film Majors

    Having constructed the Potemkin villages that are game environments, game developers just don’t see games the same way that the general public sees them. Every game developer I know has, at some point (and usually, often) sat around with co-workers, playing the latest and greatest game and critically ripping it apart for problems that are both easily seen and those that are more subtle. “You can totally see a seam on that texture.” “Oh, great, another FedEx quest.” “This UI is terrible.” “That cutscene sequence was dumb.” “Weapon X is totally worthless.” “This game is so unbalanced.” There are probably a million more complaints that you could come up with. Knowing what goes on behind the curtain makes us understand limitations of game engines, where corners have been cut, and seemingly inexplicable design decisions better than most.

    When the Playstation 2 was released in the US, I sat in on our company demo of the new console. Partly due to the underwhelming launch titles, and partly just because programmers tend to be grouchy, we had plenty of fodder for complaint and discussion. But one of the more excited and forgiving souls in the room rolled his eyes and pronounced that, “Man, listening to you guys is like going to see a movie with film majors.” Truer words were never spoken.

    I recently read this great blog post about Mass Effect (a game I have not yet played), in which another game developer points out some of the tell-tale signs of triage, content cutting, technical challenges, and design changes. In addition, there’s also some discussion of how these situations come into being. Having been a big part of a large, ambitious game project myself, I can vouch for a lot of the bullet points discussed, and wanted to comment a little bit further on things.

    It is extremely rare for games to ship with the full feature set envisioned early on in the project — so typically, features and content are classified as either vital or non-vital. If, during development, a feature or piece of content is not working out, it can be cut if it is non-vital. The need to classify work in this manner early in the project’s life span, however, also begets a lot of the problems mentioned in that blog post.

    • “Undue or odd simplicity.” Game mechanics that sound great in design discussions may not work out so well once they are later implemented. (For example, the boss battles in Guitar Hero III have been pretty much universally panned.) Since a lot of resources may have been poured into these ideas, the preference (rightly or wrongly) is usually to keep trying to make them work somehow, rather than just cutting them. These triage efforts may take the form of simplification, or providing alternate methods to “get around” the balky mechanic. The latter category includes the “you’ve failed this part 5 times, do you want to just skip it?” crutch that has become popular in recent games.
    • “Significant differences between demos and the actual game.” Even if you do decide to cut a feature or some content, if you’ve ever showed it to the public or talked about it in the press, people are going to be wondering where it went in the finished product. And if you leave those vestiges on the shipped disc, you never know what might happen…
    • “Sudden narrative leaps and loose ends.” Cutting non-vital story content and dialogue can still leave awkward gaps in a story, even if it doesn’t totally compromise it. Characters that simply show up or disappear without a trace, deus ex machina, and sudden jumps in location or disposition all tend to be signs that some non-vital content was cut and patched up in a low-risk fashion.

    I also have to throw in some additional RPG-specific commentary on the “lots of bugs” category. RPGs tend to be games of large scope. They try to provide an experience that is more customizable (in terms of choices having an impact on gameplay) than almost any other genre, an engrossing and lengthy story, and interesting gameplay on top. If you imagine the gameplay experience translated into a directed graph of a player’s actions, RPGs tend to have very high branching factors compared to other game genres. This variability drastically increases the amount of test paths that must be checked, and even if you have a massive army of testers, it is extremely difficult to ensure 100% test coverage. I would go so far as to say that no modern RPG can achieve this. (The continual refinement and patching process of MMORPGs is a testament to this.)

    An anecdote of the complexity of RPG games was related to me by a former co-worker at Obsidian. He told me that, several years ago at Black Isle, there was some discussion of adopting the then-new Dungeons and Dragons 3rd edition rules (widely viewed as very successful, and which simplified many arcane aspects of earlier editions) into a game that was already in development and using an existing engine. As part of the feasibility study, effort was put into determining how the combat system would need to be changed. One of the programmers diagrammed the combat resolution system on whiteboards, and wound up using something like 54 square feet of whiteboard space on an incomplete flowchart of the system, before the decision was made that it not feasible to adopt the 3rd edition rule set. The vast number of feats, spells, and items that exist in modern D&D take a massive amount of effort to implement, and oftentimes have subtle, unspecified, or ill-defined interactions with each other. Granted, as far as complexity goes, D&D is fairly high on the scale, but even simpler rules systems are tricky to get right.

    Mass Effect is, by all accounts, not a short game, so I’m not surprised that it may seem buggy. But if game developers and publishers want to continue producing epic, complex RPGs, I believe that the tools for producing and testing gameplay content must become much better, and automated testing of gameplay scripting must somehow become a reality. Ensuring that changes and additions do not break progression in an RPG can sometimes be a very time-consuming process, because a bug may only affect certain character types, later parts of the game, or (worst of all) be randomly-occurring. To put this in perspective, for NWN2, we had testers who were “sprinters,” whose job was to simply go through the game as quickly as possible, to ensure that the “critical path” of the story was working and viable. If I recall correctly, “sprinting” through the game took about 20 hours. When you need a multiple-day test to really ensure that a change hasn’t caused another problem somewhere else, your iteration time and desire to make polish changes suffer.

    One source of direction and inspiration is Inform, the interactive fiction authoring system whose latest incarnation uses a natural language system to construct gameplay. I’ll probably have more to write about Inform later — I think it’s fascinating and a tantalizing glimpse of the possibilities of higher-level gameplay tools.

  • Rock Band

    Rock Band is awesome. I got it this morning and have been playing the drums for most of the day, driven by the desire to crack the top 1000 in the drum career mode, if only fleetingly. (I finally managed to do so a few minutes ago, peaking at #997. It’s tough, because there are tons of other people playing as well, so I had to go back to earlier songs to get points that I missed.) I haven’t even pulled out the guitar or the microphone yet, but I think I’m going to try the new guitar in a little bit here — it’s getting a bit late to play the drums. They’re not super-loud, but they’re not super-soft either. I figure some silent tips may eventually be in order.

    The presentation of the game, by the way, is awesome. The characters are animated (and lip-synched) really well, there’s a decent amount of customization for characters and gear, and there are some really great screen effects and camera angles used at various points. (One example would be the many loading screens which are run-time generated “photographs” of you and your band in various poses and situations. It shows your character with all of its customization, and is not just a canned image. It’s a pretty cool effect.) Overall, I think it’s way better looking than Xbox 360 Guitar Hero III.

  • XNA Game Studio 2.0 Beta is out

    It can be found here. The biggest new features include integration with all SKUs of Visual Studio 2005, and support for Live on both Windows and the 360. The Visual Studio integration is huge, in my opinion, if only because it enables source control and add-in support for developers. I guess now you’re also able to use mixed-mode debugging for XNA projects, but I believe that is only useful for Windows-based projects — I can’t imagine that they’d ever allow unsigned code execution on the 360 (for security reasons). One can always hope, though. 😉

    They claim that the final release isn’t far off, either. With Visual Studio 2008 having just been released to manufacturing as well, I would imagine that there will be a refresh for XNA Game Studio that will include support for 2008. (The 2.0 beta doesn’t seem to integrate with 2008, or at least Beta 2 of 2008.)

  • Fake Plastic Guitars

    I rented Guitar Hero III the other day, figuring that I should play it, form an opinion of it, and get it out of the way before Rock Band shows up. After playing for a bit, I have to agree with a lot of the criticisms that I have seen leveled at the game:

    • The difficulty curve is very uneven. There are some songs in later tiers that seem quite easy in comparison to earlier songs (including Slow Ride, which seems to be a very strange choice for a first song).
    • The boss battles, while sounding neat on paper, don’t work very well in practice. Part of it may be that dueling stringed instruments now have unsavory associations, but they are just not very fun.
    • The art direction has gone more towards “x-treme,” and away from the friendlier, more whimsical styling in the Harmonix versions of the game. It’s difficult to find a character to use that I actually like, and I think this is a fairly big problem in a game that is, when you get right down to it, all about wish fulfillment.
    • The Guitar Hero series still has terrible tutorials. I can’t understand why this is still happening. It’s understandable that for the first game, the developers were under tremendous time pressure, and it’s hard to produce a quality tutorial on a compressed timescale. But now, Guitar Hero has a huge amount of resources behind it — there’s no excuse for them to still be copying the terrible tutorial structure from the first game, and there’s absolutely no excuse for not being able to fully explain game elements like hammer-ons and pull-offs in the tutorial. (The tutorial for GH3, if I am not mistaken, completely omits the fact that you can only perform those moves on notes that have their outline removed.)

    It’s still Guitar Hero, which means it’s still fun, but this third installment (first for the new developer Neversoft) is personally disappointing. The song selection this time around is decent, but I would say that there are more songs in the career mode that I think are stinkers than in either of the first two games.

    As I played through the career mode, I became more and more frustrated when the controller would not register a fret press when I was clearly holding down the button. Acknowledging that I must be a poor craftsman since I was blaming my tools, I read this short post about some simple mods that could be done to the 360 Xplorer Controller.

    For starters, I decided to put cardboard under the fret buttons to help with responsiveness when the buttons were pressed in certain ways. I followed the (fairly complete) directions in that linked post, but hit a couple of snags that I figured I would note in case it saves anybody else some time.

    • In a moment of mental weakness, I traced out the wrong side of the button on the cardboard. This resulted in cardboard backing that barely fit into the bracket for the button, and produced a lot of friction and resistance — basically, not usable.
    • After fixing that oversight, I reassembled the guitar, only to discover that the cardboard backing I used was too thick, and the buttons were perpetually being pressed! I had used cardboard cut from a shoebox, but I wound up slicing it thinner (in half, roughly) to get something that would work. My recommendation would be to test the action of the fret buttons during each stage of the reassembly process, because it gets progressively more snug as the various pieces are reattached, and it’s a pain to have to undo 16 screws again because something got messed up.

    This mod resulted in a decent improvement in the response of the fret buttons — I would endorse making these changes for anyone using the Xplorer controller, as it definitely helps reduce the frustration factor of the Guitar Hero games. I don’t have any issues with the responsiveness of the strum bar, so I probably won’t be changing that, but later on I might try my hand at making the whammy bar looser…