Wednesday, August 3, 2011

Don't Ask Questions Until the Player Can Answer

When I started writing fantasy role-playing games for a living, I did a lot of dumb things. Since then, it's been a painfully slow process figuring out how to be less dumb. Every time I start a new game, there is a point where I go, "Wait. Why don't I do this thing this new way? In fact, why haven't I always done it that way?" And then I slap my forehead. Hopefully, it hurts.

One of my new, hard-earned rules of design has to do with training your characters. And, since it seems like every game and its cousin has some sort of level-gaining and stat-building these days, I think the rule is getting more relevant every day:

The number of decisions you have to make to build your character should be proportional to the amount of time you've spent playing the game. The more you play, the more you should decide.

Or, to put it another way ...

Whenever you make a decision about your character at the very beginning of the game, you are answering a question that hasn't even been asked yet.

So design wonks, get ready. Here is an example from my game Avernum, released in 1999. I will compare it to the rewritten version, Avernum: Escape From the Pit, out later this year. (And this will also double as a little taste of a preview of the new game, for those who care.)

The Bad Way I Did It Before

Avernum is an old school role-playing game. There are a lot of skills you can train to make your character stronger. There are the base attributes (Strength, Intelligence, Dexterity, Endurance) and regular skills (Swords, Spells, Lore, etc). You start out with a bunch of skill points, and you get more with each level. You should spend these on skills.



You start out with a ton of skill points, so that you can majorly customize your character from the beginning. You can use skill points to increase base attributes or regular skills, but the base attributes are expensive. However, it could break the system if a player put a huge amount of skill points in certain skills. To limit this, I made increasing a skill cost more skill points the higher you trained it. At high levels, you might have to save up for two or three levels to get enough skill points to raise a major skill one point.

Think about this. It's a system where the more you play and learn about the challenges facing you, the less you can do to customize your characters. You have to make most of the big changes at low level, when skills are cheap. Worse, it was necessary to increase the base attributes to survive (especially Endurance, which increases health), but they were so expensive that doing so required careful planning. As a result of this mess, many players had problems with getting halfway through the game and finding that they were not strong enough to proceed. These players got angry at me, and justifiably so.

There was also a traits system. Traits are special character qualities, some positive, some negative, that affected your characters. They could make you better at spells, more vulnerable to disease, and so on. Good traits came with a penalty to experience earned. Bad traits gave you a bonus. You could have at most two traits.

And here's the awesome part. You could only pick these traits at the beginning of the game, and you couldn't change them. Major decisions that affect how you play the entire game, and you make them before you've even fought one monster. It's very hardcore and old school. By which I mean that it's mean-spirited and unnecessarily punitive.

The Better Way I Do It Now

There are still base attributes (unchanged), skills (mostly unchanged), and traits (an all-new, very long list).

When you make your characters, you can increase five skills and pick one trait from the long list. This is far, FAR less customization at the beginning than was allowed in Avernum. Because of this, many gamers will try to make a party, think I have completely dumbed down the system, and ragequit. Price of doing business.



But then, when you gain a level, a base attribute goes up by one point. It's different each level, so every four levels each attribute has gone up by one. In addition, each level you can choose one attribute to increase by one. This allows a lot of character customization while making sure all skills go up gradually so that you won't be hamstrung by completely neglecting an attribute.

Each level, you can also increase two different skills by one point. Thus, you never stop being able to shape your characters. As you get a better idea of the challenges you are facing, you can mold your characters to enable them to proceed.

Finally, every other level, you can pick one trait from the long list. The number of available choices starts out small (to keep from confusing new players) and grows dramatically as you proceed. You will eventually have a lot of traits. Some of them give simple bonuses to your spells or attacks, while others (like Backstab or Swordmage) will affect how you actually play your character.

I plan to take a lot of heat because I allow fewer choices early on, but overall you make more decisions to mold your character in the new system than in the old system, and there are more ways to customize a character. The change means that you make a larger percentage of the decisions later on. As it should be.

Of Course, There Is No Way To Win

I have often observed that people hate change. I have tried to make a more friendly system that provides more customization, but a lot of people will be angry about the loss of the old system (which has been in place for a very long time). I can totally understand this, but I still need to always strive to make things better.

