Table of contents
Introduction
This is my longest movie so far. It solves all 160 rooms (16 stages x 10 rooms) in the game.
I came to this way in a rather indirect way. As I was working in implementing DOSBox as core for Bizhawk, I started to fantasize about those old DOS games I used to play and how I could TAS them very comfortably now. Among those games was Sokoban, a puzzle game where you play as a warehouse worker having to push boxes to their designated places. It was hard and I couldn't beat more than two levels (hey, I was a kid).
So now I thought, I could surely program a very lightweight version of the game in C++, transcribe the levels, and then brute force it using JaffarPlus. However, turns out people had that same idea a long time ago and an abundance of spectacularly well optimized solvers already exist. Then I figured I might as well use those.
So I set up to transcribing Sokoban levels for use on those solvers / optimizers I found. However, transcription took a lot of effort and the glooming thought that perhaps a significant change in the DOSBox core would mean it'll desync in the end made me think this would have to wait. That is, unless I found a similar kind of game for an already well supported console. Then I found this game.
The process went as follows:
- Grab transcriptions of the levels from this Game FAQ. I had to fix a bunch of them that had transcription errors.
- Use Festival to solve them all in batch
- Use Jsoko to iteratively optimize the solutions
- Use my own translator that took .sok format solutions to Bizhawk inputs
I know [5781] Genesis Shove It! ...The Warehouse Game by squilibob & BaconOmelette in 18:26.94 followed a similar approach. However, I find it unsatisfying that they only solved the minimal number of rooms to advance. I find it more entertaining to see all levels, including the large ones. There is a relaxing aspect of spending 4 hours watching a very efficient worker do his job with extreme precision.
One little caveat is that, for some stages, I had to skip room 8 to reach rooms 9 and 10, before going back to 8. This is because, for some of the stages, beating room 8 will automatically advance you to the next one and making rooms 9 and 10 unreachable. Very strange progress mechanics.
In any case, I will also probably improve on the any% movie. I'm pretty sure I can cut a bunch of frames off that one, even if I have to build my own optimizer.
Software + Hardware
Rom Information
- Name: Shove It! - The Warehouse Game (USA)
- ROM: Shove It! - The Warehouse Game (U) [!].bin
- SHA1:E4094C5A575F8D7325E7EC7425ECF022A6BF434E
- MD5:2C6A960F66D1C87855424E6528D6EAC6
Emulator
- EmuHawk 2.10 (Core: GPGX)