In this blog, I present the progress of this week (video included).
Developement Log
- Fixed calculation error.
- The program could not calculate an important tile, leading to certain crashes.
- Fixed by removing the calculation and setting „1“ as a fixed result. Could backfire, but works for now.
- Adjusted the current interface to display less information.
- Displaying too much information caused crashes.
- Removed two pieces of player data.
- Restructured the core script code so that loading would not run into null pointers.
- This basically destroyed any form of sorted code order I tried to accomplish in earlier steps.
- Added setup guide to ReadMe, so that everyone could run the script.
Notes
Debugging showed that there is a crucial miscalculation in a game script function, which should be fixed later.
The first optimization step will be the removal of the „don’t run left“ restriction. This might already be enough for the AI to beat the tutorial, which is the ultimate goal of this project.
First Results
Finally I can actually visualize my progress. At this point, the AI is able to control inputs. It moves.
On the right side you can see the emulated game. The program jumps directly to a save state after loading the script. The save state is also reloaded after a failed/completed training session, which happens quite often.
On the left side you can see a console after loading the script, which displays technical data.
Bonus Content
Recently, a video on the music of Metroid was published on YouTube. At this point I am basically adding bonus content for consistency reasons; however, the videos usually present a different perspective on the topic of this project, which is nice. This video focuses not only on Super Metroid, but the franchise as a whole.