Also, while the old system made it very possible to build a party that would find itself stuck and unable to proceed. Some players actually like that. To them, the challenge of avoiding that fate is part of the game, and the threat of a failed party adds excitement to the game. For them, I can only suggest playing on Torment difficulty. It will provide ample possibility of horrible failure.

But I'm very happy with the new system. I think it allows players to answer the questions the game poses when they understand what those questions truly are. And now I enter beta testing and the actual balancing of the new system. And that, of course, is when the suffering truly begins.

Wednesday, July 27, 2011

Announced ... Avernum: Escape From the Pit


This blog has been sadly neglected lately, due to a combination of vacations and a frenzied effort to get our newest game to a point where we could officially announce it. But that day has arrived. Drop by our web site and take a look at Avernum: Escape From the Pit!

This is the second time that we have rewritten the Exile/Avernum trilogy, a move that is full of all sorts of questionable integrity. I am very nervous about announcing this title for exactly that reason, even though we have very, VERY good reasons to do a serious, polished rewrite of this game. Because Avernum has such a large and passionate fanbase, we have already put up an Avernum: Escape From the Pit FAQ to answer many of the questions that will be coming up. Such as, Why?

Short answer: Because the old version doesn't run on new machines anymore. Also, the iPad.

Longer answer. Look at this screenshot from Avernum:



Ghhhhahhhhh! Make it go away! Make it go AWAYYYYYYYY!

I mean, seriously.

We've been very determined not to half-ass this adaptation, and, when all is said and done, we will have put almost as much time into it as into a whole new game. It's been a little rough, and yet, I don't see how I had a choice. The first Avernum trilogy is my first creation and still one of my most beloved, and if we didn't rewrite it then it would have just disappeared. I can't abide that.

Other terrifying decisions. For the first time ever, we will be selling a new title for $20. When we released our first game, wayyyy back in 1995, we charged $25. At the time, that was a fair and unsurprising price for a shareware game. These days, the constant downward pressure on prices can no longer be ignored. Also, the market is developing in ways that finally make me think that we can make more money at lower prices.

I now hope to return to a sensible and semi-regular blogging schedule. For example, soon I will write a sort of review of LA Noire. Before I can write it, I want to see if the game ever has a murder victim that isn't naked.

Thursday, June 23, 2011

Our First Game Is Out For the iPad. Hooray!


Last week, Avadon: The Black Fortress HD for the iPad went live in the iTunes App Store. The reaction to it so far has left us stunned. Literally. Like, jaws dropped, walking around in a daze.

The genesis of the iPad version was a few months ago, when I said, "Hmmm. I have a few weeks free on my schedule. I think I'll port Avadon to the iPad. That'll be good for a laugh!" I've long known that there was a demand on the device for old school gaming, free of ads, in-game purchases, cute animals, zombies, and farming.

But, it turns out, the demand was far greater than I'd ever guessed. My fan mail since the release has been very instructive. Gamers weren't just disappointed by the lack of deeper games on the device. They were downright irked.

But that is the Magic Power of the Indie developer. Find an underserved market and serve it.

Writing and releasing my first device for iOS has been very instructive. In case anyone is interested, here's a few comments on Spiderweb Software's first game for portables.

Learning To Code For a New Platform.

Apple has done an amazing job of making developing for iPhones and iPads accessible. The sets of commands to program the device (i.e. the API, called Cocoa) are very clear and not too trying to learn. The development environment, XCode, is free. There are several good, free game engines for the devices. (I used a heavily modified version of the open source engine iPTK.)

There are also excellent books available on the topic. I leaned most heavily on Beginning iPhone 4 Development. I found iPad Application Development For Dummies to be unusually poor for a Dummies book, but its chapter on Provisioning (a tricky, vital, and neglected topic) is easily worth the cost of the book.

A Decent Port. But Just Decent.

Avadon originally came out for Windows and Mac. I was really determined not to half-ass the port to the iPad. I put a lot of thought into how to best adapt an old school, Western-style RPG to a touch screen. It's not something people have spent a lot of time doing. I think I came up with good answers to a lot of the questions, and the game overall plays really well.

However, there are a number of places where the UI could be better. This isn't because I was lazy or wanted to dump shoddy work on the market, but simply because this was my first iOS application. So have mercy. Our next game for the iPad (out, let's say, next April) will be better. It'll take some doing to modify the engine, but it'll get done.

