Starcrossed completes its QA

June 13th, 2007

Early this morning, Starcrossed was sent off to our portal publisher! Hurray! It might be another month or two before it shows up on portals; the whole process is much slower than we had imagined. Of course, when it’s finally available you’ll hear about it here. :)

I’m working a contract job for the rest of this month, but my thoughts are already turning to what game I should create starting next month. If I had a lot more money for art, I’d love to do a web-based role playing game. The format might not end up being accessible enough — I’d have to try it and see — but it’d sure be fun to make :)

Puzzle Quest: Not Casual

June 12th, 2007

I’ve been playing a lot of Puzzle Quest recently. It isn’t as sticky as some would have you believe — I think some of the people who say that it’s “incredibly addictive” haven’t played enough modern casual games. Which brings me to my surprise finding: even though it’s based on Bejeweled, Puzzle Quest is not intended for casual audiences.

That’s okay. It’s just not what I expected. When you first start a Puzzle Quest character, you’ll be fighting “battles” against bats and rats and vermin. Each “battle” is actually a game of Bejeweled, with you and the opponent taking turns. You’re going to lose. You’re�going to lose a LOT. Now, there’s no penalty for losing a battle, you can just try again. But they don’t baby you and let you win at first. In fact, the game gets much EASIER after a few hours of playing — not because you get better at Bejeweled (you don’t), but because you get better powers. By the time you’re fighting zombies and rogue wizards, you’re actually having more fun, because you have power-ups that can be combined in interesting ways.

It’s fine to make a Bejeweled game for hard-core gaming audiences. I’m happy that the game is receiving good word of mouth among RPG fans: it deserves it! But with only minor tweaks they could also have reached the casual gaming audience:

  • Start out with fewer colors. Puzzle Quest starts with 7 matchable colors. This is a lot of colors for a Bejeweled game. They could have discarded a color or two (say, the “sacks of gold”) and made it much easier to find four-in-a-row matches.
  • Make the monsters dumb at first. Since you and your opponent take turns on the board, you can’t really set up any clever moves — your opponent always takes advantage of your setup! The first few opponents should have been dumber. Let the AI get smarter as the game progresses.
  • Start players out with more useful powers, even if they’re just temporary powers. Why does the level 2 rat have more impressive powers than a level 2 player?
  • Give players more information about “leveling up”. Players have to make very difficult decisions when leveling up. Spending skill points the wrong way can ruin a character, forcing you to start over from scratch. There’s not nearly enough information for people to be able to make informed decisions about something so important. At the very least, the game should offer a “recommendation” about where to spend their skill points.

Hardcore players might call these changes “dumbing it down.” On the other hand, I don’t know anybody who actually had FUN during the first hour of gameplay. So if dumbing it down means “making it more fun”, isn’t that a worthwhile trade off?

Maybe not. This gets into the “casual mindset versus hardcore mindset” discussion, which is a topic for another day. Suffice it to say that a steep barrier to entry is appealing to some players. It creates a “we’re better than those peons” sense of pride, which is very important to some people who self-identify as hardcore gamers.

However, I have to imagine that when you’re making a game for Nintendo DS, you’re better off appealing to casual gamers than to the most hardcore niche. Or am I wrong about who owns a DS?

Also, the background music has to go.

Asset Tracking: a better way?

June 11th, 2007

In my last entry I commented on how I’d lost track of one of my sound effects during development — I didn’t know where it came from. I decided to create a paper trail of everything I buy from now on; this will be a last-ditch mechanism to help me track stuff down by following my own footsteps and seeing what I bought and from where.

But it’s not really good enough, as you pointed out (yay, commentators). Is there a better way? Well, the .WAV file format has space to store strings in it, so it should be possible to stick useful information into the .WAV files themselves. Then even if they get changed a bit, I could figure out where they came from. I think the .OGG, .PNG, and .JPG formats have that option, too, so I could use it to track all my assets.

