Seeking advice on game design: should I prevent means to exploit the game?

Not sure if this goes to IMHO or the Game Room…anyway here goes.

I am doing a web-based game where the player can under-take missions. Each mission is like a dungeon. His progress is automatically saved (it’s like a Roguelike, where there is an auto-save). The game is single player.

The player has the option of quitting a mission if things doesn’t go well for him. At that point, I could

  1. Let him retain all XP and items earned in the mission (it takes far less coding for me to implement this)

  2. Remove all XP and items earned (it takes more coding for me to achieve this)

The idea of option 2 is to prevent certain players to ‘game’ the system. For example, a certain mission may have a monster which drops a sellable item. That monster may appear early in the mission. So it’s possible for players to go in, kill the monster and get the item, quits the mission and then sell the item. He would rinse and repeat this cycle to get money/XP easily.

Is it worth to go out to put an end to such behavior? If I wish to discourage such behaviors, what other alternatives are there?

One alternative that comes to mind is making sure the reward for completing a mission is vastly greater than the intermediate rewards/item drops/whatever.

I’m thinking of games like Diablo II or Titan Quest, where you can go back and fight lower level stuff all you want, but you’ll be gaining much less in terms of item drops, money, xp, etc than if you just continue to progress.

I’d say Tom Scud is on the right track - using carrot instead of a stick. It’s often not worth it to inconvinience people who are playing the game as it is intended to just to stop a few exploiters, unless its a multiplayer game.

I would let the player keep his treasure and XP. It’s generally a bad thing to give the player something and then take it away again. It makes them feel ripped off, even if they’re the ones who chose to bail on the mission.

The key is making sure that rewards are always earned. If there’s a big reward in the level, make sure that it’s given out near the end, so the player can’t just get it by restarting over and over again. If they want to grind the level for money and experience, make them actually grind the level.

That way you set up a tension between doing something that’s easy and old vs. something that’s hard and new. Grinding a familiar space gets boring, so there’s always a tug to go do a new level.

Allowing grinding serves a valuable purpose: It makes balancing the game much easier. You tune the encounters so that playing straight through is slightly difficult. But, because players can go back and replay previous levels, if someone gets stuck they can always go back and grind for a bit to make themselves stronger. If you don’t allow revisiting previous levels and grinding you have to spend a lot more time playtesting and tuning.

If your items/XP scale properly, grinding is self-limiting, anyway. Take Diablo II as an example: When you start up your first character, it’s worth it to kill everything in the Blood Marsh and pick up all the loot and run back to town to sell it all, since at that time, you’re dirt-poor and low-level, and need everything you can get. By the time you get to about level 5, though, you’ll just take a direct path to where you’re going and not bother with the monsters that are out of your way, because you really don’t need any more cracked sashes. And by about level 10 or so, you’re not even bothering to kill the monsters on your direct path, since they aren’t any threat to you, and killing them would be a waste of time. You could grind endlessly if you wanted to, but you’d get better loot by moving on to the next level.

My answer, by way of Nintendo lore:

One of the best things about Legend of Zelda: Link’s Awakening was the over-priced shovel at 980 [IIRC] rupees. Tons of players, myself included, automatically assumed that you had to go out into the world and find 980 rupees. For my part, I thought I was clever enough to regenerate one part of the map over and over, and grind out rupees there. This was an exploit, but I’m not sure if it was a glitch.

Later, the glitch was discovered, that you can save your game while your rupees are being deducted. You would come back from your save state with the shovel, and the amount of rupees you held at save.

There was also the … option to steal the shovel, not that you would want to.

All of this to say [and Yes, Zelda is perhaps not the franchise to argue it with] some exploits are good. Some glitches are un-avoidable. All of them add to the fun. Zelda, and I dare say Nintendo itself would not be where it is today, if there was no “hidden” information. Mario and Zelda are as high as they are, in part due to rumors, -1 worlds, and 99 bottle glitches.

Not sure how far you want to go here, but I would steer the player as far as you can into assuming that you can’t keep items and XP if you bail. However, don’t take the exploit out. If you generate conversation about your game, you will get more people playing it, simply because of the exploit. How many people tried to get MissingNo. ? How much conversation was there after it about putting Rare Candy in Slot 6 ?

