About Sausage Roll
What Is It?
This is my version of Stephen's Sausage Roll.
The goal is to cook all sides of the sausages. Use the arrow keys to roll the sausages onto the grills.
The game is like sokoban (box push), but more complicated. You walk a little person around a grid, holding a fork out in front of you, and the fork shoves sausages about as you go. Roll a sausage over a grill and the side that touched the grill cooks. The puzzle is solved when every sausage is cooked on both sides and you and your fork are back on the squares you started from (an indicator will pop up once all sausages are cooked).
There are three ways to lose. Cook a side that is already cooked and the sausage burns. Pushing a sausage into the water also loses. Also, I added a new mechanic not in the original game: ungrills. Pushing a raw sausage onto an ungrill makes it double raw and you lose.
If you haven't heard of Stephen's Sausage Roll before, this website's simplified UI might be a little confusing, and I would recommend playing the real thing or at the very least watching some gameplay to get a sense of how the movements work.
Reading a Board
A board is a grid of squares. The color of a square is its ground, and the ground never changes for the whole puzzle:
- blue is water. You can't walk into it. A sausage pushed in sinks, though a sausage with one half still over the land is fine.
- green is land, the plain ground you walk on.
- red is a grill. A sausage rolled onto one cooks the side that touches it. You can't stand on a grill yourself. If you try, you will briefly step on it and jump back (see Weird Mechanics below).
- light blue is an ungrill. It is a grill running backwards: a sausage rolled onto one un-cooks the side that touches it. If you try to ungrill a raw sausage, you lose. This is not part of the original game; this is my own addition I invented.
- gray is a boulder. It never moves, and nothing can be pushed onto it. Use it to stick and unstick your fork from a sausage.
Everything else is drawn on top of the ground:
- is the roller, which is you.
- ψ is the fork. It is always on the square in front of you. Unless you're stabbing a sausage, you can't walk sideways with the fork. If you try to walk sideways, you will turn to that direction.
- ψ are the exits: a transparent roller and fork. They are hidden until all sausages are cooked. Stand on them to beat the level.
- A sausage is one capsule lying across two squares. The inside color is the side facing the sky and the outline around it is the side lying on the ground. Pink is raw and brown is cooked, so is raw all over, is cooked underneath and still raw on top, and is done.
Controls
The arrow keys or WASD move you, or use the arrows under the board. Z is for undo and R is for reset.
The Boards
The boards are organized into the groups the launch page lists:
- "Easy" is where to start. These puzzles serve as a sort of tutorial for learning the game, and getting a feel for common solving patterns.
- "Penguin's" is my own collection. I created these puzzles.
- "Stephen's" are a few choice levels from the real game, rebuilt here.
- "Ungrill" are puzzles that have an ungrill in them.
Every group is listed easiest first, going by how many moves the board takes to solve. That is a rough way to measure a puzzle — a short solution can sometimes be a lot harder to see than a long one.
Weird Mechanics
There are a couple of weird mechanics. To be clear, all of the mechanics follow the original game (apart from ungrills, which is my invention), it's just that it's more obvious what's going on in the original game because it has animations.
One weird mechanic is stepping onto a grill. Standing on a grill isn't allowed, so if you step on one, the roller will immediately jump back. This isn't animated on this website... only the final position is shown. So it can be a little weird to figure out what happened.
Another nonobvious mechanic is turning into a blocked square. When turning, you need two squares to clear: first the diagonal square and then the final square where the fork ends up. Sometimes, a sausage is in the diagonal square and gets pushed, but the final square is blocked. So the final position looks like the sausage was pushed even though the fork didn't move.
Boulders and Sticking the Fork in a Sausage
Walking forward into a sausage normally pushes it along. But if the sausage has nowhere to go, the fork will stab the sausage, and the sausage is now stuck on the fork.
A few things are different while a sausage is on the fork. You can't turn anymore. You can only walk as one piece (the roller, fork, and sausage combined). And that sausage slides rather than rolling, so the side lying on the ground stays on the ground.
To pull the fork out, back up with the sausage caught on something. That means that a sausage speared end on can never come off, because it can't be caught onto something anymore.
Solved Boards
A board you solve turns green on the puzzle directory page. That is remembered by your browser alone, so it does not follow you to another computer, and clearing your browsing data clears it too.
Click the button below to reset which boards you've solved. It asks first, because this can't be undone.
The Solver
To generate and solve the boards, I used the A* search algorithm, coded in Rust. Assuming I did it correctly, it will find the optimal solution (optimal meaning least number of moves). It solves most boards in well under one second, but it can take a lot longer when there are two or more sausages.
Why?
I'm a big fan of the original Stephen's Sausage Roll. But unfortunately I'm not very good at it. I wanted to play more of this type of puzzle, but with a lot of easy levels. So I made my own. I think the result has been decently successful! Although I'm finding it tad hard to make a medium difficulty puzzle. It's pretty easy to make an easy puzzle, and easy to make a ridiculously hard puzzle, but tough to make something in between. I'm working on it...
It's also hard to make a "good" puzzle. Just because a puzzle is hard, doesn't make it "good". Stephen's hand-crafted puzzles all explore a unique technique to solve a puzzle. The puzzles I make currently are created using a lot of randomness. So many interesting solving techniques will just never be found this way. For example, see Stephen's Twisty Farm puzzle. That "ladder" pattern will never happen by placing down boulders randomly. I'm trying to think of ways to expand the creativity needed to solve these puzzles.