The problem is that I don’t have a program to easily edit that data. If anybody knows of a simple GUI app that can do that, I’d be happy to try it out during my next game development and see how it goes. I can’t find one, though…

(It’s tempting to get sidetracked and write my own little editor for it, but I really shouldn’t let myself get sidetracked any more than is strictly necessary…)

Asset Tracking, or, “Where’d This Sound Come From?”

June 6th, 2007

As Starcrossed undergoes the final polish and QA phase, I made sure all the game’s licenses were in order. One trouble: during development, I bought many sound effects from places like Sound Rangers and only ended up using half of them. I have an “assets” spreadsheet that lists all of the sounds I used and where I got them from. But one of Starcrossed’s sound effects wasn’t on the list.

I searched everywhere trying to find where this sound came from. But it was renamed from its original filename, and I’d obviously mucked with it — I’d reduced the file size, and I’d also probably tweaked the sound in ACID Studio. But where was the original file? I have no idea. There’s no trail for it.

My big fear was that it was a temporary sound that I’d grabbed from somewhere on the web, and forgotten to replace with a licensed sound effect. That didn’t seem too likely, but it might be the case… after all, I had no idea where the sound came from! So I had to make a last-minute replacement. And the replacement sound effect wasn’t quite right, so I had to muck with it a while to get it to sound okay. Wasted time, wasted money.

Moral: don’t be stupid. Err, I mean, keep a strict track of all your assets! For my next project, I’m going to print out the invoice email for every sound I buy, and stick those emails into a file folder. That way even if my asset spreadsheet goes awry, there’ll be a paper trail to try to figure out where things went wrong.

Making the QA Checklist

June 5th, 2007

Sandra and I both come from the non-casual games industry, so our idea of a QA checklist is very heavily flavored by that experience. I don’t know what other casual game developers use, but here’s how we made our list.

  • By necessity, we needed to roll balance-testing and bug-testing into the same QA sessions. (Of course, at some point, you have to declare balance-testing “done” and then only do bug-testing.) So the QA checklist needed to be granular enough to support useful comments of either type.
  • We’re too small to bother with a bug database; instead, bugs can be reported right on our QA sheet.
  • We only have two QA people, so we used a table on a wiki page. One column was for my comments, and the other column was for Sandra’s.
  • We repeat the QA checklist again and again with new builds until everything comes out just right.
  • This QA checklist was for very late in the process; we’d done unit-tests before this, as well as a full beta cycle. So some�minor tests weren’t on this final list.

So, here’s our QA test list. Imagine that this is a wiki table that either person can edit. When the sheet is full, we make a new build with any needed adjustments, and try it all again. We know when we’re done when both people have entered “OK” or some other comment for each entry, and no further builds are forthcoming.

Starcrossed QA Test List