You could get the best of both, and remove the exploit in later [harder] dungeons or, perhaps put the exploit in, in the hardest dungeon of all.

**Also, can’t you just nerf the “Run Away” option? **

I mean, that seems to be the easiest thing to do.

Or you could have some dungeons, but not all, that you are committed to, and can’t bail on.

Remember: It’s not a bug, it’s a feature.

You say the game will auto-save the players progress. So how much more coding will it take to put in a secondary save point at the entrance to each dungeon?

Surely all you would need do is use the pre-exsting auto-save coding, but rename the softwares save location.

Does the game have a scoreboard? If not, I’d leave anything that’s not going to blatantly screw up the gameplay later on (interchangeable keys, for example). The only people who will be affected are either deliberately exploiting it (presumably because they think it allows them to have more fun) or who keep getting stuck (and so would probably appreciate the better starting position).

Thanks everyone for your input; I feel inclined to adopt the suggestions given by Tom Scud, Arrogance Ex Machina and the Hamster King, for now. I rather get the game done than to spend time on this issue. Of course, I’ll code it such that I am able to implement any locking/restrictions later on…

It’s web based, so I am dealing with database. It’s not just one single file, but a couple of tables, so it will require some effort to program a secondary save state. Though you do give me an idea of how to better represent the backup data.

No, there is no scoreboard.

So far I have thought at length is I would let the players who wish to cheese the system have their fun. It is easier for me to add a ‘hardcore’ mode later on where the only way to quit the mission/dungeon is to return to the exit, win or die.

If there is a scoreboard, though, I will also want to keep track of the number of tries the player take to conquer the dungeon.

The question you should always ask yourself about “exploits” is “Does this make the game less fun for the player(s)?”

The answer always depends, but in this case it seems like it hinges on:

Is this game competitive/does it have leaderboards? If so, you probably want to discourage people “bailing” on levels in order to get the best chance of a random item. If not, if people want to do that, who cares?

Is the “grind and bail” thing SO GOOD that people will feel hampered if they DON’T do it? As an example, back in Everquest, there were dungeons that could, potentially, contain rare named creatures. Initially, those creatures spawned when the dungeon was created. So what people would do was create an instance of the dungeon, go in, check track for named creatures, and only actually kill anything if the named spawned. Otherwise they’d leave and create another instance of the dungeon. This was SO PREFERABLE to grinding through the whole dungeon and hoping for a named creature (Which could take hours) that it was changed. You don’t want to ENCOURAGE people to re-grind the first section of the dungeon in hopes of rare loot, really. Perhaps a weighted loot algorithm where the deeper into the dungeon a creature is, the better chance of it producing something good? There’s still the CHANCE that the first critter in the dungeon can hit that 0.01% chance of having a really nice item, but it won’t be productive to repeatedly grind the first 10% of the map, compared to doing the whole thing.

If it’s a single player game, who cares ? If a bloke wants to do repetitive grinding for XP on a browser game, let him.

Yes, but the theory is that you should design the game so that the most ‘fun’ route (yeah yeah, subjective term) is, if not the BEST route, at least not the worst route and similarly, that the ‘least fun’ route should not be the best route. It’s AMAZING what people will do when they think that the “best” way to play a game is a way that they don’t find to be any fun.

One thing I’ll throw out that I don’t think has been mentioned yet: Some players might not like the feeling that they can’t help but cheat. Because of the way this works, assuming the player has gained anything at all during that play (and I daresay that’s mostly or always the case), abandoning a level will give them an ‘unfair’ advantage whether they want it or not. It might be a bit frustrating knowing that in order to play the game ‘properly’, the ‘abandon dungeon’ option is essentially a no-go and the player has to get themselves killed instead or something. I’m not 100% sure this applies to your game (or your intended audience) - just thought the possibility was worth mentioning.

Incidentally, what are the consequences of getting killed? If the answer is ‘none’, then I don’t think there’s a problem (or arguably there is, but it’s not limited to the abandon dungeon exploit). If the answer isn’t ‘none’, couldn’t some kind of similar but scaled down consequences be applied to abandoning a level?

This is sortof what I meant by not making the “least fun” option the best choice, or people will feel like they “have” to play that way.