The World's Hardest Game 2 is the second installment of the The World's Hardest Game series released in 2008. In the game, the player is a red square who must reach the end of 50 levels. The player must also avoid enemy circles that can hit the red square and reset progress in the level. This TAS movie attempts to complete the game as fast as possible without using any major glitches.
Emulation
- Operating system: Ubuntu 22.04.1
- Emulator: libTAS v1.4.4 with ruffle-nightly-2022_10_15
- MD5 hash: 37def957ec3faf6859e8e312cbbf9664
- The game functioned normally without any time tracking settings.
Movie objectives
- Completes all 50 levels as fast as possible.
- Avoids the use of major glitches listed below
- Enemy clipping: In order for a death to register under normal Flash Player conditions, one of the square's enemy collision contact points have to contact an enemy's current bounding box as well as one of the enemy's rendered pixels from the previous frame. Due to this, moving enemy hitboxes on the Flash Player act as if they were smaller. This could be considered as a major glitch since you are able to phase through faster enemies and save large amounts of time. (Example) On Ruffle, this behavior patched, so I am guaranteed to be unable to use it.
- Pausing: Pressing the menu or pause buttons cause enemy collision checks on the frame before to be essentially ignored. This can be abused by spamming pauses to move right through enemies. Another glitch that occurs with pausing happens if you pause before an intermission ends and a new level starts. You can play the game normally with the pause screen visible, and you are able to ignore one enemy hit before you have to unpause to hide the menu. Pausing is not used because repeatedly doing so creates rapidly flashing visuals, which may be unenjoyable to watch.
- Dies at the end of the last level because I thought it would be a little funny to have the death noise play right after a (near) perfect run.
This is an improved version of
this submission which I cancelled, because after submitting it I saw that I missed various time saves. I wrote a bit of extra information there. If you would like to see what improvements were made over the old TAS, I put them in description of the Youtube video.
There are multiple versions of this game, be sure you find the right one. This movie plays on the 2.0 version (the first version) and it has 50 levels. The 2.1 version (second version) is an extended version with 10 extra levels scattered between the original ones.
This TAS may not sync properly on all resolutions because collisions in the game can vary based on window size. Speedrunners for TWHG1 select specific window sizes to perform certain time saving tricks, and the TASes for it (made possible by modding the .swf) constantly change resolutions to achieve different tricks.
Speed tricks
Note: A frame will also refer to the distance moved by the square in one frame (3 pixels on normal resolution).
- Win contact: Finish areas register that the player has completed the level as soon as the square hits the green, even if only the very corner hit the green. This can save time by hitting the finish even when there's an enemy in your way that's about to hit you.
- Wall clipping: Sometimes, you can move into walls an additional frame closer by moving diagonally into an outwards corner connected to the wall. This can let you move past bouncing enemies sooner, or it can allow you to be closer to something behind the wall and let you reach it one frame sooner.
- Corner boosting: As an extension to wall clipping, if you go away from the wall by moving towards an outwards corner that the wall is connected to, you will be boosted by a frame in the direction parallel to the wall.
- Enemy grazing: The square's nine enemy collision contact points are spaced apart in a 3x3 grid formation. In certain situations, you can narrowly avoid an enemy by letting it very slightly graze between two contact points. This can be useful to move a frame closer to a location when an enemy is in the way, and can rarely be used for survival purposes.
- Death ending (unused): Getting hit and finishing at the same time lets you progress to the next level, but you start with the square fading out from the death animation. This would be useful if you took a path that killed you while finishing and had a waiting period at the start of the level after, but there are no such cases.
Further optimization
- Levels with multiple coins in an open space are the hardest to optimize, due to the many possible route choices. The worst offenders like this are levels 46 and 49, where I bet somebody could find a faster route with enough searching. Level 27 is also another level with potential optimization due to many choices that the coins and corridors offer.
- Beyond that, nothing else sticks out very much. I could be potentially be missing a random wall clip/corner boost somewhere or slightly better movement. Open space has the most potential, such as with level 34.
Info Teddy: Hello and welcome to TASVideos, Automanager.
Just a minor note, you didn't necessarily have to cancel
your other submission; you could have asked for it to be delayed while you worked on improvements, then had the movie file replaced. But there's no issues with canceling and doing another submission, if that's what you prefer.
Anyways, this is very good work. You've definitely put a lot of effort into it, and you even continued to optimize and find timesaves after submitting it. The goal choice of "no major glitches" is clearly defined and appropriate for Standard.
Accepting to Standard.
feos: While the glitches avoided in this run greatly affect the nature of gameplay, they still don't quite fit our definition of a
major skip glitch, because each of those glitches skips a certain mechanic but not most of gameplay itself. Which makes those glitches similar to mechanics avoided in these movies:
As such, this movie matches Alternative class goals more neatly, because it looks the most appealing of all other possible branches of this game. Even if it gets little to no feedback, it makes the most sense to have it as the entertaining branch, and the ones with more glitches are speed focused.
Branch label itself if probably fine because it's about several glitches. Whether we can define their nature better, we'll see... Until then it should be fine to publish as is.