With a release build on a clean install (delete all game registry keys, too!) test the following:

  • General Considerations:
  • Can you safely left-click, right-click, and double-click all buttons in the game?
  • Does the user name look fine on all GUI screens when using widest-possible name (lots of Ws)?
  • Start an untimed game from each of the Resume Points, play a full level
  • Quit game during play and resume (make sure auto-save works)
  • Quit game during a cut-scene and resume (make sure auto-save works)
  • Quit game during a pop-up tip and resume (make sure auto-save works)
  • Exit game to main menu, switch between menus rapidly, and return to game (x10)
  • Press Alt+Enter repeatedly to switch back and forth between windowed mode and full screen.
  • Press Alt+Tab repeatedly to switch from full-screen app to some other app.
  • Does the game look correct on wide-screen monitors in full-screen mode?
  • Make sure cheat code #1 works as intended and can’t break anything in-game
  • Make sure cheat code #2 works as intended and can’t break anything in-game
  • Make sure cheat code #3 works as intended and can’t break anything in-game
  • Verify Account Screen Works Correctly:
  • Create and delete an account. Does it leave tracks in registry?
  • Try creating 50 accounts. Everything fine?
  • Try deleting all 50 accounts, including the currently active one. Everything behave correctly?
  • Try creating accounts with the same name as existing accounts. Correct behavior?
  • Try creating accounts with illegal characters / no characters / too many characters. Blocked correctly?
  • Try creating account names with spaces before or after the name. Cleaned up correctly?
  • Verify Options Panel Works Correctly:
  • Slide knobs up/down (then hit OK between changes) and make sure changes take place
  • Quit game while viewing the Options screen. Any problems?
  • Make sure changes are saved between game sessions
  • Test the “3D support” box; play a game with/without this checked
  • Verify Tutorial Screen Works Correctly:
  • Does it look correct?
  • Quit game in mid-tutorial screen. Any problems?
  • Verify that “Don’t show this again” checkbox works
  • Verify High Score Screen Works as Intended Regardless of How You Get To It:
  • Are relevant tips displayed?
  • Is the proper score screen shown (when arriving from a game mode, show that game mode’s score; when arriving from main menu, show the previous game mode’s score, or Untimed mode if no game)
  • Is the last game’s score highlighted?
  • Do scores move down appropriately when new higher scores are added above them?
  • Does the high-score list look fine with entries that are the widest-possible name (lots of Ws)?
  • Does the high-score list look fine with names of varying sizes and shapes?
  • Verify Data:
  • Check for usage.log [our log file]. Shouldn’t exist in final version!
  • Check readme.txt for up-to-dateness
  • Make sure install bundle does not include inappropriate files (.PSP files, raw .TGAs, etc.) left over from development sessions
  • Verify all tips.txt are valid and useful, and are in the right categories
  • Untimed Game Mode
  • Play�game to end-screen.
  • Play an entire game in ones session, start to finish.
  • Does beating the game unlock Mastermind mode?
  • Verify highest-level-reached is stored correctly even if game is not completed properly
  • Story screens make sense? Right order?
  • Music changes correctly?
  • Notes on sound issues:
  • Pop-up hints useful and appropriate?
  • Balance/Bug Notes on Level 1:
  • Balance/Bug Notes on Level 2:
  • Balance/Bug Notes on Level 3:
  • [etc. up to level 33]
  • Timed Game Mode

And so on. The list goes on and on, with similar sections for all six of the game’s modes. We were pretty confident with the game at this point (it went through beta testing with hundreds of users and no major bug sightings), so this is really just the final-stage pass. Even so, we’ve discovered several bugs and tons of balance issues.

In the end, you just can’t skimp on the gameplay time. The QA list intentionally requires us to play through the game many times to make sure we see lots of random game situations. Games with lots of randomness need lots more face-time to find unusual cases.

People don’t seem to talk about the QA process very much, but it’s pretty important. Few things sour a game’s presentation more than a sudden crash or an obvious glitch.

Avoid 14 hour QA sessions

June 4th, 2007

This weekend held a pair of grueling 14 hour QA sessions for our upcoming game. I have contract work through the end of the month (ill-timed, but monetarily important) so it’s been very difficult keeping up with QA work to get the game out the door. A few take-aways:

  1. Remember to take lots of scheduled breaks during 14-hour playing sessions or your arm will twist up like a pretzel. Sandra and I were both in considerable pain this weekend. When it hurts to move the mouse, video games seem a lot less fun.
  2. When taking a break, get away from the computer! Otherwise you’re not helping the over-mousing situation. I recommend a session of Puzzle Quest on the DS. It uses different hand muscles.
  3. We use an internal wiki to check things off the QA list, to make notes, and to record bugs. This works pretty well for small teams. By all means, you must have a QA check list.
  4. You need multiple QA sessions in order to get a real handle on game balance. Each time we played, our skill levels with the game would be different. I’m better at the game in the mornings than in the afternoons, too. Take notes about each session and average them!
  5. Remember that after 100+ hours of playing your game, you are the world’s greatest player of your game. Balance accordingly! Err on the side of being too easy, even though that is an incredibly hard thing for many game developers to do. “It has to have some challenge, or what’s the point of having spent all this time on it?” Two answers to that:
    1. Casual game players don’t want nearly as much challenge as other types of gamers. “Casual” should be a tip-off there. You still need challenge, but you need a more relaxed pace of difficulty-ramping.
    2. By the time you’re play-balancing the game, you no longer have ANY idea what level of difficulty is appropriate. Err on the side of easy, and then get other people to test it to make sure it’s not too hard.