Avadon HD is also a fairly demanding app. All of those icons eat up RAM, and the first generation iPad doesn't have a lot. It's playable, but it will be pokey from time to time. It runs great on the iPad 2, but I don't take a lot of satisfaction in that. The inconsistent performance on the iPad 1 is, simply, a failing on my part.

The Apple Approval Process.

Took a week to get my app approved. No rejections. No hassles. No complaints.

The Eternal Pain of Pricing.

It hasn't all been love and group hugs. Some of my fans have been seriously furious that we sell Avadon for Mac and Windows for $25 and the iPad version is $10. Like, "I will never be your customer again. Die in a fire." furious. I don't normally explain my decisions about pricing, but this merits a few words.

The same game is almost always priced differently on different devices. If you look at the prices charged for, say, Peggle, Plants vs. Zombies, or Angry Birds on different platforms, you'll find a huge variety. Angry Birds on the iPhone? One dollar. On the Macintosh? Five dollars. That's a five times difference!

There are a variety of reasons, all of them out of my control, for why I feel it is appropriate to charge less for the iPad version:

1. It has fewer features, due to the limitations of the device. Most notably, it is stuck at 1024x768 resolution and there are no keyboard shortcuts.
2. Since it is being sold by Apple, it is subject to the rules of their system. Most notably, there is DRM, and we can't give refunds through iTunes. Games bought directly from Spiderweb have no DRM and a Money Back Guarantee.
3. When you buy Mac/PC Avadon from us, you get a registration key that can be used to unlock an unlimited number of copies, over both Mac and Windows. A registration over iTunes isn't quite so liberal.
4. There is no ability to mod the game. This matters to more people than you might think.

But the main reason Avadon HD is $10 is, to be honest, that is the only possible price. Any more expensive, and it will cost way too much for an app. Any cheaper, and we're charging too little for what is still an old school niche product with a limited audience. If you try to look at it from our perspective, I think you will see that we didn't have a lot of options here.

One More Disappointment.

We are going to release all of our new games on the iPad. No question.

However, we currently have no plans to write games for the iPhone. After long thought, I came to realize that we just can't figure out how to write the sort of in-depth games we like to do on that screen size. Again, this is a failing on our part. I'm sure some intrepid developer will find a way to make it work. (Hear that, young Indies? That is the siren song of a market for you, all wrapped up with a big, red bow.)

Also, since most Android devices don't have a screen big enough to support our games, we are very unsure how soon we'll be supporting that platform. We are in wait-and-see mode.

Thank You.

And finally, many thanks to everyone who reads this who has supported our games. At the end of the day, I'm just a guy in a basement trying to earn a living and feed the kids. I am grateful for every sale. Plus, they make it possible for me to write more games. Lord knows, by this point, I'm too old and cranky to learn how to do real work.

Soon, we will release the first screenshots and information for Avernum: Escape From the Pit. For Windows and Macintosh. And the iPad!

Thursday, June 16, 2011

The Ultimate Fix Your Broken Game Checklist.


(This is the third of three articles about providing tech support as a small business. The previous chapters are here and here.)

I get two sorts of requests for tech support for my games. First, there's the familiar problems, the things that are my fault or that I know how to fix. I love these. I tell the victims how to get out from under their burden, they get on with their lives (dazed that an actual human read and processed their request for help), and everyone is happy.

And then there are the gremlins. The weird problems. The sorts of issues that are reported by exactly one person out of many thousands. Problems whose cause and fix are a total mystery. These are, alas, most of the problems reported to me. Most of these problems will be caused by incompatible software, hard drive corruptions, wonky graphics cards, or free-floating evil spirit manifestations. Sadly, as the hardware industry seeks out ways to cut corners and make computers ever cheaper, these sorts of afflictions only grow more common.

(Of course, some people say that every problem with a game, ever, is the result of the programmer's sloppiness and error. As if video cards never break and Windows is a flawless piece of software. These people want you to spend limitless time chasing bugs that don't exist. For a sample of this line of thinking, read the comments for my last post. While I acknowledge that some problems end up my fault, wasting energy trying to fix problems you didn't cause and can't fix is a Bad Thing.)

