You can know more about editing the articles in the wiki by reading guidelines.

Changes

From Speedrunwiki.com
Jump to navigationJump to search
462 bytes added ,  15:27, 18 July 2021
add references, Wyst3r's recommended video on AI
Line 1: Line 1: −
[[Goldeneye]] makes use of scripts to control high level behaviour in the various levels. These can easily be viewed in the [https://ryandwyer.gitlab.io/gepd-function-explorer/ function explorer pages] or less easily using the [https://github.com/carnivoroussociety/GoldEditor setup editor]. Be aware that both have some inaccuracies. The scripts come in two types, level scripts and character scripts. All scripts have unique names made up of 4 hexadecimal characters.
+
[[Goldeneye]] makes use of scripts to control high level behaviour in the various stages. These can easily be viewed in the [https://ryandwyer.gitlab.io/gepd-function-explorer/ function explorer pages] or less easily using the [https://github.com/carnivoroussociety/GoldEditor setup editor]. Be aware that both have some interpretation inaccuracies. The scripts come in two types, level scripts and character scripts. All scripts have unique names made up of 4 hexadecimal characters.
   −
Although the scripts describe a large part of the logic of a level, there is of course a large amount of standard guard logic relating to routing, shooting, etc. which is down in the raw assembly code. And there are types of objects which are specific to one level, i.e. the table and chairs in the exhaust room on [[Aztec]] which are actually a special kind of [[door]]. Of course the commands themselves are defined in the assembly, and often include subtleties which aren't captured in a simple name. Some of these are described in detail on pages here.
+
Although the scripts describe a large part of the logic of a level, there is of course a large amount of standard guard logic relating to routing, shooting, etc. which is down in the raw assembly code. And there are types of objects which are specific to one level, i.e. the table and chairs in the exhaust room on [[Aztec]] which are actually a special kind of [[Door|door]]. Of course the commands themselves are defined in the assembly, and often include subtleties which aren't captured in a simple name. Some of these are described in detail on pages here.
    
In a ''cycle'', subsequent commands are run until an 03 or ''yield'' statement is reached. The next cycle will continue after that yield.
 
In a ''cycle'', subsequent commands are run until an 03 or ''yield'' statement is reached. The next cycle will continue after that yield.
   −
The purpose of the scripts was ultimately to keep the size of the ROM low, as expressing the same logic in raw assembly for each level would take up a lot more space. <ref>https://soundcloud.com/rwhitegoose/talking-goldeneye-with-dr-doak/s-ANLqq</ref>.
+
The purpose of the scripts was ultimately to keep the size of the ROM low, as expressing the same logic in raw assembly for each level would take up a lot more space. <ref>{{cite web | url=https://soundcloud.com/rwhitegoose/talking-goldeneye-with-dr-doak/s-ANLqq|title=Talking Goldeneye with Dr. Doak|author=rwhitegoose|access-date=July 16, 2021}}</ref>.
    
== Level scripts ==
 
== Level scripts ==
Line 12: Line 12:  
The majority of objectives are triggered by setting flags in the level scripts, though objectives can be set up separately, i.e. the destruction objectives on [[Runway]]. They will also usually control all spawning, for instance on [[Streets]] and [[Surface 1]], but there are odd exceptions where these are done by specific characters.
 
The majority of objectives are triggered by setting flags in the level scripts, though objectives can be set up separately, i.e. the destruction objectives on [[Runway]]. They will also usually control all spawning, for instance on [[Streets]] and [[Surface 1]], but there are odd exceptions where these are done by specific characters.
   −
Exiting the level is always triggered by a level script. With the game tick, this is before the mission timer is incremented, which is exploited in the [[Pausing|Pause trick]] on [[Cradle]] and [[Train|Train.]]
+
Exiting the level is always triggered by a level script. With the game tick, this is before the mission timer is incremented, which is exploited in the [[Pausing#.27Pause_trick.27|Pause trick]] on [[Cradle]] and [[Train]].
    
=== Fake characters ===
 
=== Fake characters ===
Line 20: Line 20:  
Character, or guard, scripts are only called by characters ([[Guards]] and NPCs) in the level. Each script can be run by many characters simultaneously, with each tracking their state (position in the script, current timer, etc.) separately. These scripts have access to a wider set of commands which can effect the attached guard i.e. making them attack or run to a specific [[pad]].
 
Character, or guard, scripts are only called by characters ([[Guards]] and NPCs) in the level. Each script can be run by many characters simultaneously, with each tracking their state (position in the script, current timer, etc.) separately. These scripts have access to a wider set of commands which can effect the attached guard i.e. making them attack or run to a specific [[pad]].
   −
After the level end is triggered by a level script on the final frame, the character scripts still run one last time on all versions. This can include character scripts setting flags which complete objectives. On [[NTSC-U]] this allows the [[Time not saved]] glitch on facility, frigate, train and control.<ref>https://forums.the-elite.net/index.php?topic=18518.msg472722#msg472722</ref>
+
After the level end is triggered by a level script on the final frame, the character scripts still run one last time on all versions. This can include character scripts setting flags which complete objectives. On [[NTSC-U]] this allows the [[Time not saved]] glitch on facility, frigate, train and control.
 +
<ref>{{cite web | url=https://forums.the-elite.net/index.php?topic=18518.msg472722#msg472722|title=the-elite forum Goldeneye facts post on time not saved glitch|author=Whiteted|access-date=July 16, 2021}}</ref>
    
=== Delays ===
 
=== Delays ===
Line 70: Line 71:     
In general the small randomness in the idle delay leads to a random 0-0.32s delay before idle characters respond to some event. Any levels which involve NPC interactions will be effected by it. TASes on some levels such as Facility have to perform heavy [[Goldeneye's RNG|RNG]] manipulation throughout the run to align delays favourably.
 
In general the small randomness in the idle delay leads to a random 0-0.32s delay before idle characters respond to some event. Any levels which involve NPC interactions will be effected by it. TASes on some levels such as Facility have to perform heavy [[Goldeneye's RNG|RNG]] manipulation throughout the run to align delays favourably.
 +
 +
== External Links ==
 +
* video: [https://www.youtube.com/watch?v=M9sOE376tzk The Secrets of GoldenEye's AI Revealed]
 +
 +
==References==
 +
{{Reflist}}
 +
 +
[[Category:GE Technical]]
 +
[[Category:GoldenEye 007]]

Navigation menu