Donkey Kong Forum

Donkey Kong Strategy => Advanced Donkey Kong Strategy => Topic started by: xelnia on September 01, 2013, 06:58:28 AM

Title: Spring Theory
Post by: xelnia on September 01, 2013, 06:58:28 AM
Ever since I started playing DK I’ve been fascinated with the elevator stage. Of all the boards, it truly is the only one on which no player should ever die. However I still find myself dying, as do even the best players. I decided to take a closer look at the stage when the code for the game was posted on the forums. What follows in this post, and probably the several after it, is a technical, code-level analysis of the springs. Since I’m not a programmer, engineer, or math expert I apologize up front for any mistakes or inconsistencies in the terminology and presentation. I encourage everyone to dig in, double-check my work, and break it down even further.

Let me also state that I don’t think any of the following information will be groundbreaking or crucial for most players, especially beginners. This is just an extraction of information that lies in the code and is intended for those of us who enjoy “looking under the hood.” I won’t be delving too deep into actual spring strategy, but hopefully this post will get the wheels churning and someone will see something useful.

I used a variety of methods to gather this information. Starting with the DK code posted by Jeff Willms, I used WolfMAME 106, 140, and 149 and a variety of save-states to analyze the spring behavior in Donkey Kong US Set 1 and D2K: Jumpman Returns.

This post is concerned with the actual springs themselves. Hopefully further analysis on fireball movement, leeching opportunities, elevator movement, etc. will come later.

Spring Basics

Rate of Generation

First and foremost, how often are the springs generated? Each new spring corresponds with the Bonus Timer ticks and one spring is generated for every “100” that the timer decrements.

Spring Generation:
Level 1 (Japan Set, D2K) = Every 120 frames, or 2 seconds. 3 extra at 000 Bonus. 52 total.
Level 2 = Every 100 frames or 1.667 seconds. 3 extra at 000 Bonus. 62 total.
Level 3 = Every 80 frames or 1.333 seconds.4 extra at 000 Bonus. 73 total.
Level 4+ = Every 60 frames or 1 second. 5 extra at 000 Bonus. 84 total.

Each spring has a “life” of 180 frames. The beginning and end of this life cycle occurs off-screen. Depending on the “length” and “scrunchiness” of the spring, it can spend anywhere from 1 to 9 frames off-screen before it makes its appearance. All springs take 25 frames (inclusive of their off-screen movement) to make their initial on-screen landing near Kong’s feet. They then bounce along for another 75 frames before entering their “falling” state, which lasts a further 56 frames before they disappear off the bottom of the screen. At this point they still exist in the code, but only for 24 frames before their memory location is used for the next spring. This timing occurs for every spring, regardless of level. The only difference between levels is how often the springs are generated.

Spring Path

From here on out, please note that x-values INCREASE as Jumpman moves to the right, and y-values DECREASE as Jumpman moves up.

Every spring follows the same parabolic path. The 25 y-values for this path are as follows (in hex):
50 4D 4A 47 45 43 41 3F 3E 3D 3D 3C 3C 3C 3D 3D 3E 3F 41 43 45 47 4A 4D 50

This pattern repeats until the spring falls. You’ll notice that at the beginning and end of the path the spring is at y=50. This causes the spring to slide along the girder for two frames every time it lands. This has the potential to make two different springs appear to be the same, depending on when the player processes the landing animation. Springs move 2 pixels horizontally every frame during the bounce phase, and their vertical distance varies depending on where they are in their path. During the falling phase, springs drop at a rate of 3 pixels per frame.

A simple graph of this movement looks like this:

