Hello everyone!
In the last months I made 3 tool-assisted speedruns of short HTML5 games.
After publishing today the third speedrun on YouTube, I thought about joining the site and publishing everything I did so far.
(Those games can't really be verified here because they are browser games, and also the game code was edited to some extent in all games)
First, the links to all the TAS runs:
A Pirate and his Crates:
https://youtu.be/wNzVCiR8yCU
Overlord's New Mansion:
https://youtu.be/YvMkxYfV2pY
Doodle Alive:
https://youtu.be/YAJDxF33Xus
Some explanation about the games, and how I made the runs:
A Pirate and his Crates - A simplistic puzzle/platform game with 15 very short levels. Movement is done only with the arrow keys (but there are still some tricks and glitches involved with movement).
Overlord's New Mansion - A puzzle/platform game with 15 short levels, but now with a horizontal dash ability (it was inspired a bit by Celeste).
The run is done on the "glitched" Any% category, where you can also summon creatures with the number keys.
Those creatures are not intended by the developer to be summoned, but he forgot to remove that feature from the release version.
Doodle Alive - A puzzle/platform game with 19 levels where you can transform between a "top-down" mode and "side-scroll platform" mode.
In top-down mode you can move in all direction and interact with all the objects, and in platform mode you can move only left or right, and jump.
There is also a glitch that lets you jump in the air and do some sequence breaks.
The TAS for "A Pirate and his Crates" is very close to the human record, because a human can do every trick by himself, but probably not as perfect.
The TAS for the other games are MUCH shorter than human runs, because of how glitches can be used reliably to do some crazy stuff and completely break the levels design.
The first 2 games, "Overlords' New Mansion" and "A Pirate and his Crates", I did by programming and running AutoHotKey scripts that execute button presses in certain times, and "sleeping" for the remaining time.
The levels are very short so it's not a big problem to program a script for one level (but it does take a lot of trial-and-error, since you don't have stuff like frame advance or save states).
The big problem is that the scripts are prone to de-syncs very fast, so what I did was programming a script for each individual level, run and record that level, and then combine everything later by combining all records into one segmented video.
Sometimes I even had to run the same script for a level several times, until I got a desired result.
Overall - highly not recommended :)
In the third game, "Doodle Alive", I used the tool developed by MagneticDuck which he built for TASing Choppy Orc.
(He explained about that tool and TAS here:
http://tasvideos.org/forum/viewtopic.php?t=21163 )
Basically, I downloaded all the game files so I could work on the game locally. Then I had edited the game code to send signal of certain actions to the "coffee" tool (like button presses, when a level starts or ends, etc).
The "coffee" code lets me write an custom "autosplitter" for the game so I could make a timer for each level and a timer for the entire run; and also a tool for frame-advance and recording inputs which you can save into slots for later use.
When I record a level, the tool save the recorded inputs as a string code. In the end I can run a single code, or run several codes one after the other.
The advantage is that after injecting the tool into the game, it's very easy to use and record the game, and you can automatically play the entire game automatically.
This game movement is MUCH more complex that the other two, so AutoHotKey was not cut out for the job here.
I also programmed a little virtual keyboard to show the inputs at realtime, for fun.
The major disadvantage is that you have to edit the game code itself, and alter the "coffee" tool to fit the mechanics of the specific game.
In this case, the game code is a minimized obfuscated mess, and it takes some levels of reverse-engineering to understand what is going on; it also requires good understanding of programming in Javascript.
It took me much more time to work on the game code than it took me to record the TAS itself.
Overall, after trying this tool for myself, I really enjoyed working with it (after overcoming the tool injection phase). The tool by MagneticDuck is awesome.
In hindsight, I would have probably used that way to TAS the first 2 games as well.