When I get one of these weird problems, I send out a standard list of troubleshooting steps. I have spent years assembling and perfecting it, and it honestly fixes the vast majority of problems. If you are a small developer, I invite you to steal and adapt it. If you are suffering from misbehaving software, I suggest trying these steps. At the risk of sounding slightly arrogant, if everyone would just drop everything, listen to what I have to say, and follow it without question, the world would be a much better place.

Spiderweb Software Tech Support Checklist

1. Restart your machine and try the game again. Run the game when no other applications are running. A lot of glitches and crashes are one-time things and don't happen again.

When someone runs one of my games, it is far from the only moving part in their system. There is the OS. The drivers. The many background processes. The other programs that are running. Any one of these programs might have a bug that messes up sections of memory. (Not to mention the fact that RAM can be corrupted on its own.) The longer a computer runs without a reboot, the more likely that things might get messed up. Then the system goes down and comes back up, and everything is nice and clean again.

Most problems only happen once, due to weird and unreproducible effects, and never happen again. If you get a crash, don't immediately freak out. Take a deep breath, reboot your machine, and try again.

2. Sometimes, game files can become corrupted. Try uninstalling, redownloading and reinstalling the game. This fixes a surprising number of odd problems.

The key step. Any program can become corrupted while being downloaded, installed, or just existing on the hard drive. This step is a surefire way to fix any such flaws. I am constantly amazed by how often I can fix a catastrophic, recurring problem by simply telling the user to uninstall and reinstall. No other mucking about with settings, saved games, or whatever.

This step also has the bonus of making sure the user has the newest version of the software.

One warning note. This step has three parts. Uninstall. Download clean copy. Reinstall. Be sure the user doesn't skip a step, or the beneficial effects are lost. For example, if you install without uninstalling first, the installer might leave the existing (corrupted) files alone instead of copying over them.

3. (Windows Users) Your video card driver files might be out of date or damaged. Get the latest versions of video card drivers and reinstall them. Even if you are currently running the newest version, the files or settings might be corrupted or damaged. Reinstalling might fix the problem.

I always hate telling users to install new drivers, for two reasons. First, they often think that I'm just doing it to blow them off. After all, this is what ALL developers tell them to do. Second, unlike the previous steps, identifying your video card, finding the manufacturer's web site, locating the newest driver, downloading it, and installing it requires a reasonable amount of technical skill. Odds are, your grandmother won't be able to figure out how to reinstall drivers.

And yet, I tell people to do it for one reason. It works. Weird, glitchy graphics? This is probably the answer. If new drivers don't do it, a flaw in the actual video card is probably the answer.

Lately, many of my users running 64-bit Windows 7 have had tons of problems that were solved completely by getting the new drivers. Several of them swore up and down that they were using the newest drivers. They weren't.

I strongly believe that the ugly situation with video cards and drivers is one of the key reasons for the huge shift in gaming from PCs to consoles. It's really not good.

4. (Windows users.) If random crashes happen during gameplay, try turning the sound off. If this helps, reinstall your sound card drivers too.

We're getting to the bottom of the barrel now, and this step isn't near as necessary as it used to be. As sound engines have improved, most of my weird crashes from sound card/engine issues faded away.

However, it does eliminate one more set of drivers to work with, and not using sound reduces the amount of memory the game needs. Every once in a while, this fixes a problem.

5. (Windows users.) Sometimes, reinstalling DirectX solves unexplained crashes.

And it does. Very, very rarely. It happens, but seldom enough that I'm considering removing this step from the list. Also, all of our newest games use OpenGL.

And That's It

If it's a problem or crash nobody has reported before and the user goes through these steps (or claims to have done so) and the issue isn't fixed, I give a refund. I'm out of answers.

I do hang onto the e-mails, though, in case other people pop up with the same problem later on. Sometimes a working program gets bushwhacked by another, poorly-written program. For example, on the Mac side, there was once a version of Quicken Scheduler that caused games to stop being able to see the keyboard. When I got the second report of keyboard failures, I sprung into action. Having the earlier report around helped a lot in figuring out the problem.

Steps I Don't Suggest

There are two steps for fixing mysterious problems that I almost never suggest. I feel that they are very extreme, involving too much work (and perhaps expense) to be worth it just to play my little game.

1. Reinstall the Operating System

This is the nuclear bomb, the way to purge your system of all manner of corrupted files. It's also a huge pain in the neck. I generally only suggest this if the user mentions he or she is seeing a lot of nasty problems while using a number of different applications.

