Duck Hunt

It's not that complicated....you shoot ducks.

Why Duck Hunt?

The current publication for this game is essentially just a playaround. It includes one level of each game mode, but doesn't really complete any of the modes. As it's a playaround, it really shouldn't be in the vault, which is where it currently resides.
While there are three game modes as options, these aren't exactly difficulty differences. They're more like three individual (though similar) games on one cart. They are even labeled as GAME A/B/C not MODE or DIFFICULTY. As such, it is my opinion, that each mode could be run as a separate game/branch. Further, each mode's eligibility for vault should be determined individually, not based on either of the other game modes.
Therefore I am presenting Duck Hunt: Game B - 2 Ducks
But before that...

A Bit of History

While most gamers are familiar with Duck Hunt, what many may not know is that the video game we know and love (or hate) was NOT the first incarnation of Duck Hunt. In 1976 Nintendo released Kôsenjû Duck Hunt, an electro-mechanical game that follows the same premise as the video game...shoot the flying ducks. Essentially, Kôsenjû Duck Hunt projected a duck onto a wall and you shot that duck. The system determined if you hit the duck or not and, if so, the duck fell.
Here's a video of the game from from Before Mario, a collection/encyclopedia of toys and games made by Nintendo before their video game fame. For video of ducks being shot, skip to about 50 seconds.
For more information on this original version of Duck Hunt see the following links also from Before Mario.
Basic info on Kôsenjû Duck Hunt
More details on how it worked

TAS Notes

  • Goal: 'Beat' Game B as quickly as possible
  • Uses HEAVY luck manipulation!!!
  • Plays through 27 levels of 2 Duck mode
  • Due to the repetitive nature, this is clearly an attempt at a vault run.
  • Final input occurs 4 frames after the last button press - this is when the system reads the position the gun is pointing at on the screen. If the movie is ended prior to this frame, the final duck is missed and thus the game is lost.
Why Game B, and why 27 levels?
While it does technically have an defined ending with the kill screen, Game A is quite trivial to TAS. As mentioned by feos in his rejection of a recent Game A submission, all that is required is to watch a RAM value for where the duck is when it first appears and make sure it's shot. Further, each duck's appearance is determined by a timer that counts down after the dog jumps or hides back down behind the grass. The timer always starts at 47 after the dog is gone. Therefore the timing is consistent and the position of the duck is always known, making the TAS trivial.
The addition of a second duck makes all the difference from a TASing perspective. In 2-Duck mode, the 47 frame timer before the first duck appears remains, so this portion of the timing is consistent. HOWEVER, once the first duck appears the timer is then reset based on RNG; it's set to any number between 0-64. This delay for the second duck happens to be manipulable via input. Therefore, TASing is no longer trivial due to RNG manipulation.
Challenge 1: determine the ideal delay between ducks.
At first it may seem that a delay of 0 frames would be ideal to get both ducks out at the same time. Unfortunately, firing the gun takes two consecutive frames of holding the trigger, and then a few frames pass while the system processes that shot. During these frames the second duck would be able to fly around. In doing so it would gain altitude, thus requiring more frames to fall down after it was subsequently shot adding unnecessary frames to the run. So determining the timing to shoot both ducks as soon as possible and at the lowest possible altitude was in order. The timer for the second duck's release is paused during the processing of the first shot. All this combined together makes the ideal timer countdown for the second duck to be set to 3.
It unfortunately was not possible to always force a 3 in the delay timer. When this was the case, a 4 was usually possible. While 2 was also possible and would allow for shooting the 2nd duck one frame earlier than a 4, it would again require a wait for the duck to fall down after being shot, so 4 ended up being better in my testing.
So once determining the ideal delay at 3, most of the TASing was finding a way to manipulate this. There are a few other time save opportunities included as well.
Challenge 2: Missing ducks.
In the first 19 levels, it's possible to miss one or more ducks without getting a "Game Over." Doing this prevents the "Perfect!" dialogue box from appearing which would otherwise add unnecessary frames. The wait for the duck to fly away after missing it was shorter than the "Perfect!!" dialogue.
When a duck needed missed, the goal of RNG manipulation was to get it to fly away as quickly as possible. For these ducks, I tried to manipulate the delay for the 2nd duck to be less than 3 (ideally 0). This way the 2nd duck had opportunity to gain altitude while we were shooting the first duck making it closer to the top of the screen when we missed shooting it allowing it to leave the screen as early as possible.
Missing both ducks (where a level would allow) was not faster, as the giggling dog animation takes longer than the animation to hold up the dead duck.
Beginning with level 20 all ducks must be hit to proceed, so this strategy becomes no longer usable.
Challenge 3: Determining the end point of this mode.
While 1 Duck mode has a kill screen, this mode does not. Therefore it can be considered an endless game by our rules. Therefore it was necessary to determine where the game 'ended' for TASing purposes.
As mentioned before, I don't consider the different modes to be different difficulty levels. Yet this game does, in fact, have a difficulty curve. Various aspects of the game change as progression through levels occurs:
  • The number of ducks needed to be hit increases
    • Levels 1-10: 6 out of 10 ducks must be hit
    • Levels 11-12: 7 out of 10 ducks must be hit
    • Levels 13-14: 8 out of 10 ducks must be hit
    • Levels 15-19: 9 out of 10 ducks must be hit
    • Level 20 onward: All 10 ducks must be hit
  • The average speed of the duck increases until level 27
  • The duration of time the duck is on the screen decreases until level 20
  • The size of the ducks' hit-boxes decreases until level 27
