a bot that learns to play super mario bros. a work in progress. kinda sucks right now.
ars.lua | ||
Base.lua | ||
config.lua | ||
gameconfig.lua | ||
main.lua | ||
nn.lua | ||
presets.lua | ||
README.txt | ||
smb.lua | ||
snes.lua | ||
strict.lua | ||
util.lua | ||
xnes.lua |
this program is largely incomplete and not in a presentable state. please be mindful when sharing it. however, feel free to copy any snippets of code you find useful. video of it in action: https://youtu.be/cD43DWa-3fM usage: 0. edit config.lua as you please 1. open FCEUX 2.2.3 2. load Super Mario Bros. (U) (CRC32: 3337EC46) 3. open a new Lua script window (it's in the File menu) 4. browse and open main.lua TODOs: (that i can remember right now) - normalize `for i=a,b` code style - normalize and/or embed sprite type inputs - settle on a network architecture - compute how many input neurons the network needs instead of hardcoding - add some detection for enemies later in the game - fix cfg.enable_overlay (smb.lua doesn't see it being changed) - maybe log the average distance from init? naive: - learn any combination of buttons, starting from title screen - learn to run network without frameskip - learn other games