(http://i.imgur.com/GcXQBA5.png)

Spring Length

Now, the spring quality that most people are interested in: “length.” I will use the numbering system that Dean Saglio used in his pop quiz: 0 for the shortest spring and 15 for the longest.

Springs can be generated in one of 16 locations. They always start, off-screen, at y=50, but their x-value can be any of 16 points, each separated by 1 pixel. Technically, spring Types 0 through 7 are actually generated on the right side of the screen. The shortest spring, Type 0, initially bounces to the left of the elevator pulley and has an x-value (hex) of 28 when it lands. The longest spring, Type 15, has a value of 37. So, the initial landing spot (near Kong’s left foot) of all 16 springs shakes out like this:

Type 0: 28
Type 1: 29
Type 2: 2A
Type 3: 2B
Type 4: 2C
Type 5: 2D
Type 6: 2E
Type 7: 2F
Type 8: 30
Type 9: 31
Type 10: 32
Type 11: 33
Type 12: 34
Type 13: 35
Type 14: 36
Type 15: 37

Here is an animated GIF that demonstrates the initial landing spots for all 16 springs.

(http://i.imgur.com/OY6gsVA.gif)

Getting Up Pauline's Ladder

Once you’ve traversed the lower obstacles and made it up to Kong’s girder, all that remains is to navigate the springs and rescue Pauline. There are various strategies for doing this, but they all boil down to one fact: you must get close enough to the ladder on one spring so you have time to ascend the ladder before the next spring hits you. The amount of wiggle room you have varies depending on the level and the type of springs that are bouncing your way.

The following information is mostly about what is theoretically possible in a pixel-perfect, frame-by-frame world.

Safe Spots and Pauline's Ladder

The two safe spots are each 13 pixels wide. These safe spots are areas where no spring will ever hit you. The edges of these safe spots are determined by the shortest and longest springs. The longest spring (15) determines the LEFT edge of the safe spots, and the shortest spring (0) determines the RIGHT edge.

The 1st safe spot extends from x=A7 to x=B4. For reference, Jumpman’s position when he ascends the ladder to Kong’s girder is x=B3. The edge of Kong’s girder is x=BB. So, there are actually 7 pixels of danger to the right of Jumpman as he stands in the 1st safe spot…but why would you be going in that direction anyway? ;)

The 2nd safe spot extends from x=75 to x=82. The “center” of Pauline’s ladder is at x=93, but since the ladder is 8 pixels wide (x=90 to x=97), it is actually offset to the left.

As stated above, these two areas are permanent safe zones. However, the edges of these zones can shift as different springs enter the screen. Below is a table of how the x-value for each safe spot’s inner edge shifts for every spring.

Type     1st Safe Spot  2nd Safe Spot
Type 0   98             82
Type 1   99             83
Type 2   9A             84
Type 3   9B             85
Type 4   9C             86
Type 5   9D             87
Type 6   9E             88
Type 7   9F             89
Type 8   A0             8A
Type 9   A1             8B
Type 10  A2             8C
Type 11  A3             8D
Type 12  A4             8E
Type 13  A5             8F
Type 14  A6             90
Type 15  A7             91


It’s easy to see that running right up to the ladder is possible on the longest and shortest springs, depending on which safe spot you’re in. As each spring shifts the safe spot, Jumpman can get a “jump” on the ladder, of varying lengths, which increase the odds of making the final run up to Pauline.

Here are some related graphics:

This graphic needs a little refining. The spring paths are basically showing the path followed by the bottom center of each spring.
(http://i.imgur.com/xfviwOc.png)

(http://i.imgur.com/aKcOt1w.png)

(http://i.imgur.com/Wzdmiex.png)

There are also safe spots ON Pauline’s ladder.

As most players know, certain springs reach higher than others and can collide with Jumpman even when he’s almost to the top. When Jumpman is standing at the bottom of the ladder, his sprite is centered at y=50. He moves up the ladder in 2 pixel increments and when he reaches y=30 he has reached the top. However, Jumpman only needs to reach y=38 to be safe from all springs.

I advise everyone to check out Ethan Daniels’ hitbox diagram in order to get an idea of how much space is needed to avoid the springs:

http://donkeykongforum.com/index.php?topic=493.msg8905 (http://donkeykongforum.com/index.php?topic=493.msg8905)

Below is a table showing each spring type, the extreme x,y coordinates for Jumpman and each spring when they collide on the ladder (essentially the boundary Jumpman must cross to survive), and the y-value Jumpman must reach in order to be safe for each given spring.

                             Ladder Collision:                              Spring
        Landing "x" - [Spring "x,y"/Jumpman "x,y"] - Jumpman Safe "y" - Collision Direction - 1st Safe Spot - 2nd Safe Spot
Type 0      28            98,43         93,3C             3A                  up                   98              82
Type 1      29            97,45         93,3E             3C                  up                   99              83
Type 2      2A            98,45         93,3E             3C                  up                   9A              84
Type 3      2B            97,47         93,40             3E                  up                   9B              85
Type 4      2C            98,47         93,40             3E                  up                   9C              86
Type 5      2D            97,4A         93,44             42                  up                   9D              87
Type 6      2E            8E,4A         93,44             42                  down                 9E              88
Type 7      2F            8F,4A         93,44             42                  down                 9F              89
Type 8      30            8E,47         93,40             3E                  down                 A0              8A
Type 9      31            8F,47         93,40             3E                  down                 A1              8B
Type 10     32            8E,45         93,3E             3C                  down                 A2              8C
Type 11     33            8F,45         93,3E             3C                  down                 A3              8D
Type 12     34            8E,43         93,3C             3A                  down                 A4              8E
Type 13     35            8F,43         93,3C             3A                  down                 A5              8F
Type 14     36            8E,41         93,3A             38                  down                 A6              90
Type 15     37            8F,41         93,3A             38                  down                 A7              91


(http://i.imgur.com/gH114Ig.png)

Jumpman’s Movement

An important, albeit code-level, factor in approaching the spring stage is that when Jumpman is puttering around the board, his sprite has an internal value that is constantly changing and he actually pauses every third frame. There’s more on this here: http://donkeykongforum.com/index.php?topic=383.msg6904;topicseen#msg6904 (http://donkeykongforum.com/index.php?topic=383.msg6904;topicseen#msg6904)

Essentially, memory address 620F is a “movement indicator” (this is the comment for this location in the code posted on DKF) and counts down 2-1-0, one value per frame (1/60 second), repeatedly, while running. Value 2 is when the sprite changes and Jumpman pauses, values 1 and 0 occur when Jumpman is actually moving. When climbing a ladder the same memory address counts down 4-3-2-1-0. For values 3-2-1-0 Jumpman is stationary on the ladder, and when the value reaches 4 again he moves up the ladder 2 pixels.

Why is this important? When standing and waiting to make a move on the springs, the value stored in 620F determines how soon Jumpman will move after you make a joystick or keyboard input. If the value is 2 or 1, he will move right away. If the value is 0, there will be a “dead” frame where the value changes to 2 and the sprite is updated before any movement occurs. More importantly, this effects the point at which Jumpman can climb the final ladder. Jumpman can NOT climb a ladder until 620F reaches 0. So, if he reaches the left edge of ladder, but 620F is at 1, it will take one extra frame to start climbing the ladder regardless of the timing of the “up” input. This can have huge ramifications if one does not “corner” up the ladder as described by Dean here: http://donkeykongforum.com/index.php?topic=429.msg7645#msg7645 (http://donkeykongforum.com/index.php?topic=429.msg7645#msg7645)

What Does It All Mean? (aka TOO MANY WORDS JUST POST PICTURES JFC)

To determine which spring combinations are passable, I asked myself the following questions:

1) What are the minimum frame requirements to get from each safe spot on the girder to each safe spot on Pauline’s ladder?

2) How long must I wait after each spring passes over Jumpman’s head, in both the 1st and 2nd safe spots, before I can make my approach to the ladder?

3) How long has the trailing spring been heading my way while I wait for my opportunity to ascend the ladder?

Let me reiterate that this is all about what is technically possible, not necessarily practical.

Due to the sprite values discussed earlier, there are 3 possible answers for every location in Question 1. For example, running from 2nd safe spot x=82 to ladder safe spot y=38 can take 76, 77, or 78 frames.

For Question 2, you must wait for the spring to pass over your head by 2 frames/4 pixels in the 2nd safe spot before you can run. So, if you’re standing at x=82, you must wait for the spring to be at x=88 before you can run. In the 1st safe spot, you must wait at least 3 frames after the spring bounces in front of you before you can run. This is all assuming you’ve given yourself the maximum jump allowed by each spring type.

The exception to these numbers are the two longest springs, 14 and 15. Since you can wait at the left edge of the ladder for these springs to pass, you can press “up” as they pass you. However, cornering a ladder this way automatically warps you to the middle of the ladder. In the case of a Type 14, this is x=90 to x=93. For a Type 15, it’s x=91 to x=93 (but you might as well just wait at x=90…it doesn’t make a difference for a Type 15). This warp necessitates waiting an extra frame before climbing the ladder. Therefore, Types 13, 14, and 15 all have the same wiggle room when sneaking between springs from the 2nd safe spot. This extra frame of waiting also explains the D2K killscreen. A pixel-and-frame perfect run up the ladder requires 1 extra frame of waiting, and is 1 frame short of reaching safe spot on Pauline’s ladder. One f***ing frame!!!

For Question 3, the trailing Level 4 spring has been headed your way 13 frames by the time you can make your move from the 2nd safe spot, and 14 frames by the time you can make your move from the 1st safe spot. On Level 3, the trailing spring has yet to be generated, still needing 7 frames or 6 frames depending on safe spot. Level 2 springs need 27 or 26, and Level 1 D2K springs need 47 or 46 frames to be generated.

For example, on Level 4 I’m waiting in 2nd the safe spot and I see a Type 12 spring. I move into the most ideal position (x=8E), and as it passes me I run for the ladder and see that a Type 4 spring has landed and is on its way. In this case, I only need 43 frames get to the safe spot on Pauline’s ladder (for Type 4, y=3E). It takes a Type 4 spring 79 frames to reach Jumpman on the ladder, but since it's already been heading my way for 13 frames before I can run, it only needs 66 more frames to reach the ladder. 66 frames minus the 43 I need to reach the safe spot = 23 frames of wiggle room.

Instead of pasting my enormous collection of thousands of data points, I will try to summarize my findings below in the graphics below.

First, find the Type of spring that is the “leading” spring in the vertical column on the left. Then, move horizontally to find the Type of spring that is the “trailing” spring. Where the two rows intersect is the “wiggle room”, in frames, that you have to complete the run up the ladder. Cells that are colored orange are spring combinations that may or may not be possible depending on Jumpman’s sprite value at 620F when you make a run for it. Referring to the example above, use the L4 chart and find "12" row in the left hand column of the "2nd safe spot" chart. Then follow it over to "4" column, and you'll see that 23 frames is the amount of wiggle room to pass a [12,4] combo.

I will end this post with these graphics because 1) my brain is full, and 2) I want to give people a chance to digest all of this and suggest corrections, additions, etc.