2. Get a New Video Card

Video cards break. Seriously. It's happened to me. Sometimes they fail and you need to get a new one. However, I only recommend looking into this if the user mentions having similar problems over a wide range of games and swears up and down that fresh, up-to-date drivers are installed.

In Summary

Tech support is necessary, time-consuming, and aggravating. It tests my patience more than anything else I do. And yet, doing it well will, in the long run, make your customers love you and earn you money.

Be as patient and kind as you can possibly manage. Only fight battles when you have a chance of winning. Consider, with humility, that a problem might be caused by a bug. Also remember that, very often, it won't be your fault. Respect how shoddy and cheap and poorly maintained computers frequently are. And, always, try to treat your customers they way you would want to be treated.

You will always be amazed at how messed up things can get. Good luck.

Wednesday, June 8, 2011

Everything Breaks, All the Time.


(This is the second of a three part series about the black art of doing tech support. The first part is here.)

Anyone who ever has to do tech support (or who is trying to get a broken program to function) must first internalize one key, vastly important fact:


You can take a flawlessly written program, install it on a new, factory-fresh, basically functional computer, run it, and find that it doesn't work.

When you understand why this is, tech support, giving and receiving, becomes ever so much easier.

Computers Are Mechanical Devices

Computers are so close to magic that it is easy to forget that they are machines. Incredibly, brain-breakingly complex machines, that record and recover millions of bits of information a second (in RAM or on your hard drive), etching down those details in the magnetic fields of microscopically small bits of matter. So much is done, so quickly, on such a small scale that quantum mechanics becomes relevant, that I'm amazed any computer ever manages to work at all, ever.

