Author Topic: The Goldeneye Facts Topic (Speedrunning ONLY!)  (Read 70357 times)

Boss

  • Posts: 3977
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic
« Reply #150 on: March 10, 2013, 03:51:10 pm »
I'd guess the difference is like .5 or less given I only lose around 2 sec to head for 2nd best spot after checking the best spot.

--

  • Posts: 19353
  • I'll be the backboost starring in your bad dreams
    • Goose
    • GE
    • PD
    • twitch
    • 2014CommunityContributor
    • http://www.twitch.tv/rwhitegoose
Re: The Goldeneye Facts Topic
« Reply #151 on: March 10, 2013, 04:06:52 pm »
Imagine this whole time, the #1 spot, with slightly better odds, was like .2 faster...

:kappa:
~ S T A Y ❄ T R U E ~   |   ~ S T A Y ❄ B L E S S E D ~   |   Verax Maneret

Botched Movie Quotes

  • Posts: 4422
  • Frankly, my dear, I don't care
    • Karl
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #152 on: March 10, 2013, 11:54:31 pm »
I think this is the new strat Marc was talking about. Maybe other flight recorder spot is like 1 second faster or something rediculous. We've been lied to our entire lives.
*Creator of 'waiting half a sec more cutscene' on b2 agent*
*Creator of 'bounce boost' on streets agent*
*Creator of 'strafe change laser skip' on inves*

Aztec Exemplar

  • Posts: 2496
  • A Significant Sex Machine
    • Mirror
    • GE
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #153 on: March 11, 2013, 03:01:13 am »
Yep. Marc has come up with a new strat on Statue.

2:18/2:17/2:17 incoming.
"Time's a teacher spitting since I was tying sneakers" - Jus

Luke

  • Moderator
  • Posts: 6439
  • Zero-Time P.O.M.
    • Luke
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #154 on: March 11, 2013, 04:50:01 am »
wats da strat?,
LAS

#TeamLevelRotation

Aztec Exemplar

  • Posts: 2496
  • A Significant Sex Machine
    • Mirror
    • GE
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #155 on: March 11, 2013, 06:11:45 am »
Windows Movie Maker.  :kappa:
"Time's a teacher spitting since I was tying sneakers" - Jus

404

  • Posts: 2079
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #156 on: March 13, 2013, 07:06:09 pm »
LOL if that's true


Darth Vader

  • Posts: 5319
  • You don't know the power of the dark side
    • Marc
    • GE
    • PD
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #157 on: March 13, 2013, 07:26:29 pm »
LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL

Gonna laugh my ass of for hours now trying to imagine speedrunning the game doing that all the time.
Once a heroic Jedi Knight
Seduced by the dark side of the force
Sith Lord
Leading the Empire's eradication of the Jedi Order

Time was untied when set.

  • Posts: 5268
  • Dat clutchness
    • Clemens
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #158 on: March 13, 2013, 07:33:40 pm »
Wouldn't be any worse than 2.x
teh peoples champ

--

  • Posts: 19353
  • I'll be the backboost starring in your bad dreams
    • Goose
    • GE
    • PD
    • twitch
    • 2014CommunityContributor
    • http://www.twitch.tv/rwhitegoose
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #159 on: March 13, 2013, 07:40:13 pm »
Yeah 2.X is definitely less player friendly.

Reloading with the Rumble Pack actually requires a real skill rather than a troll awkwardness.
~ S T A Y ❄ T R U E ~   |   ~ S T A Y ❄ B L E S S E D ~   |   Verax Maneret

Softman25

  • Posts: 404
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #160 on: March 13, 2013, 08:23:29 pm »
Dude, I would totally play GE more often if I had to hold my N64 controller like some demented AK.  :nesquik:

Luke

  • Moderator
  • Posts: 6439
  • Zero-Time P.O.M.
    • Luke
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #161 on: March 13, 2013, 08:35:02 pm »
Quote
Wouldn't be any worse than 2.x
LAS

#TeamLevelRotation

Luke

  • Moderator
  • Posts: 6439
  • Zero-Time P.O.M.
    • Luke
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #162 on: March 17, 2013, 01:37:18 am »
Questions regarding 2.x

1. Is it possible to aim your shots during the cinema with 2.3 / 2.4. I heard Goose talking about someone rescuing a hostage in a frigate cinema.
2. Why is it when a mine is thrown during a cinema it disappears instantly. If the mine could be thrown and detonated during the opening cinema(s) for Surface 2 Agent, the stage COULD potentially be busted.

thanks
LAS

#TeamLevelRotation

Aztec Exemplar

  • Posts: 2496
  • A Significant Sex Machine
    • Mirror
    • GE
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #163 on: March 17, 2013, 02:34:38 am »
"Time's a teacher spitting since I was tying sneakers" - Jus

404

  • Posts: 2079
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #164 on: April 08, 2013, 05:23:41 pm »
Important fact about the mysticism behind Statue 00A PAL world records:



"Abriss" is a german word with 24 english translations, e.g. demolition/avulsion, summary/survey and time instant.

This is an "Abrissbirne", i.e. "demolition pear":


50

  • Posts: 2510
    • 50 Cent
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #165 on: April 08, 2013, 11:42:35 pm »
k

Aztec Exemplar

  • Posts: 2496
  • A Significant Sex Machine
    • Mirror
    • GE
    • twitch
"Time's a teacher spitting since I was tying sneakers" - Jus

Soft-Hedwig

  • Posts: 3640
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #167 on: April 09, 2013, 01:37:30 am »
senorgif

now I know