I’ll post the QA list up later, too. That might help people who are trying to figure out what a QA list should look like.

Make your first 3 minutes count

May 19th, 2007

If you’re making a downloaded casual game, you already have a big hurdle to overcome: how to get people to download your game. But let’s leave that aside for the moment, and focus on the people who have downloaded your game. Wow! Congrats, you’ve already got the player WANTING to commit to your game.

Players don’t want to feel stupid. They spent several minutes waiting for your game to download and install. They want to be rewarded for their decision. They want to like your game.

Books like Daniel Gilbert’s “Stumbling on Happiness” teach us that most people make up their minds about something after just the first few seconds of interacting with it. If the first impression sucks, it can be hard to overcome it.

Judging from my play experience, I’d say you’ve got three minutes to convey that your game is a confident, professional product. If after three minutes my impression is, “this feels amateur,” then I’m done. Even if I keep playing for a while after that, I have no intention of buying.

So how do you convey professionalism in the first three minutes? Three of the keys are:

  • Tight initial experience. Look at every screen the game presents during the first 30 seconds of play — typically the loading screen, main menu, tutorial screen, and main game screen. These are the screens that need to be tightest. You can skimp on things like your high-scores screen.
  • Animation! Use animation on every screen. Animate the loading screen if possible. Definitely animate the menus. It’s not really about the actual animation; it’s about the feeling of movement on the screen that helps to convey a feeling of professional quality.
  • Don’t make the user feel stupid. It’s not an accident that the first level of modern casual games is really, really easy. This helps create a favorable first impression. It might also create the impression that the game is too easy. But that’s not as damaging as the impression that the game is too hard. When something’s too hard, people tend to lose focus. They’ll notice the little warts in your game. The illusion of professionalism will fall apart.

My beta feedback reinforces that the biggest player drop-off is in the first few minutes. If you can keep ‘em playing for longer than that, they’re likely to play for a good while, and you just might have a sale.

“Click To Skip This Movie”

May 18th, 2007

I’m slowly slogging through the beta feedback and making changes to my upcoming casual game. One of the comments made the think. Somebody complained that they wished the story scenes were skippable. But the story scenes are skippable… you just have to click the cursor anywhere on the screen, or press the escape key on the keyboard.

So this player wanted to skip the movie, but didn’t think to click the mouse. They expected instructions on how to skip the movie. I’m not sure how people became trained that movies are un-skippable by default, but they apparently have.

Since I have no way of knowing how many users are in this boat, I don’t know whether I need to add a “Click to Skip” sentence somewhere on the screen. I’d rather not, since it looks stupid. Next time I do a beta, I’ll add logging to see if people can figure out how to skip the movies.

The Subway Sandwich Conundrum

April 28th, 2007

Over on GameProducer.net, Juuso recently talked about the complexity of ordering a sandwich from Subway. When he went into Subway and said, “I’d like a sandwich, please,” he was overwhelmed by the number of choices he was asked to make. In the end, he would have preferred that his initial request, “give me a sandwich,” would have resulted in a sandwich without any further questions.

There’s probably a cultural divide here; the Subway shops over there in Finland may be better off doing things differently than they do them over here in the US. But in the US, at least, Subway is right on target for their niche.

Subway’s niche is making sandwiches, and in the US, this is a very well-defined niche. All niches become more complex over time. Seventy years ago, a sandwich shop would have been well-served by the advice to keep it really simple. But as time progressed, sandwich eaters required more and more features. Now, I can’t think of a single sandwich place in town that doesn’t offer the same barrage of questions Subway asks. If Subway simplified things so that, for instance, I could no longer get extra lettuce and no mayonaise, I’d stop going there. They wouldn’t have the feature set I require.