When data is recorded on the hard drive, errors can happen. There are guards in place (called checksums, for what it's worth) to help keep the errors under control, but there are still many, many ways that incomplete and incorrect chunks of data can be recorded. The longer you operate your computer, the more errors there will be.

Most of the time, when these errors occur, you never find out. They happen in bits of the operating system or in programs that you don't use or the error introduced is so minor you just ignore it. But sometimes the error happens in a graphics driver, or your saved game, or the bit of my RPG that determines whether your characters get experience or not, and suddenly there is a problem.

So What Does This Mean?

It means that even the best-written program will have a ton of problems out in the field that aren't the developer's fault. Problems that need to be fixed by rebooting the computer and relaunching the program (to fix any error in memory) or by reinstalling whatever part of the software (the game, the drivers, the operating system) that have become broken.

If the problem is in the game, your characters might stop doing damage, or you might lose the ability to enter new places, or the game just might start crashing like crazy. Corrupted file in the display drivers? The graphics might be drawn funny, or the screen might always be black, or the game just might start crashing like crazy. Corrupted file in the operating system? The game might stop being able to save, or the settings file (that contains the registration) might disappear, or the game just might start crashing like crazy.

I'm not just blowing smoke to distract from my own errors. These problems happen all the time.

Of course, when users report these problems, they will pretty much always assume that it is your fault and you are an idiot. I have gotten multitudes of bug reports along the lines of, "Whenever I try to start a new game, the program crashes. This is a terrible bug and you should fix it right away!" When I get these messages, what I want to respond (but don't) is, "If my game had a problem this serious, don't you think I would drop everything this instant to fix it? You think I want to sell games that are never usable by anyone? What turnip truck do you think I just rolled off of?"

That's what I don't say. What I do is send them my standard list of tech support steps, and, 99% of the time, problem solved.

My Rule For When I Start To Hunt For a Bug

It's a simple one.

I never even consider that a problem someone reports is a bug in my code until two people report the exact same problem.

Sometimes, if the report is vague enough, I wait for three people. It can be maddening to get reports of catastrophic problems and not act on them, but it's worse to waste your limited, precious time hunting for gremlins.

We Live In a World Of Frustrations

I know that, every time I release a new game, thousands of people will get the demo, run it, and it won't work because of the reasons outlined above. They delete the game, write me off as a bonehead, and never send me teh moneyz. This is hugely frustrating. Nobody wants to be thought an idiot, and everyone wants the aforementioned moneyz. It's sad, but it's part of the business of writing games for computers.

It's even worse when they then go online and write about what a bonehead you are. Recently, a site called Platform Nation reviewed our newest game, Avadon. The reviewer got stuck with a horrible glitch that teleported his character into nothingness. He proceeds to excoriate me for writing such a terribly buggy game. Please believe me when I say that nobody, and I mean nobody, besides the reviewer has ever reported this problem. Don't believe me? Our support and Avadon forums have never had a mention of it. But the reviewer still called the game "wrong or broken" and "unforgivable " and gave it 1/10.

(Interestingly, the review has disappeared from the main site, and the only remaining copy is on their forums. I can therefore neglect expressing any other opinions about the reviewer's level of professionalism.)

Of course, if this sort of horrible game-breaking behavior was a bug, I would do everything I could to fix it. But that's not how things work.

Game Development Isn't For Wimps

Many people will get a game that breaks, and most of them will simply disappear and never try your product again. But some of them, happily, will come to you for help. When they do, you should smile, take a deep breath, and do what you can to make them happy. When the problem is a weird one I've never heard of, I will first send them my magic troubleshooting checklist that solves all problems. I'll post that next week, and everything will be better for everyone forever and always.

Wednesday, June 1, 2011

Seven Tips For Giving Good Tech Support.


When you try to start a business selling indie games (or any software product, really), writing and releasing the game is only half the battle. You then have to market and support it. Marketing is difficult, but there are lots of good resources to advise you on how to do it. Providing tech support to confused users is a much more arcane task, and I know of few resources to teach the hapless young developer how to do it well.

As a small developer, you have to provide timely, personal tech support. The ability to do so is one of your best Magic Powers as a small developer. Large companies are horrible at providing support, and people are used to that. As a result, a single personal e-mail to someone having a problem with your product can make you a fan for life.

But at the same time, as a small developer, you have very little time to spare for support. Time spent getting the game working for one person is time not spent making a new game for everyone. You will need to develop a sense of when the time lost helping a person is not worth it, either because you won't be able to solve their problem or because they will not able to implement the fix you provide.

It's Not a Simple Job

Supporting a game is hard. You will get complaints from people with the most amazing jury-rigged computers: motley assemblies of shoddy parts, duct tape, components bought at the cheapest possible price, and video cards found at the bottom of boxes of cereal. Machines that should, if there was any justice in the world, evaporate into a cloud of flame and self-disgust the moment they are turned on.

And while dealing with the infinite configurations of computers in the world is challenging, dealing with their owners can be worse. No matter how perversely disobedient a machine can be, humans are more difficult. People will report problems to you in only the vaguest possible terms, have no idea how their computers work, or outright lie to you about what they have been doing.

If you want to stay in business, you have no choice but to support your game. So here, based on my experience, is some advice and observations from someone running a small company who needs to do tech support.

Tip 1 - Be Patient

Dealing with other humans is frustrating, but you have to do it. You want, whenever possible, for them to go away satisfied. Be prepared, especially when dealing with a customer on the phone, to take a deep breath, count to three, and be as friendly and professional as possible. I know. You want to get back to working on your game. Time is short, and this person doesn't even know whether he's using Windows or Mac. Do your best to talk him through it. Remember, you can make a fan for life.

Tip 2 - Don't Be a Pushover

Some people will want you to teach them on the phone every detail about how their computer works. Some people are desperately lonely and want someone to talk to. Some people will have a machine so old or messed up that your game will never work. Politely and firmly cut these people off.

Remember: It's only worth the time to do tech support if you have the chance to, in a reasonable amount of time, fix a problem and make a loyal customer. If you realize that, at the end of the road, you aren't going to end with a happy person and a working product, end the conversation as quickly and pleasantly as possible.

Tip 3 - Be Ready To Ask Questions

The people who use your product are not generally tech experts, nor should they have to be. They will have no idea what information they need to provide to help you troubleshoot their problem. If I had a dime for every time an eight-year old (or a sixty-year old) sent me a bug report saying only, "The game crashed. What should I do?" then I would have, well, a lot of dimes.

Prepare a list of information people need to provide to help you solve their problem. Windows, Mac, or Linux? What version of the operating system? What brand of computer? Exactly what went wrong? Was it the installer that went funny or the game itself? Did rebooting the machine help? When you get a tech support request that doesn't give you enough information to have a clue what's going on, one option is to send the list of questions.

Generally, when you do this, one of three things will happen. One: They'll answer the questions, and you'll have enough info to start to help them. Two: They will resolve the problem on their own. Yay! Three: They will be unable to answer them and you'll never hear from them again. This is unfortunate, but, honestly, if the user isn't technically apt enough to answer a handful of basic questions, they will likely be unable to enact any fixes you suggest.

Happily, the list of questions is not something I send out very often. I deal with most problems by sending out my list of generic things to do to solve any problem. This takes care of the vast majority of issues, and I will share my list with you in detail in an upcoming post.

Tip 4 - Computers Are Delicate Mechanical Devices

I'm going to go into this in much more detail in the next installment, but this point is so very important that I have to bring it up now. Computers are incredibly complicated and delicate machines. Sometimes they go wrong. Sometimes files get corrupted. Sometimes RAM gets corrupted. Even a flawlessly bug-free program running on a perfectly maintained computer can break.

A huge chunk of your support will just involve having people reboot their machines and reinstall their programs (and drivers). This will fix 90% of reported problems, if you can get the user to do it ...

Tip 5 - The Users Will Lie To You

I blame this one on the horrible state of tech support in the industry in general. Much of tech support involves giving bad or time-consuming advice in the hope that the user will just go away. When I am asked for help, the person asking is generally angry, frustrated, and full of mistrust. This leads, alas, to lots of e-mail conversations like this one:

User: "I have this problem." (That I know is fixed in the newest version of my game.)
Me: "OK. Uninstall your copy, download the newest version, and install it."
User: "I did that. The problem is still there."
Me: "I see. Now what you need to do is uninstall your copy, download the newest version, and install it."
User: "OK. Done. I still have the problem."
Me: "Unfortunate. Now, please, I beg of you, in the name of God and all that is holy, uninstall your copy, download the newest version, and install it."
User: "I did that. It fixed the problem."
Me: "I can taste colors."

To hear users tell it, their computers are flawlessly-maintained, their drivers are all up-to-date, and every program in the world works but yours. They aren't necessarily intentionally lying. They might just not know that, say, newer drivers have come out. Just don't take anything you are told as gospel, especially if you know they're wrong.

Tip 6 - Know When To Give Up

There are some problems that I just give up on. If the machine is too old or too underpowered. If the problem is with the mouse cursor not moving right. (I get this sometimes, and, beyond suggesting trying a different mouse, I really don't know what to say here.) If the keyboard starts to not be recognized. (This happens sometimes too, and it's an OS/Program Incompatibility problem that I can't really handle.) If the graphics aren't working and the drivers for their freaky, off-brand video card aren't being updated anymore.

It sucks, but sometimes all you can do is apologize and offer a refund. The point of tech support is to fix the problem. If you have no capability to fix the problem, all you can do is give their money back and hope for their business in a future life. If you treat people fairly, when they get a new computer, they may very well come back to try again.

Tip 7 - Have a Standard List of Troubleshooting Steps

Once you have helped people long enough, you will come up with a list of steps that fix the bulk of their problems. Once you have this list and someone says they have a weird problem that definitely isn't a bug, you can send this list and most of the time that's enough to close the ticket. The items on the list will vary depending on the game and the platform. In a future post, I'll share Spiderweb's list. You might find it helpful.

That's a rough guide and a good start. In the next post, I will go off on a philosophical treatise about the nature of computers as physical machines. Then I will reveal my standard tech support checklist. Say tuned!

Friday, May 13, 2011

The Final Answer For What To Do To Prevent Piracy

(For some reason, Blogger deleted this post. I have recreated it. Sorry for any comments that were lost.)


This article is my decisive statement on how developers should deal with pirates. It includes humorous anecdotes about how dumb I have been in the past. And, believe me, I've been pretty dumb.

I am very confident about what I have to say on the subject. I have used these guidelines for protecting our newest game, Avadon: The Black Fortress. So I'm not just putting my money where my mouth is, I'm putting all my money. If I'm wrong, my kids don't eat. So I hope I'm right.

One of the most common questions fledgling developers ask me is how they should protect their games from pirates. My answer is, generally, "The minimum amount you can get away with." That is because I have learned never to forget the following guideline ...


Whenever you find yourself starting a sentence with, "I don't want people to pirate my game, so I am going to ..." you are very close to making a big mistake.

I really, truly believe this rule. Here are two examples of times when I have forgotten it, and the grim consequences.

Trying To Protect My Hint Books

From the very beginning, I have sold hint books for my games. People like them, and they are easy money. When I started, in 1994, there was no convenient format like pdf for online file delivery, so I had to print and mail actual books. This cost lots of money and boxes of hint books took up tons of space in my house.

Then pdf files happened and people started to request that I send the book in electronic form instead of making them wait a week for the post office to do whatever it does. I refused  this reasonable request for two reasons. First, I was afraid people would buy the pdf version and send it to their friends. Second, I didn't know how to create a download link for the file that couldn't then be e-mailed around to everyone in the world. So I kept spending money and precious storage space for the booklets, inconveniencing my paying customers as I did so.

Finally, three years ago, I got fed up with it. I made hint books available as downloadable pdf files. (People who want a printed version can get one for an extra two bucks, but they almost never do.)

But how did I secure the download link so it couldn't be shared? Here's the brilliant part. Ready? I just put it in with all of our other files. Anyone can download it. Anyone who knows how to use ftp can find it. When people order the hint book, I send them the download link, but they could have found the file for themselves if they looked around.

But here's the thing. Anyone who wants to pirate pretty much any PC game can do so easily. That means all of my orders are from honest, nice people. So why waste our time figuring out how to hide the hint book from them? They will pay for it because they know selling things is how I stay in business and make more games for them!

Here's the punch line. Want to know how switching to undefended pdf files affected sales of hint books? It didn't. The sales rate was practically unchanged. Know what that means? All those years humping around boxes of hint books, all those thousands of dollars sent to printers, all those slaughtered trees, all wasted. All because I was scared of people pirating my lousy hint book.

But there is a more gruesome example of my foolishness.

The Worst Registration System Ever Devised By the Hand of Man

In 1994, electronic distribution of demos was very much in its infancy. My plan was to release a demo with a small fraction of the game. Then, when the correct key was entered into the game, it would unlock and everything would be playable. A sound plan. The problem was the implementation.

At first, I thought I'd just generate a key when someone ordered and send it to them. But then I thought, hey, I don't want people to pirate my  game. If I just send them a key, they can make it public or send it to all their friends. So here is my brilliant idea. I will ... will ...

God. It hurts to even think about it.

Here's what I did. When you ran the game, it generated a random code, a 4 or 5 digit number. When you ordered, you had to provide that number. I would use it to generate a key specific to your copy of the game. I'd send you that key, you'd enter it, and the whole game would be unlocked.

So what does this mean? First, when you tried to order a game, you had to have this number with you. Did you realize you needed it? Probably not. So you'd be at our online store trying to give us money, only to have to leave to dig up some stupid number. Want a tip for running an online business? When a customer is at your web page, credit card out and in hand, do not give them a reason to leave!

The system was confusing, and this wasn't helped by the fact that we were the only ones ever to use it. Oh, if only we could have back the countless hours spent explaining the system to confused parents. Countless more hours making new registration keys for people who switched computers or had to reinstall their OS. The weird system made us look unprofessional at best, deranged at worst. And, as a special bonus, it did exactly zero to stop people from pirating our game. Name a way to crack our registration system, and people did it a hundred times.

We stuck by this system for fifteen years. Might as well have just made a big pile of money and set it on fire. At least we would have gotten the warmth.

A year ago, I finally got fed up. New system. When you order our newest game, Avadon: The Black Fortress, we send you a serial code. Enter it, and you're up and running. Buy the game for the Mac and want to play it on Windows too? Enter the same key. Want to register your copy again ten years from now? Use the same key.

And the result of switching to a slightly less secure, infinitely easier to use system? Sales of Avadon are the highest of any game we've put out in years.

Just Do the Minimum

You need some way to force people to pay. Not because they are evil or dishonest, but because they procrastinate. Registration is a pain. They'd rather be spending their time playing your game! If you don't do anything at all to make them pay, they'll just forget.

But tread lightly. Once you have any barrier in place at all, you'll get your payment from all the honest people, the people who know that, if nobody pays, you won't make more awesome games for them. Anything beyond that will inconvenience your paying customers and do little to nothing to prevent piracy.

It took a long time for me to learn this. Too long. And, whenever I start to forget, I look at the monolith of boxes of old hint books gathering dust in my garage. If you're an Indie developer, be nice to people. In the end, the ability to be nice is one of the best weapons you have.