Aztec Exemplar

  • Posts: 2496
  • A Significant Sex Machine
    • Mirror
    • GE
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #168 on: April 09, 2013, 05:06:39 am »
I get my gifs from a variety of sources. I don't think I've ever been to senorgif either.  :D
"Time's a teacher spitting since I was tying sneakers" - Jus

Selenium Webdriver

  • Posts: 3857
    • Ace
    • 2017RankingsDev
    • 2017CommunityContributor
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #169 on: April 09, 2013, 10:23:09 am »
LOL if that's true


I guess reloading would be similar to how it is in PD then. Nothing too bad. :nesquik:

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #170 on: April 10, 2013, 03:11:23 pm »
It's been a while since i've posted here cause i've had alot of other stuff to do, but anyway, here goes:

Frigate: Hostages

There's a total of 6 hostages in Frigate and in order to complete objective A, either 2,4 or 5 of them has to escape for A/SA/00A respectively. The mechanic behind their escape is fairly simple:

1. First of all, you kill the hostage taker.
2. When the body's fadeout is complete, the game chooses which escape point the hostage will use.
3. The hostage starts running towards the chosen point.
4. When the hostage reaches the point, the game checks if Bond is within line of sight, if so, a new point will be chosen, then steps 3-4 is repeated.
5. If the hostage can't see Bond (Bond can still see the hostage though), he will escape.

In step 2, there are 6 possible escape points that can be chosen:



Note that #5 and #6 are not actual escape points, if they are chosen, the hostage will run to them and upon arrival simply choose a new escape point. #5 and #6 work like any other escape point except for strange reasons you can't look at the hostage while it escapes (?). There's also one escape point that's unique to the Bridge hostage, and it replaces #2. See update below.

The hostages paths to the escape points will intersect, meaning the optimal escape points will be the same for all of them. See update below for details on this.

Even though the hostages escape times can vary ALOT, you can order the general speed of the hostages by using the length of the paths they have to follow to reach their optimal escape point:

1. Bridge Hostage (fastest, but only if #2 is chosen, otherwise 4th)
2. 2nd Agent Hostage
3. 1st Agent Hostage
4. 1st 00A Hostage
5. Engine Hostage
6. 2nd 00A Hostage (slowest)

(Based on current wr routes)

When the game determines the escape point, it generates a random byte (0-255) and then uses the following intervals:

0 - 40 -> Hostage escapes at #1
41 - 80 -> Hostage escapes at #2 (Bridge host uses its unique point)
81-120 -> Hostage escapes at #3
121-160 -> Hostage escapes at #4
161-200 -> Hostage runs to #5, then chooses a new escape point
201-255 -> Hostage runs to #6, then chooses a new escape point


The probabilities then become:

Chances of getting #1 = 41 / 256 = 16.0%
Chances of getting #2 = 40 / 256 = 15.6%
Chances of getting #3 = 40 / 256 = 15.6%
Chances of getting #4 = 40 / 256 = 15.6%
Chances of getting #5 = 40 / 256 = 15.6%
Chances of getting #6 = 55 / 256 = 21.4%


Chances of getting the optimal #2 is 1 in 6.4.

Putting all this together:

Chances of "Perfect" hostages on Agent: 0.15625 ^ 2 = 2.44% (1 in 40.96)
Chances of "Perfect" hostages on Secret Agent: 0.15625 ^ 4 = 0.059% (1 in 1677)
Chances of "Perfect" hostages on 00 Agent: 0.15625 ^ 5 = 0.0093% (1 in 10737)


(This of course doesn't account for hostage taker's death animations, hostage's varying escape times nor the possibility of releasing additional hostages to increase odds)

----------------------------------------------------------------------------------------------------------------------------------------------

Update 2018-03-31: I did some measurements of the hostages "ideal" escape times (basically by keeping them unloaded the entire time with no obstacles in the way, only exception being the bridge hostage where keeping him loaded for a frame after being released saves 100 frames due to him taking a more direct route to the door). I did something similar many years ago but these times should be alot more accurate. Below you can see the results for each hostage (ordered from fastest to slowest, so #1 is the bridge hostage, #5 is engine etc...) when they choose escape point #2:

Hostage #1: 233 frames (3.88 seconds) or 1331 frames (22.18 seconds)
Hostage #2: 479 frames (7.98 seconds)
Hostage #3: 578 frames (9.63 seconds)
Hostage #4: 1285 frames (21.42 seconds)
Hostage #5: 1637 frames (27.28 seconds)
Hostage #6: 2272 frames (37.87 seconds)


You may be wondering why Hostage #1 (bridge) has two different times. In my original post I stated that the bridge hostage has a unique escape point that replaces #2, but this actually turns out to be wrong. What's actually happening is that he reaches the escape point through the wall(!) by being close enough to it (if you look at the picture above, it kinda makes sense doesn't it?). The second time listed above is what the time would've been if this phenomenon didn't happen, i.e. if he had to run all the way through the agent hostage area to reach the escape point. In order to use the table below, you need to use the second time instead of the first, hence why I've included it.

I also measured how much longer it takes the hostages to reach the other escape points (relative to #2):

Escape Point #1: 941 frames (15.68 seconds)
Escape Point #2: -
Escape Point #3: 421 frames (7.02 seconds)
Escape Point #4: 549 frames (9.15 seconds)
Escape Point #5: 737 frames (12.28 seconds)
Escape Point #6:  460 frames (7.67 seconds)


With this, we can now finally order the escape points by speed:

1. Escape Point #2
2. Escape Point #3
3. Escape Point #6
4. Escape Point #4
5. Escape Point #5
6. Escape Point #1


This information should help us to figure out which routes has the best odds of completion.
« Last Edit: April 01, 2018, 12:20:41 pm by Wyst3r »

Time was untied when set.

  • Posts: 5268
  • Dat clutchness
    • Clemens
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #171 on: April 10, 2013, 03:59:32 pm »
1 in 40 seems cakey for agent but the thing is the slow one gets stuck on dat chair like 99% of the time.

on SA you only need optimal routes for 1/2 of the hostages, but i guess the odds are still pretty low.
teh peoples champ

--

  • Posts: 19353
  • I'll be the backboost starring in your bad dreams
    • Goose
    • GE
    • PD
    • twitch
    • 2014CommunityContributor
    • http://www.twitch.tv/rwhitegoose
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #172 on: April 10, 2013, 04:22:10 pm »
LOL ONE IN TEN THOUSAND ARE YOU FUCKING KIDDING ME LOLOLOL

However, I do believe that you can take into account that there's enough time for like, the 1st, and maybe the 3rd and 4th hostages, to escape in at least 2, if not all 4 of the locations.  So we should figure out the number of successful escape points on 00A, and then redo the math.  On SA, the first 2 hostages DEFINITELY have enough time to escape in all 4 escape locations.

If Agent odds are only 1 in 40 then I better go play Agent soon.  Why did Wouter take so long to get 23?  And Jimbo 25?  Is their in game knowledge really that bad?
~ S T A Y ❄ T R U E ~   |   ~ S T A Y ❄ B L E S S E D ~   |   Verax Maneret

Lucky-P

  • Posts: 162
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #173 on: April 10, 2013, 04:51:32 pm »
Thanks Henrik

Mate I love these pictures

Thats cool that the best bridge spot replaces another spot rather than creating an additional one.

Yeah SA odds are actually almost certainly better than agent, they both only require 2 to choose the best spot.  Just the agent one can't get stuck really.

A   - theory 21, best fail I know of 22
SA - theory 53, best fail I know of 58 (ive seen the slowest sa hostage at the bottom of the stairs in 56)
00 - theory 101/102, best fail I know of 102

A and 00 are mostly luck, SA is mostly skill.

Also they can escape at 5+6, you just cant watch them do it.  Or better said, you can see them run towards the back of the boat and they escape shortly after.

404

  • Posts: 2079
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #174 on: April 10, 2013, 05:23:52 pm »
On SA, the first 2 hostages DEFINITELY have enough time to escape in all 4 escape locations.

I had an Agent run with a normal 24 start with 3 kills but something went wrong at the bug, so I started fooling around. I freed the bridge hostage and then took the ride through the basement, freeing hostages 4-6 and exited the level around 1:45. It was Objective A Failed, so you better be careful with any use of "DEFINITELY" on Frigate.

If Agent odds are only 1 in 40 then I better go play Agent soon.

I know you're prolly just trolling, but that just means that 40 out of 41 runs go to the trash can without any further consideration.
You also need all of those:
Hostage 1 not spinning at the chair (like 1/5 [?] odds to succeed)
Decent deaths on both hostage takers for 24 (1/2 [?] odds)
At least 3rd best death on the first hostage taker, sub 4.00 death on the second taker for 23 (1/4 [??] odds)
Hostages not doing any other spinning shit at doors or at the guard that always gets alerted in the 2nd room (?? odds)
Stuck-free hostage speed being fast; similar influences like fast trev-to-hut speed on cradle (???? odds)

My vague estimate for 24 is 1 in 150 to 350 runs expected value.

--

  • Posts: 19353
  • I'll be the backboost starring in your bad dreams
    • Goose
    • GE
    • PD
    • twitch
    • 2014CommunityContributor
    • http://www.twitch.tv/rwhitegoose
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #175 on: April 10, 2013, 07:16:02 pm »
You are forgiven.

Karl, you can delete the lats 7 posts from this thread.
~ S T A Y ❄ T R U E ~   |   ~ S T A Y ❄ B L E S S E D ~   |   Verax Maneret

Time was untied when set.

  • Posts: 5268
  • Dat clutchness
    • Clemens
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #176 on: April 10, 2013, 07:27:40 pm »
My analysis of Frigate -

Agent- Slowest hostage needs to take a fast path AND pick the best point. Hostage taker needs a good death and cant spin around chair. Faster hostage can escape on any given run where he chooses the best escape point.

SA- First 2 agent hostages have roughly 100% odds to escape assuming they dont die, so pretty much all you need to do is calculate odds for 3rd hostage and last to both pick the best route, although the 3rd can sometimes be too slow to make it there in time (though in my experience thats fairly rare... he generally makes it there during the fade if hes slow)

00A- agent hostages need one of the top 3 escape points prolly, and most of the others need a fast escape point too. Slowest hostage definitely needs the best, and the last, and the 3rd slowest might need a top 2 escape point. 00A is insane considering 5 hostages need to pick either a decent, best, or 2nd best escape point. Imagine if 4 pick the right escape point but some random one decides to be slow. This is why 00A is the least consistent although its much easier to get runs, so it ends up being just a little worse overall.
teh peoples champ

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #177 on: April 10, 2013, 07:38:40 pm »
Quote
Or better said, you can see them run towards the back of the boat and they escape shortly after.

Wow really? Are you sure it wasn't another hostage escaping? Cause i tried this with invisibility on (so Bond is never within their line of sight) and they never escaped at #5 or #6, but always at the other spots. Although i was always close to them. So in any case, those spots are definately different from the others, but i guess i'll have to check it again if they can escape or not.

Edit: It appears that you're correct. I can't find any good explanation for it (the game scripts uses the exact same code for all escape points, so how could these possibly be different?) but the hostages can definately escape at #5 and #6 as long as your not in their line of sight AND you're not looking directly at them (not entirely sure but something like that).

Not sure if #5 and #6 could potentially be faster than for example #1?
« Last Edit: April 11, 2013, 12:24:53 pm by Henrik Norgren »

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #178 on: May 28, 2013, 02:10:05 pm »
Ever wanted to know how much "noise" a certain weapon makes? And how this noise is used to alert guards? Well, you're about to find out.

Weapons & Noise

I guess all of us has some intuitive idea about how noise works in this game. By trial-and-error we can find out how many bullets we need to shoot, with which weapon and where, in order to alert a certain guard. But we've never known the exact formula for it. How does distance affect the ability to alert guards? How long after firing can we start to fire again without alerting guards? What is the exact difference in "loudness" between all weapons in the game?

Using alot of memory watching and some guesswork i managed to figure out how the game calculates if a guard should be alerted or not.

In Pseudocode:

Code: [Select]
If Bond fired a shot
{
       Noise += Weapon_Noise_Per_Shot;

       Noise = min( Noise, Weapon_Max_Noise );

       For each guard
       {
        Noise_Heard_By_Guard = 100 * Noise * Guard_Hearing_Ability / Distance_From_Guard_To_Bond;

        if( Noise_Heard_By_Guard > 1.0 )
              Guard is alerted;
       }
}

Each frame
{
     NoiseReduction = Noise / 240;

     NoiseReduction = max( NoiseReduction, 0.01 );

     Noise -= NoiseReduction;

     Noise = max( Noise, Weapon_Min_Noise )
}

Edit: It appears that this might not be 100% correct. The noise required to alert a guard seems a bit random at some spots while perfectly accurate at other spots. So while it's often precisely 1.0, i have seen them require up to 1.2-ish. There's probably some factor i'm missing here...

Complicated? Not really, but let's go through it anyway.  :kappa:

First of all, there's a value called Noise. This value is updated every frame, but is only used when Bond actually fires a shot. Depending on which weapon Bond currently uses, this value will have a minimum value. And each time Bond fires a shot, the value is increased by a certain amount, again depending on the current weapon. After Bond has fired, the value will start to decrease, If the value is very high, it will decrease quickly, but as it gets closer to 0 (or the minimum value, if it's greater than 0), it will decrease slower. The mechanic makes it so that firing shots in quick succession gives a higher noise value, while waiting between shots gives a lower value. Each weapon also has a maximum noise value, so even if Bond fires many shots quickly, he won't be able to go above a certain value.

Now, when Bond fires a bullet, each guard calculates how much he "heard". It starts off by using the noise value when the shot was fired, multiplied by the guard's "hearing ability". This is usually set to 1 but obviously, if it was higher, the guard would hear fainter noises, and vice versa with lower values. Also, if Bond is further away from the guard when firing, he will have a harder time hearing the shot. Distance decreases noise in a completely linear fashion, so the noise is simply divided by the distance ( Note that the distance is calculated in 3 dimensions, so the difference in height between Bond and the guard matters ).

To end things, the game simply checks if the value the guard heard is greater than 1.0, if so, the guard is alerted. Obviously, some guards don't check for sound at all and can never be alerted by sound.

You might be interrested in knowing what the minimum, maximum and noise per shot is for each weapon. Well here it is:

WeaponMin   Max   Increase Per Shot
Unarmed011
Hunting Knife011
Throwing Knife011
PP71122
PP7 (Silenced)051
DD442163
Klobb2202
KF7 Soviet2202
ZMG (9mm)2202
D5k2202
D5k (Silenced)071.2
Phantom2202
Ar332202
RC-P902202
Shotgun2254
Auto Shotgun2203
Sniper Rifle071.2
Cougar Magnum2203
Golden Gun191.5
Silver PP71122
Gold PP71122
Laser2162
Watch Laser140.2
Grenade Launcher2202
Rocket Launcher22510
Grenade022
Timed Mine022
Proximity Mine022
Remote Mine022
Detonator000
Taser2102
Tank22510

There are a quite a few interresting facts and possibly some suprises for you in there. Personally i had no idea that slaps actually make noise  :nesquik:

By using an emulator and inserting the formula/weapon values into MHS, it's actually possible run around in a level and see in real-time how much certain guards would hear if Bond fired his weapon from his current position, without ever firing a shot. Pretty awesome when trying to figure out optimal luring spots  :)

There are a couple of things that i haven't yet figured out. For example, how dual weapons work. I know that left and right hand uses separate noise values. So firing one weapon don't change the value of the other. They aren't entirely independent though, If you have for example 2 PP7's out and switch the left weapon to Unarmed, the noise reduction rate for that hand will be much slower than normal. I'm not sure how the values for the 2 hands are used either, maybe they are combined or maybe they are tested separately. I'll update this post when i figure it out...
« Last Edit: May 29, 2013, 10:45:40 am by Henrik Norgren »

Wouter Jansen

  • Posts: 8968
    • GE
    • PD
    • twitch
    • 2014RankingsDev
    • 2015RankingsDev
    • 2016RankingsDev
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #179 on: May 28, 2013, 07:40:09 pm »
Awesome info! This might lead to some strat changes :)
sexy, this

Softman25

  • Posts: 404
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #180 on: May 28, 2013, 07:46:09 pm »
This is sick...and explains a lot of how things work.

As always - great stuff!  :nesquik:

GoldenGreg007

  • Posts: 3373
  • The Factory
    • GE
    • PD
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #181 on: May 28, 2013, 10:18:44 pm »
Great breakdown (and pseudocode! :D) Henrik.  The only information I ever read about how weapons alert guards before was at the Goldeneye Wiki.  They show the max and min values that you listed above, but don't give any context as to what those values actually mean.  Nice job figuring it out.

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #182 on: May 29, 2013, 06:01:44 am »
Quote
The only information I ever read about how weapons alert guards before was at the Goldeneye Wiki.  They show the max and min values that you listed above, but don't give any context as to what those values actually mean.

Wow i had no idea about that. Could've saved me some time i guess :P And yeah, Goldeneye Wiki is a very incomplete page, kind of annoying since they seem to know alot of stuff.

I noticed that they had the Time Between Shots in there which is related to how much noise you can make (and how many shots you need to fire to reach a certain level of loudness). I guess i should add that to the post.

Scrambler Fanny

  • Posts: 7237
  • Shawn Johnson
    • GE
    • Shawn's Goldeneye Times Page
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #183 on: June 16, 2013, 03:10:29 pm »
An interesting yt video going over a lot of stuff that we already know, but also telling some of the reasons behind the decisions in the game-making development.  Enjoy.

http://www.youtube.com/watch?NR=1&feature=endscreen&v=hO0b2HjRXBg


"And I mean, I'm the GE champ.  Did you actually expect I would have a normal relationship?" -David Clemens

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #184 on: June 24, 2013, 01:27:51 pm »
Warning: Lots of technical stuff

Goldeneye's RNG

I've been able to use memory-watching to view the RNG's values for a very long time now. But i was never able to figure out exactly how it updates, or what influences it. (just looking at random numbers really doesn't tell you alot :p)

However, a few weeks ago i decided to try and look at the assembly-level code handling the updating. While i initially thought this would be extremely hard, it turned out to be quite simple. Mainly because the update-related code was isolated to one single area in memory and it was only a few simple lines of code.

First of all, Goldeneye's RNG is a 32-bit value (4 bytes). And when the game for example wants to decide Dr. Doak's location, it takes the least significant byte (which is a value between 0 and 255) and uses as the seed (check out my other post on Dr. Doak to see how the seed is used).

The initial value of the RNG is always be same on a given version of Goldeneye, but can vary between different versions. At least on emulator, these are the initial values (hexadecimal):

JAP-NTSC
02E256C9

US-NTSC
02E11473

EU-PAL
02CA9637

These values are set shortly after starting up the game. There's also an accompanying flag (0 or 1) which is used in the updating process. It's initial value is 0 for all versions and it's next value depends solely on whether the RNG's previous value was odd or even (1 if it was odd, 0 if it was even).

Unfortunately, i haven't figured out an easy way to interpret the updating routine. Basicly, all it does when it calculates the next RNG value is to take the current RNG value and current flag value, and do some bitwise operations. It's pretty simple but i'm not sure if it's possible to explain in words. But anyway, the whole thing can be summed up in a single line:

Next_RNG_Value = ((((Current_RNG >> 1) + (Current_Flag << 31) & 0xFFFFFFFF) ^ (Current_RNG << 12 & 0xFFFFFFFF)) >> 20) ^ (((Current_RNG >> 1) + (Current_Flag << 31) & 0xFFFFFFFF) ^ (Current_RNG << 12 & 0xFFFFFFFF))

">>" and "<<" = Shift bits left/right
"&" = Bitwise and
"^" = Bitwise xor
"0x" = indicates a hexadecimal value

The "& 0xFFFFFFFF" is simply there to prevent the value growing larger than 32 bits when shifting bits left.

The updating routine starts running right after the intial values has been set and will continue as long as the game is on. It's not really important to understand the line. However, there's a very interresting fact we can derive from it, the RNG depends only on itself and nothing else. Most RNG's work this way, using recursion, so it's not a huge suprise. But if the RNG is so deterministic, and not directly dependent on player input, shouldn't a random event occuring on a certain frame give the same result each time?

Well, the reason GE is so unpredictable is that the updating routine isn't being run once per frame, rather, it depends on lag and can vary ALOT. During the intro, the RNG is usually updated about 3 times per frame. But on a very laggy frame it can update thousands of times in a single frame. Also, when seeds are taken for random events such as Dr. Doak or frigate hostages, any one of those thousands of values calculated between frames can be used. So previous actions done by the player definately matter when determining randomness since they affect lag, even though the exact sequence of random numbers is completely predictable.

So essentially, it's possible for us to insert the updating routine in a program like excel and use it to calculate the entire sequence of random numbers that a given version of GE will use. However, it's most likely useless knowledge since humans (or even TAS)  can't utilize it.

Anyway, i hope this post shed some light on how GE randomness works even though it was a very technical explanation.

Selenium Webdriver

  • Posts: 3857
    • Ace
    • 2017RankingsDev
    • 2017CommunityContributor
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #185 on: June 24, 2013, 04:55:33 pm »
Wow @ 4 byte address. Seems ridiculously huge lol. Interesting info by the way.

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #186 on: June 24, 2013, 05:25:15 pm »
4 bytes is pretty standard for integers?
« Last Edit: June 24, 2013, 05:32:04 pm by Henrik Norgren »

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #187 on: July 12, 2013, 07:12:05 am »
Train: Guards

Before going back and playing more Train DLTK ER, I decided to figure out as much as i could about the guards in this level. To easier illustrate my findings, i made this pretty, color-coded picture  :nesquik: :



I'll explain what this means, car-by-car:

1st car - Crossing the red line here triggers 2 guards to spawn in the 2nd car. As soon as they spawn, the game also decides if either guard will chase Bond or just remain stationary. So it's possible to get no guard chasing Bond, both of them chasing Bond, or one of them (could be either one).

2nd car - The turqoise and light-green circles indicate the possible spawn positions for the 2 guards, along with their probabilities. I guess it's self-explanatory that the green corresponds to one of the guards and turqoise the other. So you can't have both guards in the green spots and vice-versa.

Crossing the orange line means the guards circled in orange in the 3rd car can be triggered (i.e. they might start chasing Bond). Note that this is quite random, you can cross the line and not have them triggered for quite a while, or they might be triggered immediately. I have not been able to figure out what determines this. The blue line works the same way with the guards circled in blue.

3rd car - More trigger lines for guards in the 3rd and 4th car. Works the same way as previous ones.

4th car - Crossing the yellow line triggers the spawning of 8 guards in the 5th car. 4 of them have certain positions, while the other 4 choose randomly between 2-3 possible positions.

5th car - Circles indicate the guards possible spawning positions and their probabilities, just like 2nd car. These guards won't chase Bond though. The guards circled in red are not random and can be triggered by crossing the red line. The same thing goes for dark blue.

So that's it, hopefully this will make the level a bit easier to understand.
« Last Edit: October 01, 2017, 05:20:14 am by Wyst3r »

GoldenGreg007

  • Posts: 3373
  • The Factory
    • GE
    • PD
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #188 on: July 12, 2013, 12:51:05 pm »
On the topic of crossing lines to trigger things on Train, any idea how I triggered Trev's lines from the first car in this video?

« Last Edit: July 12, 2013, 12:56:25 pm by GoldenGreg007 »

Wouter Jansen

  • Posts: 8968
    • GE
    • PD
    • twitch
    • 2014RankingsDev
    • 2015RankingsDev
    • 2016RankingsDev
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #189 on: July 12, 2013, 02:20:52 pm »
That pic + info is awesome!
sexy, this

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #190 on: July 17, 2013, 05:38:59 pm »
Streets: Spawning Guards


First of all, there are 4 NPC's in Streets that can spawn, 2 of them are guards and the other 2 are civilians (I will not bother covering the civilians, but they work similarly to the guards). When you start up Streets and the cinemas begin to play, two 20 second timers are also started, one for each guard. After 20 seconds have passed, the timers are reset with a new value which is individually set for each guard. To easier keep track of things, let's call one of the guards RED and the other BLUE.

RED's timer will count to 5 seconds, and BLUE's to 9 seconds. Whenever the timers reach their values, the game checks if the guard can be spawned, and no matter the outcome, the timer is reset and starts over.

The first thing the game will check is if the guard is no longer in the level, i.e. has he been killed and faded away. For obvious reasons, the game doesn't want a new guard to spawn every 5 or 9 seconds. One of the most interresting discoveries I made though is that 2 guards with the same ID-numbers as the spawning guards already exists in the level from the start. So it's actually not until those guards have been killed that the corresponding guard will be able to spawn. Who are these 2 guards you ask? Well:



BLUE is the guard who comes running towards Bond in the very beginning of the level, and RED is one of the guys by the tank. So if we kept these guards alive, no guards would ever spawn. So how come we see spawned guards on Agent? Well, the reason for it lies in BLUE's script. It's actually the same script used by both spawned guards and it basicly says that if Bond is too far away from the guard, he should be eliminated (no fade, no death animation, he simply disappears). This elimination allows him to be respawned in a new location closer to Bond. This is the reason why you can never "outrun" the spawned guards.

Now, let's say we killed both guards and the timers reached their values, where will the guards spawn? As you might know, Goldeneye's levels is divided into "rooms", and where the guards will spawn depends on which room Bond is in. I made an image showing an overview of Streets and the different rooms, their room number and all spawn locations. Since Streets is such a large level the image is very large as well so i can't really show it directly in the forums. You can check it out HERE.

Below is a list of which room's spawn point RED and  BLUE will use when Bond is in a certain room.

Room Bond is in                                RED spawn          BLUE spawn
(everything before room #20) #21#22
#20, #21, #22#24#25
#23, #24, #25#29#27
#28, #29, #30#32#34
#26, #27, #36#37#38
#35, #34#38#40
#31, #32, #33#37#39
#37, #38, #39#41#43
#40, #41#43#48
#42, #43#45#49
#47, #48, #49#51#53
#44, #45, #46#54#52
#50, #51, #52#46#48
#53, #55#45#51

So if Bond is in room #37 when RED's timer reaches 5 seconds, RED will spawn at the red circle in room #41. I should also note that the purple circle in room #43 is purple because it is used by both guards.

Remember what i said about the guards being eliminated when Bond is too far away? An interresting fact is that some (most) sets of rooms are so far away from their corresponding spawn points that they don't lie entirely within the guards radius of non-elimination. So it's possible for a guard  to spawn and immediately be eliminated due to being too far away from Bond. I abused this fact heavily in my recent Streets DLTK ER completion, where I managed to get through the whole level without a single guard ever being allowed to spawn. I'll explain this strat in more detail below.

Finally, when a guard spawns, his weapon and attributes are randomly set. Here's a list of the possibilities and their probabilities:

Weapon                        Health    Armor    Probability:
KF7 Soviet40039.4%
KF7 Soviet402046.8%
Grenade Launcher402013.7%

That's it, all there is to know about spawning guards on Streets. To get an idea about how this can be used to manipulate the guards, check out my DLTK ER strat below:

The DLTK (ER) strat:

My run can be viewed here: http://youtu.be/7BoOO8i9-EY

First of all, I kill BLUE  because he will otherwise follow me around everywhere (he never stops running towards Bond), and if I accidently got too far away, he might be eliminated anyway. I leave RED alive though since he's just a regular guard and can't be eliminated. Leaving him alive is a very simple way to get rid one of the spawning guards. Might be harder to get past him on DLTK but it's certainly possible.

Since I killed BLUE, he will now try to respawn (once the 20 + 9 seconds has passed). However, i can safely head to Valentin since it's ouside his non-elimination radius.

Now, I use the on-screen timer throughout the level to figure out when the 9 second cycles end. However, after talking to Valentin, the timer is restarted at 6 minutes which screws things up, unless you can keep the timers synchronized. In my run I accomplished this by shooting Val at a very specific time, in this case 00:26:60. You can of course do this in any 9 second interval (doesn't even have to be 9 second intervals, but then you'll have to recalculate the times below) meaning 00:08:60, 00:17:60, 00:35:60 and 00:44:60 etc. all work just as fine. To make the shot as easy as possible I also time my talking to Val so that obj A will complete just before i shoot (shooting him while he runs can be tricky). To do this, i stay in the corner shown at 2:08 in the video, and move forward towards the wall at 00:56:xx (should be a low decimal). As with the previous timing, any 9 second interval will work.

When heading back, it's necessary to use the same route as you came. Otherwise you'll enter BLUE's non-elimination radius. For regular DLTK, you can get the grenade launcher, but you must get it in less than 9 seconds. The boundary goes a bit to the right of the entrance to Val's house so you gotta run from there just after a 9 second cycle has ended. If you timed the shot on Val correctly, the cycles should end at roughly these times, give or take a few tenths:

05:51:00
05:42:00
05:33:00

etc....

I should also note that there's a bit of "drift" between the on-screen timer and the guards timer, a few tenths per minute. So when the timer runs low, you might wanna wait a bit longer, around 0.5-1.0 seconds.

For the rest of the level, you'll want to run between "safe spots" during the 9 second cycles. Some of these runs will will be pretty tight, while others are easy, with several seconds to spare. At roughly 3:01 in my video, i pass the first boundary and i enter room #20 at 3:09. So it took roughly 8 seconds. From there I immediately start my next run towards room #24. This run is much easier though and as long as you stay on the left pavement, you should be outside BLUE's radius (his spawn point is pretty far away in room #27). From this position, you can kill the guards by the roadblock.

The next run is very easy, I use the corner at 4:04 and time it so I leave roughly a second after a cycle ended, to be on the safe side (in this case 04:27:xx). As soon as i enter room #26 i am safe. #27 and #28 are fairly safe as well as long as you stay close to the right wall, and don't go too close to the roadblocks in room #28.

The corner at 4:54 is a good place to start the next run, which is really easy as well. I could've run earlier but i was busy trying to figure out when the next cycle would end (i had a paper in front of me with all times written down). After reaching the corner in room #34, i do another run to the corner on the opposite side. The next run after this is a really long and tight one so i wanna be as far up the road as possible. I need to get to room #40 in less than 9 seconds. It takes about 8 so it's doable with good timing.

From there i make another tight run towards room #47, once there i'm fairly safe as long as i initially stay close to the right wall. You can move up diagonally like i did towards the next roadblock.

I hadn't mapped out any more of the route when i did my run, so i took a chance and just ran through the ending.

So yeah, that's it. There are alot of of strat possibilities here and hopefully something similar can be used for regular DLTK. We might also be able to use it on Agent to make sure a guard spawns in the "good spots" every time, making it slightly easier to get that grenade launcher. My fingers are tired of writing now  :nesquik:
« Last Edit: October 01, 2017, 05:21:45 am by Wyst3r »

Boss

  • Posts: 3977
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #191 on: July 17, 2013, 11:44:28 pm »
Think you can figure out how the bot works in PD?  :kappa:

Shadow

  • Posts: 1232
  • The American Shadow
    • GE
    • PD
    • 2017SilverStar
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #192 on: July 18, 2013, 07:41:49 am »
That's crazy Henrik. I wondered why you shot Valentin. Didn't catch that things were 9 seconds apart. Pretty cool.

--

  • Posts: 19353
  • I'll be the backboost starring in your bad dreams
    • Goose
    • GE
    • PD
    • twitch
    • 2014CommunityContributor
    • http://www.twitch.tv/rwhitegoose
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #193 on: September 25, 2013, 10:52:25 pm »
I came across this site today;

http://tcrf.net/GoldenEye_007_(Nintendo_64)

A lot of information on stuff that was cut from GE, as well as version differences.  Posting this here as a reference for people to look at.  A lot of really good stuff is in here so maybe we'll find something useful.
~ S T A Y ❄ T R U E ~   |   ~ S T A Y ❄ B L E S S E D ~   |   Verax Maneret

Selenium Webdriver

  • Posts: 3857
    • Ace
    • 2017RankingsDev
    • 2017CommunityContributor
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #194 on: September 26, 2013, 01:16:58 am »
I've seen that before, contains a lot of interesting info. Check out the PD one too.

Jimbo

  • Posts: 4024
  • Elite Historian
    • GE
    • PD
    • twitch
    • 2015CommunityContributor
    • 2016RankingsDev
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #195 on: September 26, 2013, 01:36:31 am »
That was a great read, as if I was checking out the original Detstar all over again. I've long forgotten most of that. Thanks!

404

  • Posts: 2079
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #196 on: October 11, 2013, 08:00:49 am »
I recently facepalmed to the question whether strafe changes lose time because of lag, so I decided to make this.

Why do strafe changes lose time?

Short answer

Changing from 100% leftward to 100% rightward speed or vice versa does not work instantaneously, it takes some time to decelerate to zero and afterwards accelerating to full speed in the new direction. Fire up a level like Dam and do nothing but alternating C-Left / C-Right and you'll clearly notice that.
That transition time, where your sideways speed temporally reaches zero, in turn decreases your resultant overall speed which is the length of the vector sum of forward and sideways speed. And having lower overall speed for a certain amount of time obviously loses time.

Detailed answer

I will guide you through the plots below. In all plots the x-axis is time and all have the same scale, i.e. the timings of strafe changes are vertically aligned with all below plots.

Plot 1 - Strafe button: You can alternate strafe buttons arbitrarily fast with your fingers. Instant changes are shown.

Plot 2 - Sideways speed: After a change of strafe button, the sideways speed will approach full speed in the new desired direction but it takes some time to do so because of deceleration/acceleration as described above.

Plot 3 - Resultant speed: Pythagoras says that the resultant overall speed is sqrt(forwardspeed² + sidewaysspeed²). This plot shows this function with constant 100% forward speed and varying sideways speed according to plot 2. Temporary speed drops after strafe changes are evident.

Plot 4 - Progression: You can think of the y-axis as progression% of a level like Streets Agent. The red curve shows linear progression with constant 100% resultant speed. The blue curve is the time integral of plot 3, i.e. mostly linear progression and parallel to the red line, but it falls behind further and further after every strafe change.

Plot 5 - Time loss: This is the difference of red and blue curves in plot 4. Stepwise increases of time loss after strafe changes can be observed.



Comments:
- Assumed simple turns like on Streets Agents, which can easily be done without strafe changes. It obviously does not cover more problematic turns like Archives upstairs or Cradle ending.
- Assumed full forward speed = full sideways speed. Didn't do any research on that besides speedrunwiki saying strafing increases speed by ~40%, which is in line with my assumption because of sqrt(1² + 1²) - 1 = ~41.4%.
- Values on plot axis were left out on purpose because I only wanted to outline the mechanics of strafe change time loss and didn't want to give an accurate answer to "How much do they lose?".
- Assumed constant deceleration/acceleration, i.e. linear sideways velocity decrease/increase. No research done, but there is little reason why an old and simple game like GE should have more complex behaviour there.

Generating Matlab code for all real muthaphukkin Gs:
Spoiler
Code: [Select]
clear all, close all

timeResolution = .001;
t = 0 : timeResolution : 7;
strafeButton = sign(cos(pi/2*t));

strafeSpeed = ones(size(strafeButton));
delta = 2*timeResolution;
for i = 2 : length(strafeSpeed);
  if abs(strafeSpeed(i-1) - strafeButton(i)) > delta
    strafeSpeed(i) = strafeSpeed(i-1) + delta*sign(strafeButton(i)-strafeSpeed(i-1));
  else
    strafeSpeed(i) = strafeButton(i);
  end
end

sideToForwardRatio = 1.0;
speedVectorLength = sqrt(1 + (sideToForwardRatio * strafeSpeed).^2);
speedVectorLength = speedVectorLength / max(speedVectorLength);

progression = zeros(size(speedVectorLength));
for i = 2 : length(progression)
  progression(i) = progression(i-1) + speedVectorLength(i-1)*timeResolution;
end
singleStrafeProgression = (0 : length(progression)-1)*timeResolution;

timeLoss = singleStrafeProgression - progression;

xlim = [.7 6.3];
figure('Position', [100, 0, 700, 1150])
subplot(5,1,1)
plot(t, strafeButton)
set(gca,'XLim',xlim,'YLim',[-1.2 1.2],'XTickLabel','','YTick',[-1 1], ...
  'YTickLabel',['C-Right'; 'C-Left '])
ylabel('Strafe button')
subplot(5,1,2)
plot(t, 100*strafeSpeed)
set(gca,'XLim',xlim,'YLim',[-120 120],'XTickLabel','')
ylabel('Sideways speed / %')
subplot(5,1,3)
plot(t,100*speedVectorLength)
set(gca,'XLim',xlim,'YLim',[0 115],'XTickLabel','')
ylabel('Resultant speed / %')
subplot(5,1,4), hold on
plot(t,singleStrafeProgression,'r')
plot(t,progression)
legend('Single strafe','Strafe changes','Location','NorthWest')
set(gca,'XLim',xlim,'YLim',[progression(ceil(xlim(1)/timeResolution)) ...
  1.05*max(singleStrafeProgression)],'YTickLabel','','XTickLabel','')
ylabel('Progression')
subplot(5,1,5)
plot(t,timeLoss)
ylabel('Accumulated time loss')
set(gca,'XLim',xlim,'YLim',[0 max(timeLoss)+0.07],'YTickLabel','','XTickLabel','')

Wyst3r

  • Posts: 4164
  • Train Strat Master
    • Henrik
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #197 on: October 11, 2013, 10:32:22 am »
Nice post/graphs. It's unfortunate that we don't have the actual values available at this point, i might give it a try later today and find those though.

Quote
full forward speed = full sideways speed

I'm almost certain this isn't true. Especially since forward speed will start to increase after a certain amount of time. The speed-related values i use when TAS'ing says forward is initially 1.08 and later increases to 1.32. Left/Right strafe is always +- 1.0.

Those values are probably not the real speed though, and i'm not sure exactly how they relate to the actual change in position.

Boss

  • Posts: 3977
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #198 on: December 23, 2013, 12:45:36 pm »
I thought about this randomly while watching a stream last night. Would it save frames to do a L/R lean right at the end of a level where you need to get to a certain point to complete (levels where you don't enter a door to complete)? S1 A is probably the best spot to test this since right after the last lock shot you can lean into the hole to complete quicker.

Luke

  • Moderator
  • Posts: 6439
  • Zero-Time P.O.M.
    • Luke
    • GE
    • PD
    • twitch
Re: The Goldeneye Facts Topic (Speedrunning ONLY!)
« Reply #199 on: December 23, 2013, 02:17:49 pm »
that's a pretty amazing idea.. time to test it out
LAS

#TeamLevelRotation