Game niches are very much the same way. When you sit someone down for the first time to play, say Battlefield 2, it’s an incredibly overwhelming experience. You don’t just move and shoot. In a modern FPS, you are expected to understand how to:

    • Move, strafe, and jump at high speeds
    • Look 360 degrees with the mouse, and zoom in with binoculars
    • Shoot with pinpoint accuracy
    • Switch weapons via keyboard keys
    • Use the map to figure out where you are and where you need to go
    • Follow instructions and keep up with the plan proposed by your teammates
    • Understand how to achieve objectives like holding points and capturing flags

And on and on. I can tell you from experience, it’s an overwhelming and humiliating thing to try to jump into your first FPS game. That’s because the FPS niche is extremely well developed. Back in the Doom 1 era, it was much easier for people to get started.

Battlefield 2 would definitely not be wise to “keep it simple” and strip out the complexity. They have to compete with other modern games in their niche, and their target audience gets more sophisticated with every FPS game that’s released.

As a niche becomes more sophisticated, the target demographic for that niche usually gets smaller. That’s because fewer new people are getting into the niche. In games, niches eventually either die out almost completely (like, say, adventure games), or they revolutionize themselves into a new genre (like RTS games that blossomed from turn-based strategy games).

As casual game developers, we try to go for undeveloped niches, because then we�don’t need to add the slew of features that a well-developed niche does. We don’t try to compete with FPSes because we couldn’t make one that has all the features people expect from an FPS. But when we set out in new territory, we can (and SHOULD) make it simple, approachable, easy.

Just because we develop “casual” games, though, doesn’t mean we’re niche-free. For the match-3 genre, a game as simple as Bejeweled doesn’t cut it anymore. Now a top-notch match-3 game needs:

    • Matching mechanics that are similar to everything else, yet different
    • Strongly directed gameplay
    • Power-ups
    • Beautiful changing backgrounds
    • Unlockable secrets

It’s getting harder to compete here, and it’s also getting harder for newbies to jump into their first match-3 game. Some day, if match-3 games keep evolving, we may even see a backlash — a return to simpler matching puzzles.

Genre revolutions, however, are pretty slow. Subway doesn’t need to worry that their niche is too complex just yet. Now if they start asking you what exact temperature and consistency you want your bread, and which of 14 lettuces you want, maybe they’ll have a problem…

Lessons from the beta

April 16th, 2007

The beta for our upcoming casual game is winding down, and the results from the survey were very interesting. I thought I’d share a couple of the results:

Timed vs. Untimed Gameplay: not really surprising, but players overwhelmingly preferred playing the untimed version of the game to the timed version.

Story Didn’t Matter: most beta participants said that the game’s story didn’t matter; it would have been just fine without it. This isn’t necessarily an indictment game stories in general — I mean, our game’s story isn’t exactly super exciting. But it does reinforce the idea that if you can’t do story really well, you probably shouldn’t bother.

Web Features Irrelevant: our game has a feature called the Weekly Web Challenge, which presents players with a new challenge every week. Did they find it boring? Did they find it interesting? Who knows! What we do know is that the vast majority of them did not even try the feature. Apparently that menu item, along with the little explanatory blurb, was so unappealing that people didn’t even want to click on it to learn more.

Other features did get clicked on — people tried the “Challenge Grid” feature, and many people tried both timed and untimed gameplay. But the Weekly Web Challenge was a bust. So we’re removing the web feature and sticking all the downloadable content into the Challenge Grid feature.

This surprised me, just a little. I knew that our target audience would never want to try a web-based PvP feature. They aren’t interested in competition with random strangers. But I thought that they would find the idea of free weekly content updates to be interesting.

And who knows, maybe they would warm up to it after they’d bought the game and played for many hours. But a delayed interest is much less useful to me than a feature that catches people’s interest in the first hour, while they’re still in the trial version.