Other things to address:
1) Does “scrunchiness” matter? (no)
2) How many possible combos can you pass in order to get from the 1st safe spot to the 2nd?
3) Could jumping springs be realistically incorporated into the game?

Level 1 (Japan Set, D2K) Combos

(http://i.imgur.com/A6pcbUg.png)

Level 2 Combos

(http://i.imgur.com/4QVtxF4.png)

Level 3 Combos

(http://i.imgur.com/HFpreMJ.png)

Level 4 Combos

(http://i.imgur.com/e0YqGIf.png)

tl;dr. wait for a long, then go on a short.

Edit: Fixed some not good grammar. Clarified a couple of paragraphs. Changed the link to Ethan's hitbox diagram.
Title: Re: Spring Theory
Post by: f_symbols on September 01, 2013, 07:10:17 AM
Love it  :o  Thanks mate!  The collision chart implies a need to learn comfort with springs #4-9 as they require the least y-value clearance...
Title: Re: Spring Theory
Post by: marinomitch13 on September 01, 2013, 07:21:27 AM
I'm blown away.

Love the 'tl;dr' comment. Thanks a TON Jeremy.
Title: Re: Spring Theory
Post by: Bliss1083 on September 01, 2013, 08:14:31 AM
I've been working on the Right of the ladder climb for awhile now. Weird how now others are looking at this too! Def. Gain a lot of points from it
Title: Re: Spring Theory
Post by: JNugent on September 01, 2013, 10:01:45 AM
I'm freaking impressed Kappa.
Title: Re: Spring Theory
Post by: tom bradley on September 01, 2013, 10:15:05 AM
Thanks for posting that for the community Jeremy! Although I probably misunderstood what you meant by the 16 springs, I'm sure there are springs that go further than the ones on the gif you provided?
Title: Re: Spring Theory
Post by: Drunkguy89 on September 01, 2013, 10:34:32 AM
Yeah, huge amount of detail and effort in this, good job Boss  8)
Title: Re: Spring Theory
Post by: SQUIIDUX on September 01, 2013, 02:45:03 PM
GDAMN MAN :o :o :o
Title: Re: Spring Theory
Post by: f_symbols on September 01, 2013, 04:30:55 PM
Thanks for posting that for the community Jeremy! Although I probably misunderstood what you meant by the 16 springs, I'm sure there are springs that go further than the ones on the gif you provided?

Tom, there are ONLY 16 different spring types with regard to where they land on the girders, all springs will land within a 16 pixel range (x-value), the shortest is termed "0" and the longest is termed "15", then, they travel a set distance, on a set arc, between each bounce, the distance traveled is "fixed" and the only variable is where the spring first landed; the overlay image summarizes this well, it shows all 16 possible landing spots and the respective paths thereafter.
Title: Re: Spring Theory
Post by: dru on September 01, 2013, 09:45:17 PM
Holy sheets of foil wrapped delicious brownies. This is an awesome guide, well done!  ;D
Title: Re: Spring Theory
Post by: xelnia on September 01, 2013, 10:04:41 PM
Love it  :o  Thanks mate!  The collision chart implies a need to learn comfort with springs #4-9 as they require the least y-value clearance...

Indeed. Dean has mentioned how he always thought there was a "sweet" spot somewhere in the middle, and I think that 5 and 6 are your best friends. 5, 6, and 7 all have the same y-value clearance, but 7 can nab you one frame sooner than 5 and 6.
Title: Re: Spring Theory
Post by: muscleandfitness on September 02, 2013, 12:00:49 AM
wht da im lost after the first word.. fkkkk
Title: Re: Spring Theory
Post by: tom bradley on September 02, 2013, 12:24:33 AM
Thanks for posting that for the community Jeremy! Although I probably misunderstood what you meant by the 16 springs, I'm sure there are springs that go further than the ones on the gif you provided?

Tom, there are ONLY 16 different spring types with regard to where they land on the girders, all springs will land within a 16 pixel range (x-value), the shortest is termed "0" and the longest is termed "15", then, they travel a set distance, on a set arc, between each bounce, the distance traveled is "fixed" and the only variable is where the spring first landed; the overlay image summarizes this well, it shows all 16 possible landing spots and the respective paths thereafter.

Thanks for explaining that Ethan, I really wasn't getting that one bit :P.
Title: Re: Spring Theory
Post by: hchien on September 02, 2013, 07:11:08 AM
Bookmarked.  Awesome awesome job. 

I still haven't read through the entire post, but I'll share some of my observations (since I know some of you, ahem Vincent, aren't very good with numbers):

1- The 2nd spring is more important than the 1st spring

I have felt this way for a long time.  I posted this "hunch" on cagdc/old tg forums a few times, but never had any concrete evidence for it.  If you look at the chart titled "L4 2nd safe spot wiggle room", you'll see a 2 pixel change in the 2nd spring results in a large difference in the range of 1st springs which are green, but in the reverse situation the difference is smaller.

2- No matter how good of a jump you have, if you get a very long 2nd spring (14 or 15) you will never make it up.

I was never sure if this was true or not.  I knew it was very close.  Now I know!

3- It is easier to finish the board from the 2nd safe spot than the 1st, but not by much!

Does this mean we should be attempting to finish the board from the right more often?
Title: Re: Spring Theory
Post by: stella_blue on September 02, 2013, 08:37:53 AM

Jeremy, allow me to join the others in commending you on an excellent and thorough analysis.

Could we please have 206 additional sets (in color, collated, and bound) by 9:00 AM tomorrow for our annual convention?  We currently have 204 forum members, but I'm operating under the assumption that Vincent will lose his copy, twice.

I'll arrange for delivery of 8 dozen "South of the Border" ultimate nachos platters.

Title: Re: Spring Theory
Post by: Shane_NC on September 02, 2013, 04:05:28 PM
Well done, best thread ever
Title: Re: Spring Theory
Post by: craighiphopfish on September 02, 2013, 05:39:49 PM
This is insane
Title: Re: Spring Theory
Post by: xelnia on September 02, 2013, 07:50:52 PM
Thanks for the positive feedback everyone. I think there is still a lot more that can be gleaned from this data.

Two things I was thinking about last night:

1) Looking at the "wiggle room" charts shows that the springs can actually be grouped together in classes. It appears that regardless of what the leading spring is, you'll always have the same amount of wiggle room with a 1 or 2 spring, 3 or 4, 6 or 7, 8 or 9, 10 or 11, 12 or 13, and 14 or 15. For example, if the leading spring is an 8, then I have the same amount of wiggle room if the trailing spring is a 6 or 7 (21 frames from 2nd spot, or 16 frames from 1st spot).

2) I don't think I'd ever be comfortable trying to sneak between springs that have a single-digit frame of wiggle room (a [7,9], for example). So, the practical approach to using those wiggle charts might involve determining my own reaction time and using that to determine a safe range of spring combos to go on from either side. If my reaction time is, say, 200 ms on average that would be equivalent to 12 frames. So, then I subtract 12 from all of the values in the wiggle room charts to give me a practical, safe range of spring combos.

On second thought, I'd better get comfortable with it...the frames of wiggle room for D2K springs from Level 10 to Level 13 are all single-digit.  :o
Title: Re: Spring Theory
Post by: mikegmi2 on September 04, 2013, 06:43:49 AM
I'm really impressed, awesome job!

I'm also glad that this confirms what I've told a few people regarding not having to go on long springs only...and like Hank said above, the second spring is much more important than the first.

So cool that someone did this, and did such a great job breaking it down and analyzing it.  Amazing.
Title: Re: Spring Theory
Post by: hooch66 on September 04, 2013, 11:54:22 AM
Thread bookmarked. This is some awesome stuff. I'm not sure I grasp it all, but it is still awesome.
Title: Re: Spring Theory
Post by: ChrisP on August 19, 2015, 12:52:55 AM
Obviously I read this legendary thread when it was first posted, but never really *studied* it.

Doing thatt now for the first time, since my spring game has gone to absolute shit.

Thank you!
Title: Re: Spring Theory
Post by: dnickolas on July 10, 2016, 01:49:37 AM
I'm guessing that I do springs incorrectly. By the time I know I have to retreat I'm already moving up the ladder and can only make it back to safety if it's the absolute "worst" spring for the one I left on.

So... after "take off" do you guys have the entry spot (not first bounce) memorized to allow for retreat, or should I not be starting up the ladder until the follower lands at a safe spot for when I took off? Would I have enough time to climb if I did that?

I feel like an idiot dying as often as I do on the most survivable level in the game. I expect to die on barrels when I group a little too long and a fireball runs up on the right super fast. I expect to get screwed on pie factories once in a while. And I expect to get screwed on rivets. But not springs!
Title: Re: Spring Theory
Post by: xelnia on July 11, 2016, 01:08:29 AM
I'm guessing that I do springs incorrectly. By the time I know I have to retreat I'm already moving up the ladder and can only make it back to safety if it's the absolute "worst" spring for the one I left on.

So... after "take off" do you guys have the entry spot (not first bounce) memorized to allow for retreat, or should I not be starting up the ladder until the follower lands at a safe spot for when I took off? Would I have enough time to climb if I did that?

I feel like an idiot dying as often as I do on the most survivable level in the game. I expect to die on barrels when I group a little too long and a fireball runs up on the right super fast. I expect to get screwed on pie factories once in a while. And I expect to get screwed on rivets. But not springs!

Ideally, the final climb and first bounce of the trailing spring happen at pretty much the exact same time. This means you've positioned yourself as close to ladder as possible based on the first spring, and made your move as soon as the first spring has passed you. At that point you would assess the trailing spring and whether to continue the climb or retreat.

The colored charts in the OP indicate how much breathing room you have to get from the most ideal safe position on the girder (based on the first spring) to a safe height on the final ladder (based on the trailing spring). In the best case scenario of a [15,5], [14,5], or [13,5] combo you have 33 frames, or about 0.55 seconds. That's 0.55 seconds to position yourself correctly, assess whether the trailing spring is safe, and then decide to climb the ladder. Not a lot of time, and the time only goes down from there. So, waiting too long to climb the ladder will make otherwise safe combos more dangerous.

Title: Re: Spring Theory
Post by: YesAffinity on July 11, 2016, 09:05:42 AM
I'm guessing that I do springs incorrectly. By the time I know I have to retreat I'm already moving up the ladder and can only make it back to safety if it's the absolute "worst" spring for the one I left on.

So... after "take off" do you guys have the entry spot (not first bounce) memorized to allow for retreat, or should I not be starting up the ladder until the follower lands at a safe spot for when I took off? Would I have enough time to climb if I did that?

I feel like an idiot dying as often as I do on the most survivable level in the game. I expect to die on barrels when I group a little too long and a fireball runs up on the right super fast. I expect to get screwed on pie factories once in a while. And I expect to get screwed on rivets. But not springs!

I'm usually starting up the ladder when assessing the whether the next spring after running will require me to retreat or if I can keep going.  That is, if I make it to the ladder.  Sometimes, my cornering is chit and I'm pressing up but not actually going up, because I short-changed myself on the run, in which case I have to run back whether it was a good opportunity or not.  FailFish

The point is, it is possible to get a smidge up the ladder and retreat back down and back to the safe spot to the left of the ladder, if needed.
Title: Re: Spring Theory
Post by: dnickolas on July 11, 2016, 10:33:27 AM
I'm guessing that I do springs incorrectly. By the time I know I have to retreat I'm already moving up the ladder and can only make it back to safety if it's the absolute "worst" spring for the one I left on.

So... after "take off" do you guys have the entry spot (not first bounce) memorized to allow for retreat, or should I not be starting up the ladder until the follower lands at a safe spot for when I took off? Would I have enough time to climb if I did that?

I feel like an idiot dying as often as I do on the most survivable level in the game. I expect to die on barrels when I group a little too long and a fireball runs up on the right super fast. I expect to get screwed on pie factories once in a while. And I expect to get screwed on rivets. But not springs!

I'm usually starting up the ladder when assessing the whether the next spring after running will require me to retreat or if I can keep going.  That is, if I make it to the ladder.  Sometimes, my cornering is chit and I'm pressing up but not actually going up, because I short-changed myself on the run, in which case I have to run back whether it was a good opportunity or not.  FailFish

The point is, it is possible to get a smidge up the ladder and retreat back down and back to the safe spot to the left of the ladder, if needed.

I think a fun thread would be "things you do well and things you suck at." I'm usually solid with getting ON ladders, but getting off them is where I typically get stuck. So when I'm like 1/4 of the way up the ladder and need to retreat I'll get stuck at the bottom holding left.

While we're on springs, is it pretty much settled that getting the purse only nets a few hundred points? Seems like a lot of stress to add less than 6k to a run, unless it also helps mitigate points lost waiting for a good couple springs and gets you to average more than 600 overall.
Title: Re: Spring Theory
Post by: up2ng on July 13, 2016, 08:49:49 AM
I'm guessing that I do springs incorrectly. By the time I know I have to retreat I'm already moving up the ladder and can only make it back to safety if it's the absolute "worst" spring for the one I left on.

So... after "take off" do you guys have the entry spot (not first bounce) memorized to allow for retreat, or should I not be starting up the ladder until the follower lands at a safe spot for when I took off? Would I have enough time to climb if I did that?

I feel like an idiot dying as often as I do on the most survivable level in the game. I expect to die on barrels when I group a little too long and a fireball runs up on the right super fast. I expect to get screwed on pie factories once in a while. And I expect to get screwed on rivets. But not springs!

These are excellent questions.  You are not necessarily doing anything "incorrectly", it's just a difficult portion of the game to get through until you've had a lot of experience and practice.

It is generally possible to retreat once you are already on the ladder, but the timing is pretty tight and if you are slightly wrong about judging the spring (should have kept going up instead of retreating) then you could get hit during this process.

The most precise way to judge the spring locations is based on where they bounce upon the yellow segment of the girder.  However, if you do it that way it will require excellent reflexes to be able to make your decision and react quickly enough to avoid being hit by the spring (but it's certainly possible and is how most of us start out doing it).  That's because you are not necessarily using all of the information available.

To answer your next question, yes, I take advantage of the information gained from the entry arc in addition to the bounce location and I believe most of the best players also do this as well.  Basically, if I am approaching the ladder, I will notice (mostly with peripheral vision) if the trailing spring is "generally bad" (maybe spring numbers 12 - 15 or so) because these tend to have a noticeably high entry arc.  By using this information, I am generally able to determine that I do not want to complete the ascent before I ever step onto the ladder (although occasionally I still have to retreat from the ladder).  Once I know this, I will watch to see where exactly the spring bounces along the yellow section in order to more precisely determine which spring it is, which helps with the next portion of my method.

Lastly, I use a "positional based" instead of a "timing based" approach.  This basically means that I take advantage of the fact that the "safe spot" is basically a sliding window of safe locations on which to stand depending upon which spring is bouncing overhead.  So, if the trailing spring is determined to be a number 15 spring (narrowing it down first based on arc angle and then by using the subsequent bounce location), I know that I won't be climbing the ladder.  But, I don't have to retreat all the way to the yellow block either.  I only need to retreat a very short distance -- stopping and standing pretty much tangent to the ladder -- because I know that the path of a 15 spring will miss me there.  The safe spot window has temporarily stretched to the right.  (See the diagrams above).  Once I've determined where I can safely stand a new spring will be entering and I am now evaluating this new spring's entry arc.  If this entry arc feels safe (0 - 11 or so), I will use the previous 15 spring to start my approach from my new modified safe spot and finish the screen.

I find that using this positional based approach has several advantages.  I find that I can create a more accurate approach than I can by trying to "time" my approach from farther away while the spring is various distances away from you.  When you are essentially standing one pixel to the left of where the spring could hit you -- you simply wait until the instant it passes over your head to start your approach and you will get a nearly perfect "jump" every time.  Also, you can approach from the very same spring that you were just retreating from which often results in a favorable combo of springs without losing very much Bonus.  But lastly, I find that the timing of the decision process described above tends to separate out the required actions a bit so that you are not trying to do two things at exactly the same time (trying to corner onto the ladder and judging the trailing spring's bounce location tends to happen at the same time and it's hard to look in two places at once).

There is no easy substitute for experience and practice, but there are two obvious suggestions to make to accelerate the process.  First, thoroughly read and absorb the information in this tread.  Next, set up a MAME savestate and practice the screen in a low pressure environment.  If you did nothing but practice this savestate for an hour every day within a week or two you would see big improvements.

Good luck!
Title: Re: Spring Theory
Post by: dnickolas on July 22, 2016, 02:21:53 PM
Thank you Dean,

I practiced for a bit trying to read entry points (not doing partial retreats, but a step in the right direction) and then ran boards for longer than a reasonable person would. In the end my deaths were:

pie > rivet > spring > barrel. I'd just start on 5 from a save state and go until I was dead. Counts were 51 > 26 > 10 > 1, so I guess I played 22 games of that. One spring death was unrelated to the spring - I just hit my head on the elevator, so yay. I'll get there. Before spring was on par with pie as far as being a "me killer."

In the mean time, I'll look for the "pie kicker" support group, and "don't turn around with a hammer when conveyor switches direction and slams you into a fireball" anonymous.
Title: Re: Spring Theory
Post by: dnickolas on August 08, 2017, 12:11:20 AM
Ok, so I think I got springs down fairly well now. Key to me was caring a lot more about the trailing spring than the leading spring. I'll inch over on any mediocre spring and then hang around until a good one comes, only fully retreating in rare cases.

Improving that has me not dying, and the other improvements I made are in grabbing the purse and going top shelf almost all of the time. Instead of averaging 6100 and dying all the time, it's more like 7800 and living virtually all of the time.

I even sucked out an 8600 once with a quick grab, cooperative middle fireball, freezer on the right, entry and exit leeches, and a near-immediate final climb. I feel like if someone could figure out how to leech springs while waiting at the end there'd be even more points in this board, since there's sometimes a lot of dead time there waiting for a good 1-2.

There's so much to this game. I feel like it's almost time to compile this wisdom into a book or something.
Title: Re: Spring Theory
Post by: xelnia on August 29, 2017, 09:10:20 PM
Big thanks to Boognish for pointing out that Photosucket image hosting went to shit. All images in the OP have been reuploaded to Imgur. Maybe I'll have to do it again in another 4 years. >.<