As the final level where any of these changes occur is level 27, this can be considered the final introduction of new content. Therefore beating level 27 is the end of this game mode for TASing purposes.
Most of this information regarding difficulty comes from here.
The Last Duck
For the last duck, it didn't matter if the delay timer was below 3. Only in this case, the time needed for the duck to fall after gaining altitude doesn't impact the timing any future inputs. Therefore I manipulated a 0 allowing this duck to gain altitude and actually be seeing getting shot.

Potential Improvements

  • As the timing of this run is very heavily RNG dependent, it's possible someone else could find a better method of manipulating the RNG to yield a better sequence of RNG and further improve the timing delays.
  • Missed ducks - Most of the time I missed the last duck. However it's possible to miss any previous duck in the sequence. It's possible doing so would affect RNG differently thus changing the entire subsequent sequence of RNG.

Further thoughts on TASing Duck Hunt

  • Game C - Clay Shooting uses much of the same mechanics as 2 duck mode in regards to timing. Therefore a TAS of Game C would also be non-trivial to optimize. I have not however found any specific information on the difficulty curve of this mode, so I don't know how many levels would need completed.
  • If the staff doesn't agree with my perspective that the three modes are in fact three separate games, I have completed a similar TAS to the current publication.
    • Mine is faster due to RNG manipulation, and only shooting as many clays as necessary to beat the first level of Game C.
    • In the event that this submission is rejected for only showing one mode, I will submit that TAS in attempt to obsolete the current publication. My opinion though is that the current publication shouldn't be vault eligible.
    • If the staff feels that a complete game is defined by requiring all 3 modes to be completed to their respective 'end' points, work will need done to determine the endpoint of Game C, then a TAS will need created from scratch.
      • It's possible that the above referenced rejected submission could be used as a starting point then just adding in Game B and Game C. But even with a 'reset' press, the RNG may be different for Game B in that situation; meaning my inputs likely won't sync.

Final thoughts

I feel like I've forgotten something, but I have no idea what it may be at this point. I suppose I'll add it in if I remember.

