Optimizing Our Way Through Metroid
Posted5 months agoActive4 months ago
antithesis.comTechstory
excitedpositive
Debate
20/100
FuzzingNes GamesOptimization
Key topics
Fuzzing
Nes Games
Optimization
The article showcases Antithesis's fuzzer optimizing its way through the NES game Metroid, sparking discussions on the techniques used and potential applications to other games.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
1d
Peak period
11
30-36h
Avg / period
3.6
Comment distribution32 data points
Loading chart...
Based on 32 loaded comments
Key moments
- 01Story posted
Aug 22, 2025 at 9:42 AM EDT
5 months ago
Step 01 - 02First comment
Aug 23, 2025 at 2:58 PM EDT
1d after posting
Step 02 - 03Peak activity
11 comments in 30-36h
Hottest window of the conversation
Step 03 - 04Latest activity
Aug 25, 2025 at 1:21 PM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 44984599Type: storyLast synced: 11/20/2025, 7:55:16 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
I would love to see how it handles Castlevania II.
Also a bit frustrating because the first Castlevania itself isn't actually a metroidvania, it's a more conventional action-platformer. Castlevania II has non-linear exploration, lots of items to collect, and puzzle-solving, all like Metroid. So it's not too surprising Antithesis had to do a lot of work for adapting their system to Metroid - but I wonder if this work means it now can handle Castlevania II without much extra development.
I assume you're thinking specifically of using the red crystal to spawn a tornado: https://youtu.be/Mx9PwRIK9Io
https://antithesis.com/docs/
But I'm probably viewing this from TAS perspective instead of fuzzer perspective
I've also done something along these lines myself in Super Metroid. Mother Brain's neck moves in a conceptually simple but very chaotic pattern influenced by Samus's vertical movement, and there's a cutscene during the fight where the positioning of her neck can make a difference of about 7 seconds. The TAS fight used complicated movement to manipulate her neck position developed through much trial-and-error, while the best known human-viable manips were several seconds slower.
I wrote a program to search the state space for optimal movement patterns, and working with some speedrunners we were able to come up with a new human-viable manipulation that matched the previous TAS fight, as well as a new TAS manipulation that saved an additional 41 frames.
https://youtu.be/7SHD9L_Jx5Q
https://github.com/NobodyNada/mbsim
A funny story though: a regular conference gimmick we have is “Man vs. Machine” where we have attendees race our fuzzer to the end of Mario level 1-1. We did this at the final year of Strange Loop, and the fuzzer was winning handily until not one, not two, but three different professional speedrunners walked by and destroyed us.
There's also some kind of weird input-capture stopping keyboard scrolling at first, and the video player is some weird thing I can't see how to make work.
http://tom7.org/mario/
Video: https://www.youtube.com/watch?v=xOCurBYI_gY
What's neat is that they're not just mechanically applying the same techniques to new games! Each game has been harder to fuzz (larger state space, implicit constraints in gameplay, etc). So they keep inventing new techniques.