Summer Games Done Quick 2016

This is where you can deliberate anything relating to videogames - past, present and future
Post Reply
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Summer Games Done Quick 2016

Post by Flabyo »

The annual weeklong charity speed running event Summer Games Done Quick is underway, and runs until the weekend.

Watch it live on Twitch.

You can find recordings of the runs as they're completed on this youtube playlist.

There's a lot of Zelda during the week, along with the Bethesda open world games too.

The Demon's Souls run from yesterday is a particular highlight so far...
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

So, here's the Demon's Souls run.



As a developer this stuff is fascinating to me. I have no problem with people exploiting bugs and systems to speed run games, they're really fun to watch and I appreciate the skill level required to do them.

But at the same time seeing some of the bugs and glitches that are exploited can make me face palm and think 'did you not think that was worth fixing?'.

It's worth watching that run, but the basics of what they do here are:

They min/max their character.

This is pretty standard for speed running with any game that has full character development in it. The idea is to create a character build that can do insane amounts of damage in a short space of time, sacrificing all other aspects. So in this case you ramp up magic and stamina as high as you can (up to a point, they explain why they stop where they do in the video) sacrificing all the things that make you harder to kill. The result is a glass cannon, a character build that can kill bosses with spells in two of three hits, but dies if they get hit themselves at all.

Unintended item behaviours

At one point in the run they reveal there’s an interesting glitch when using the ‘cat’ ring. The item is intended to reduce damage from falling, so that’s already going to attract the attention of speed runners looking for ways to shortcut sections by leaping off places that would normally kill them.

I expect the developers will have tuned this item for that, they want to encourage you to use the item for this, but only up to a point. Even with the item fully powered up there are still plenty of fatal drops.

But there’s a bug where dying from a fall when using the ring takes longer than when not wearing the ring. If you pause and reload during this longer death animation, the reload places you where you landed, not where you jumped from. Exploiting this bug allows them to skip vast sections of levels, as the game only requires you to fight the bosses to progress.

This is on the edge of what I would’ve expected a test team to find. Someone might’ve found it by accident, but would not have easily been able to figure out the reproduction method.

Out of Bounds

The classic speed runner trick for sequence breaking is to find ways to get outside the intended world geometry and simply walk around things instead of taking the correct route.

It’s basically impossible to catch every case of this during development without some form of automated testing. And even then, having to run what would be a very time consuming set of tests every time someone adjusts level geometry would be prohibitively expensive.

All you can really do is fix the most obvious ones that test find, and make sure the game has ways to detect if it’s occurred and to reset the player.

Breaking Level Streaming

This is a much newer trick to the speed runner arsenal. Modern games don’t have entire levels loaded into memory at once, they stream content in ahead of where the player is going. If the triggers for this aren’t watertight it is sometimes possible to make something not stream in correctly.

The simplest form of this is where you avoid the thing that causes enemies to spawn. More complex cases can cause entire sections of level data to not load, allowing you to walk through completely empty spaces (See the Sonic Boom: Rise of Lyric run from last year for an astounding example of that…)

Again, test will never find all of these, just the most common cases.

Unexpected Consequences of Game Design

The most important thing they do in this speed run is maximise the players stealth spell. With that, the player can essentially ignore every single non-boss enemy in the game because they will ignore him.

(Not totally in the case of this game, the spell doesn’t make you totally invisible but massively reduces the range at which enemies can see you, but the impact on speed runs is the same, you can just sprint past most things in the game)

This kind of game mechanic drives us poor AI coders nuts. Anything that grants immunity from a game mechanic needs to be very carefully examined.

Animation Cancelling

Another classic. This is where the player performs an action that causes whatever the character is currently doing to stop in favour of the new action.

In this run they exploit the fact that the player sheathe / unsheathe animations have been set to have priority over everything else. You’ll see them doing this in all sorts of places to cancel out of get hit animations (and therefore prevent knock-back from happening), to reduce the effect of stamina reduction when running and so on.

In a single player game this is worth keeping an eye on, but not critical. In a multiplayer game it can *completely shaft game balance*. Read the latest Overwatch patch notes for an example of where animation cancelling leads to a method for Widomaker players to reduce the time between scoped shots to less than game balance dictates, and a good explanation from Blizzard as to why they had to fix it rather than leave it as ‘something for good players to exploit’.

Extreme Sequence Breaking

There are no massive examples of insanely large sequence breaks in this Souls run, but the speed run of Bastion that came on after it has the most insane one I’ve ever seen.

Bastion, if you’ve not played it, requires you to complete levels to get crystals that expand the size of the Bastion. Each level complete awards one crystal, and as you reach certain levels of expansion new levels unlock for play.

To complete the game you just need to finish the final level, and the way the game prevents you from skipping there is that the setup is balanced so that only when the Bastion reaches maximum size is that level available.

Speed runners found a way to item duplicate the crystals. So you can get more than 1 crystal for completing a level. They’re able to skip almost every level in the game and run the whole thing in about 20 minutes.

(The bug they exploit is a really subtle one, and one that probably has a reasonably easy fix, but its so hard to do in normal play that even if they found it in test, which I doubt, they would’ve chosen not to risk a fix)
User avatar
Craig
Member
Posts: 576
Joined: October 25th, 2015, 1:04 pm

Re: Summer Games Done Quick 2016

Post by Craig »

Thanks for the lengthy write up - fascinating stuff!
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