Memory: Judging
Memory: Optimization is very on point. The single round that this shares with the current publication is significantly faster thanks to manipulation of when the second duck spawns.
Unlike the Game A submission that was rejected for triviality, this mode is demonstrably less trivial, requiring manipulation to ensure the second duck spawns as fast as possible. Additional routing was done to ensure a "Perfect" screen was not shown when possible since that wastes time.
There was a complaint about avoiding perfect screens by intentionally missing ducks and wished the submission had made speed/entertainment trade-offs to hit every duck. This complaint is irrelevant because this submission is extremely repetitive to watch regardless of hitting or missing ducks. As such this branch can only go to Vault where speed/entertainment trade-offs are not allowed.
This movie fully clears all unique content in Game B and can be considered complete by our rules for games without clear endings.
This submission however only fully completes Game B. The current publication plays all three modes, however it does not actually reach any of the acceptable ending points for games without clear endings for any of them. As such this branch can obsolete the current publication and be labeled as some variant of "game B". However, I encourage a movie that contains both Game B and Game C in their entirety be created as that would be able to obsolete this branch with no label required. Game A is not necessary since it has been deemed trivial.
For the time being however, accepting this movie to Vault to obsolete [2166] NES Duck Hunt by Randil in 01:46.82.
feos: Pub.
feos: The label in its accurate form (like the game calls this option) looks like a compound branch, much like what we do for DOS episodes. Simplified it to just the mode by letter.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15628
Location: 127.0.0.1
This topic is for the purpose of discussing #6427: DrD2k9's NES Duck Hunt "Game B" in 11:51.59
nymx
He/Him
Editor, Judge, Expert player (2255)
Joined: 11/14/2014
Posts: 933
Location: South Pole, True Land Down Under
Dang DrD2k9...shooting those ducks in the grass doesn't seem to be fair. Did you ever consider the little ducklings that were left behind after you killed the parents? Yes vote for clearly making it fast as possible. This means, cutting the "Perfect" bonus in the stages that didn't require 10 out of 10 and affecting RNG in order to bring up the ducks as fast as possible.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
DrD2k9
He/Him
Editor, Judge, Expert player (2221)
Joined: 8/21/2016
Posts: 1091
Location: US
nymx wrote:
Dang DrD2k9...shooting those ducks in the grass doesn't seem to be fair. Did you ever consider the little ducklings that were left behind after you killed the parents?
With that many ducks in one area....their population needs culling.
Kung_Knut
He/Him
Joined: 8/10/2016
Posts: 85
Location: Sweden
Voted meh for entertainment, but this should definately be published. I agree with your reasoning on Vault publication, and would not mind all three modes as separate movies. Well done!
Dimon12321
He/Him
Editor, Reviewer, Experienced player (597)
Joined: 4/5/2014
Posts: 1227
Location: Romania
I smiled once when you "accidently" missed the last duck in the 1st round. Highlights over! This game is entertaining only if you're holding a gun, your NES is turned on, and you're shooting ducks in front of your TV. Superhuman skills are limited here only by shooting ducks at the first possible frame. Oh, not the first possible, there are luck manipulations somewhere, but whatever. In short, I'm not impressed by your TAS, sorry. No vote =(
TASing is like making a film: only the best takes are shown in the final movie.
Joined: 6/4/2009
Posts: 893
extensive works seems to have been done clean for the vault .
Joined: 1/27/2014
Posts: 181
I'd prefer: "Speed/entertainment tradeoffs" "Hits every duck"
DrD2k9
He/Him
Editor, Judge, Expert player (2221)
Joined: 8/21/2016
Posts: 1091
Location: US
electricslide wrote:
I'd prefer: "Speed/entertainment tradeoffs" "Hits every duck"
If I felt this run had any chance at Moon tier, I would have done that. But frankly, I don't believe this game has enough inherent entertainment value worthy of moon tier from a TAS perspective. This submission was always intended as a vault attempt; and for that reason, the speed takes priority in my opinion.
Joined: 1/27/2014
Posts: 181
Ultimately, I think this site is primarily about entertainment. Making your movie less good but faster is counterproductive. If it were something that was known to be faster but you weren't quite sure how to implement it, that would be one thing. I generally feel that way about scoreboards in general. There are games where it's faster to finish second because of victory animations, etc. I'd go so far to say that Victory animations shouldn't count against the player in terms of assessing the speed of their submission, only the actual time that they can control. This would do away with a lot of the nonsense, where you are slower and less accurate, over an optimal submission in terms of performance.
Lobsterzelda
He/Him
Skilled player (1259)
Joined: 3/17/2019
Posts: 284
electricslide wrote:
Ultimately, I think this site is primarily about entertainment. Making your movie less good but faster is counterproductive. If it were something that was known to be faster but you weren't quite sure how to implement it, that would be one thing. I generally feel that way about scoreboards in general. There are games where it's faster to finish second because of victory animations, etc. I'd go so far to say that Victory animations shouldn't count against the player in terms of assessing the speed of their submission, only the actual time that they can control. This would do away with a lot of the nonsense, where you are slower and less accurate, over an optimal submission in terms of performance.
I'm not so sure if I agree with that premise. What it sounds like you're saying is that the individual components of a TAS should be as optimized as possible, even if the TAS as a whole is slower than it could have been. To take this to an extreme, suppose you have a video game with 180 rooms in it. If every 10 rooms you can die to save time overall by changing the global timer cycles, then the TAS that seeks to make the fastest overall TAS would die 18 times. If each of these deaths saved 30 seconds in the long run in a 30 minute long TAS, then that would add up to 9 minutes of time save throughout the whole TAS (a final time of 21 minutes). However, if dying was 2 seconds slower than going through a given room without dying (ignoring the 32 seconds of time save that would occur later on), then somebody following your optimization pattern would never implement this strategy. Thus, by breaking the game down into discrete components with the goal of making each segment as fast as possible from the perspective of making the current segment of the TAS as fast as possible, the TASer would make a suboptimal TAS, which would be less entertaining and optimized compared to the TAS that allows itself to temporarily perform in an "unoptimal" way in order to save time later on. Essentially, the strategy you're suggesting is easier, since it would require the TASer to just make each room/level in the game as fast as possible in order to finish the TAS. However, if a TAS requires delays for RNG manipulation or some other sort of complex mechanism to get the fastest overall time, then the TAS will miss a lot of possible optimizations due to this policy.
EZGames69
He/They
Publisher, Reviewer, Expert player (4468)
Joined: 5/29/2017
Posts: 2765
electricslide wrote:
Ultimately, I think this site is primarily about entertainment. Making your movie less good but faster is counterproductive. If it were something that was known to be faster but you weren't quite sure how to implement it, that would be one thing.
May I direct you to this page that you’d might find interesting? http://tasvideos.org/Vault.html
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15628
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4003] NES Duck Hunt "Game B" by DrD2k9 in 11:51.59
Joined: 11/15/2004
Posts: 804
Location: Canada
In the first 19 levels, you miss one of the last two ducks. You mentioned optimizing the spawning of the second duck while you're killing the first. Would it make any difference to kill the second duck and let the first one fly away? I was thinking about how the second controller can be used to control the duck in Game A, which could help it fly away faster if your intention is to miss. That doesn't work in Game B, but I still wondered if it would, nevertheless, be faster to let the first duck make some progress towards the top of the screen while you're running yourself out of ammo and killing the second duck.
TASing or playing back a DOS game? Make sure your files match the archive at RGB Classic Games.
DrD2k9
He/Him
Editor, Judge, Expert player (2221)
Joined: 8/21/2016
Posts: 1091
Location: US
hopper wrote:
In the first 19 levels, you miss one of the last two ducks. You mentioned optimizing the spawning of the second duck while you're killing the first. Would it make any difference to kill the second duck and let the first one fly away? I was thinking about how the second controller can be used to control the duck in Game A, which could help it fly away faster if your intention is to miss. That doesn't work in Game B, but I still wondered if it would, nevertheless, be faster to let the first duck make some progress towards the top of the screen while you're running yourself out of ammo and killing the second duck.
My thoughts without testing specifically regarding killing the 2nd duck: 1) Waiting for the 2nd duck to appear before firing the first shot. Waiting to shoot the second duck as it appears would be a delay of 1-3 frames for the 1st shot itself (even when the timer can be manipulated to be 0, the 2nd duck won't release until the frame after the first duck). Then the 2nd shot/1st miss followed by triggering the fly away on the 3rd shot would take as much time as it does now. While this allows the 1st duck to fly during those 1-3 frames before the 2nd duck arrives, due to variability in flight direction it isn't guaranteed to save the 1-3 frames lost to waiting for the first shot. This may be viable. 2) Shooting 2 shots before the 1st duck appears. Having only one shot remaining once the ducks arrive would minimize the time between the arrival of the 2nd duck and "fly away". However... When the gun is shot before/between ducks, there's a slight pause in the duck release countdown. Delaying the countdown before any duck appears is pointless as it delays duck arrival and wouldn't allow either duck to gain much altitude after arrival before the "fly away" was triggered. Therefore, shooting before the 1st duck arrives will likely lengthen the total time. 3) Shooting ASAP and missing the 1st duck when it arrives, then hitting the 2nd duck with either the 2nd or 3rd shot. (This is what I assume you're suggesting.) Oddly, the delay between how quickly two shots can be performed is longer if you miss a duck than it is if you hit a duck. So missing both the first and second shots adds one extra frame before the last shot can be taken and trigger the fly away. Therefore the 3rd shot needs to be one of the misses to minimize time before that shot can be taken. Whether the first or second shot is the hit, the time to get to the third shot should be equal. So if the first duck is missed, it may indeed have time to get higher on the screen before the 2nd shot can kill the 2nd duck. Based on these thoughts; either option 1 or 3 may be viable, but would likely require testing on a level-by level basis. Unfortunately, changing any individual level would likely affect RNG and require complete redo of everything from that point onward. Still, I may do some testing on this thought. Thanks for the idea.
Joined: 1/13/2007
Posts: 343
btw, if any duck other than the last one is missed, the game delays while it scoots the hit indicators over, playing a cute little sound. this is unlikely to ever get made back in better RNG by missing an earlier duck, because of the number of frames the sound effects lasts and delays the end of round. yes this means that there is an automatic delay for letting duck 9 fly away, because the hit indicator for duck 10 will be scooted to the left.