Tuesday, July 19, 2011

'sploitable mechanics

Continuing on my theme from last night, we're talking about exploitable mechanics. Tonight I'm going to cover the difference in power of exploits.

Here's your classic example. In Super Mario Bros. you could jump on koopas against a wall in such a way to generate as many extra lives as you please. (So long as it's less than 99, that is.) By Mario 3 they realized that that's a feature, not a bug, so they implemented more loops to allow you to get lives. Broadly, these fall into two categories.

Coin loops; if you run around the same terrain twice coins don't regenerate but bricks do. If there's a Pow block in the area you can jump on it, turn the blocks into coins, go down a tube and repeat.

Life cycles: In a couple levels (1-2, for example) you can jump on regenerating enemies, and so long as you don't touch the ground you can generate extra lives like in Mario 1.

So what's the difference? Magnitude. 100 coins buy you one extra life. Even though you're sweeping up twenty or thirty coins in a particular coin loop, it takes significantly more effort to gain the lives than if you're jumping on the goombas. (Assuming you've got the mad skillz to pull of the goomba jumps. It ain't easy to keep it up for any length of time.)

Broadly speaking, if I want to bolster my life total, which exploit do I use? A life cycle; it takes me a lot less time. In general an exploit is more or less worthwhile depending on how much effort it takes to use it versus how much reward you can get.

Let's go with a classic Kingdom of Loathing example; Boozerbear's Salty Dogs.

Boozerbear, or so the story goes, found a bug in the code that let him turn any item in the game into a Salty Dog. This is a low output exploit; while it's always good to have booze on hand, salty dogs aren't that special of a drink. The real bonanza came when Pimonkey suggested that you could turn store items into Salty Dogs

Buy any amount of chewing gum on a string, for 24 meat each.
Convert into Salty Dogs.
Autosell Salty Dogs for 65 meat each

Gives you 42 meat profit per unit. Meat being the currency in the game. Infinite money is a whole lot better to have. While some of their hordes of booze and meat were nuked by the game admin they were still left very wealthy. Boozerbear's stores of salty dogs haven't run out yet.

He used to put salty dogs up for sale at 66 meat each; for a while he tried selling them at 33 meat each, but a player named Qrrbrbbrl (you'll excuse me if I misspell that) pulled the same stunt on him; buying the salty dogs, autoselling them and buying more. He's still got about 500,000 for sale at 130 meat per.

I'll go one simpler. There's an item in the game called a meat vortex. If you use it on yourself you lose your item and some meat. So you quickly learn not to do that. But someone figured out that if you had no meat, instead of going into the negatives you would roll over to the high end of the scale; about four billion meat. The secret got out, and the economy went up in smoke. Delicious grill smoke. (There was also an item duplication bug running rampant at the time, and no recent server backups that could be rolled back to. I gotta say, it was pretty entertaining.)

On the flip side you can get exploits that are too unwieldy to use properly. Take Project X. Project X was a Magic deck, a tournament deck from the Ravnica/Time Spiral standard season. Let me walk you through the combo.

Start with Saffi Eriksdotter in play.
Play Crypt Champion, without paying the red mana.
Since you didn't use any red mana, crypt champion hits play with a "sacrifice this creature" trigger on the stack.
Sacrifice Saffi, targeting crypt champion. Saffi goes to the graveyard.
Crypt champion's trigger resolves, sending it to the graveyard.
Saffi's ability goes off, returning Crypt Champion to play.
Crypt Champion's second ability goes off, returning Saffi to play as well.
Since you didn't spend the red mana (0r any mana) this time either Crypt champion has another sacrifice trigger. Sacrifice Saffi to save it again...

It's a stable loop of two creatures entering and leaving play. There are ways you can convert this to other useful resources; if you also have an Essence Warden in play you can gain an arbitrary amount of life. (Thus the name "Project X", since it allows you to gain X life.)

Now, if you're playing the game with physical cards, you can demonstrate the loop to your opponent and say "Ok, run this loop a million billion times." The rules allow for it, even the finicky tournament rules. It's a different story in the digital game.

On MTGO (Magic: the Gathering Online) there's no way to specify that a loop is happening. So you have to run through each cycle individually. Furthermore, you have to go through each trigger and priority pass individually to make sure that you've got them all correctly. So while it's still technically possible to play the game online it involves oh so many clicks and it's really just not worth it.

This produced an interesting disparity; there's a certain class of tournament players who use MTGO tournaments to predict the metagame for real life tournaments. But with a strong disincentive to play Project X online the data is necessarily warped. Since Project X was never really a dominant deck it didn't make that much of a difference.

There's another factor that makes one infinite exploit better than another; versitility.

Take the potion exploit from Morrowind I mentioned earlier. It's not the only infinite money bug in the game. Shopkeeper prices depend on your reputation with the shopkeeper. At least in some cases, you can max out your reputation by bribing them, to the point where they buy things at a higher price from you than they ask when they sell that same thing to you. So you can keep buying and selling it and make your money that way. But the potion bug is more interesting, since in addition to arbitrarily large sources of wealth it allows you to raise your stats to stupid heights. (It also requires less starting capital than the bribery exploit.)

Again, Magic provides plenty of examples. In a highly competitive game that encourages innovation, in a game with a bazillion interlocking pieces it should come as no surprise that many different combos exist. Furthermore, they can be generally ranked in terms of power level.

Infinite mana is good, but won't win you the game unless you also happen to have some way to use that mana.
Infinite life can sometimes just win you the game, but your opponent might be able to deck you, or just go even more infinite with something else.
Infinite creatures is good, but they usually take a turn to kill your opponent.
Infinite card draw will usually win you the game right there, since if you have your entire deck in your hand you presumably planned out this scenario and have some combination of cards that you can use to kill your opponent.
Infinite direct damage usually does the trick.

And of course there are other infinities (Project X is essentially infinite creatures coming into play. You need more pieces to turn that into a useful sort of infinity.)

At this point we could go into another constraint; the resources required to get your exploit going. But by and large, this doesn't come up in most contexts. Magic is directly competitive, you only have so much time and so many cards with which to win the game before you lose it. In terms of an infinite gold bug on WoW, or item duplication or some such, you aren't so directly competing against people, so it doesn't much matter if it takes too many resources to start it off. You can gather the resources at your leisure. While I like talking about magic, I think I've spoken on this topic enough for now.

No comments:

Post a Comment