The Might Switch Force run through is great too, no real exploits of bugs, just a trick where they use the recoil of a powerful weapon to jump further and move faster than normal. The skill required to pull that off as consistently as they do in the run is... well, magical.

At one point in that one a member of the dev team calls in and they chat a bit about how devs do love to watch speed running of their own games.

We do. We really do. (I hope one day they do the Fable games on this... I'd be fascinated to see what we missed...)
User avatar
Craig
Member
Posts: 576
Joined: October 25th, 2015, 1:04 pm

Re: Summer Games Done Quick 2016

Post by Craig »

I know this is possibly a can of worms, but talking of balancing in multiplayer, what's your take on snaking in Mario Kart?
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

Personally I would've patched it out, but it's a borderline one.

It isn't really a glitch per se, it's a consequence of a game mechanic being used more precisely than the developers intended.

I think by choosing to keep it in, they're signalling that this is acceptable 'high skill' play. The decision comes down to:

1) How well known is the technique, if I see people doing it can I tell that this is what they're doing or does it just look like cheating?
2) How easy is the method to do? Can it be performed relatively easily once you know how to?
3) How essential is it at high level play? If I'm not doing it, will I always lose?

I don't know MK well enough to answer those questions.

With the Widowmaker quick scope thing in Overwatch it required frame perfect timing, but also gave such an advantage that it was becoming the 'accepted' way to play the character. And from the outside, it just looks like they're cheating.

One thing that separates MK from Overwatch is the level of 'seriousness' taken about the online play. MK is (usually) played pretty casually online, mostly with friends. You can set down 'house rules' and so on. Overwatch is more commonly played with pick-up groups, and taken somewhat more seriously.

(There's also the fact that Nintendo and online balance don't really go well together, outside of a very recent trio of online games (Smash WiiU, Splatoon and Pokken) they've very rarely gone in and patched for balance.)
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

Ok, couple of thoughts on some more of the runs I've watched...



The Ape Escape run uses a massive animation cancelling exploit.

You have a slingshot, pressing the button fires it off blind, but holding the button down translates you to first person to fire it aimed. Turns out if you start the transition animation to first person then release it your character plays the first few frames of that aim then transitions back to idle. Not uncommon.

Where the exploit comes in is that for some reason this cancels the characters falling motion if they were in mid air. By rapidly alternating jump and shoot the character will keep restarting the jump (with its vertical motion) as if it were standing on the floor. Which means you can fly. Goodbye almost every puzzle in the game as you simply fly past everything to get to the Apes.



The Spyro 3 run uses a bunch of physics bugs to let the player jump higher / further than they should.

Back in the PS1 era the maths and technology behind 3D games was less well formalised than it is now. We didn't have middleware to take care of the most common code requirements (rendering, physics etc...) so each studio had to very much roll their own. Physics engines in 3D games are *hard* things to write, which is why even the very best developers now tend to leave it to the experts and buy an engine in.

Add to that that the PS1 was very slow at the kind of maths you normally use for physics calculations (floating point maths) and therefore most developers tended to work in fixed point instead. Without going really technical about the difference, fixed point suffers from rounding errors and isn't as 'precise'. This means objects don't behave quite as 'solid' as they should, you will occasionally get things move very slightly into other things.

These 'false intersections' have to be resolved by your engine or the objects will get stuck together, and there are all sorts of approaches you can take. The most common is to snap one object so that is is outside the other. Spyro 3 here is choosing to apply a force to push the two objects apart. In the case of normal play you're never going to intersect an object by very much, so you don't notice this happening.

The runners have a trick where they know that Spyro uses a different collision shape when sprinting to when he is flying. By transitioning from one to the other whilst moving very close to somethings collision box (usually an enemy corpse, but they do it with other things in the run too) they can engineer a situation where Spyro's collision box is *hugely* intersecting the box of something else. The resulting force the game applies is pretty large too as a result, and that gives them some pretty massive leaps to use as shortcuts.

(They also use something they call 'Zombie mode glitch' to lock Spyro in his swimming state outside of water, that's a much longer and complex thing to explain and I'm hoping a run of something else will have a simpler example I can talk through)
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

So yeah, that was totally someone speed running Symphony of the Night, with inverted castle, in just over an hour.

While wearing a blindfold.

I am... Well to be honest I don't think I've ever seen anything quite like that. The only time he got stuck and needed some assistance was because a shoulder button on the controller failed so he wasn't getting an input he was expecting...

He memorised the whole thing based on sound cues alone, accounting for all the things in the game that are random...

User avatar
Craig
Member
Posts: 576
Joined: October 25th, 2015, 1:04 pm

Re: Summer Games Done Quick 2016

Post by Craig »

Going to catch up on these this weekend. My favourite thing is someone is sat on Twitter correcting you any time you say speed run (it's speedrun apparently.) I've taken to using speed run as much as possible just because.
User avatar
Flabyo
Member
Posts: 3576
Joined: August 8th, 2013, 8:46 am
Location: Guildford

Re: Summer Games Done Quick 2016

Post by Flabyo »

I blocked that guy. Because fuck that guy. (It's probably a bot)
User avatar
Craig
Member
Posts: 576
Joined: October 25th, 2015, 1:04 pm

Re: Summer Games Done Quick 2016

Post by Craig »

I thought it might be, but looking at his timeline he varies it up with pretty natural sounding language. I like to think someone is literally spending hours pressing F5 on twitter's search page for "speed run".
Post Reply