Manufactoria is a puzzle game about putting robots in their place. In this instance, that also includes you. But don't worry! You're special; you're not destined for an eternity of drudgery percolating coffee or shredding paper for some inferior fleshy being. Your job is to build a testing machine that makes sure your less functional mechanical brethren don't have any defects that would involve pesky murder sprees. Think it sounds easy? Oh, silly robot. You don't know what you're getting your nuts and bolts into.
The concept is thus; you need to place conveyor belts and checkpoints from the left side of the screen, using the displayed keys to rotate, to get your robots through the testing area and to the exit. Each robot comes programmed with a specific colour sequence, and you need to make sure that only the ones that match make it through. Each level will tell you what sequence to look for. Checkpoints read the colours on a robot, and spit it out in the appropriate direction, so use them to figure out what robots match the sequence, and which ones should be dropped onto the factory floor. (Be warned, checkpoints also strip the last colour they read off a passing robot, so make sure no defects sneak through!) Once you think you've got the right pathway, click the click grey arrow to start. There's no penalty for getting a level wrong, and you have infinite pieces to use, so don't be afraid to experiment. It'll help you learn the ropes!
Inspired by Zachtronics "Games for Engineers", it's one of those things that seems extremely simple at first contact, then finds you hunched over the keyboard three hours later, your hair in corkscrews, smelling of desperation and sweat. Well, maybe you smell like that. I only smell like roses and candy canes no matter what I'm doing. The game's super simple presentation and utterly brain twisting gameplay won't be to everyone's taste, but those of you who enjoy logical puzzlers may find this tingles your circuitry in all the right ways. It's great to find a game that sets out to challenge you rather than merely attempt to catch your interest for a few minutes with a load of style but no substance, and Manufactoria will definitely get those rusty gears grinding again. When you're done, make use of the level editor, because the best way to show you care for someone is to tie their brain into knots.
Walkthrough Guide
(Please allow page to fully load for spoiler tags to be functional.)
I've been yearning for a hint-through / concept-through walkthrough for this game, rather than copy-and-pasting solutions over my own work. So, here's a descriptive walkthrough for the ones I've solved thusfar. (Credit given when I didn't figure out the solution myself.)
Robo-Fish:
You want a string with no red, and the only way to get there is to have it look at every dot. Set up a conveyor belt with a branch whose directions are, "If you see a red, dump the string. If you see a blue, send the string backwards and keep looking. If you see nothing, it means the whole string has been checked and there weren't any reds, so accept it."
Robo-Bugs:
Your first branch should divide strings into two categories: strings that start with red, and strings that start with blue. Set up a Figure-8 loop of sorts, made of two branches, one of which rejects reds but keeps blues in the loop, and the other of which rejects blues but keeps reds in the loop. Set up your initial branch so that strings starting with red are checked on the reject-red branch first, and strings starting with blue are checked on the reject-blue branch first. Achieving a null string means the robot passes, so send the branches' nulls to the finish.
Robo-Cats:
Here's the two best hints I can give you:
1. If, on any of your splits, you see a red, send the string back to the beginning.
2. The solution I found has a flaw: it will accept strings that end in even numbers of blue, but erroneously reject strings that end in odd numbers of blue above 2. The only passing test cases presented end in 2 or 4 blue dots, so mine works for the game's sake, but I don't have good advice on a flawless solution.
RC Cars:
Don't make this harder than it is. Make a branch to check the first symbol. Write that symbol. Send it out the door.
Robocars:
Set up a conveyor belt leading to a branch: blue dots get a green punch and get sent back to the beginning; red dots get a yellow punch and get sent back to the beginning; nulls mean that only green and yellow remains, so send it out the door.
Robostilts:
Punch a green dot first thing. Set a splitter make two little loops: if you see a blue, punch a blue; see a red, punch a red; in both cases, send it back to the same branch after punching the dot. Eventually, it'll get back to the green dot and register a null; give it a yellow and send it on its way.
Robobears:
Divide the board into two big halves: Starts with Red, Starts with Blue. On each half, set up loops: if you see the starting color, go to a branch that sends nulls to the finish. If you see the opposite color, go to a branch that sends nulls to the trash. On both of those "deciding" branches, if any other color is seen, go back a branch and keep checking. Be sure to account for one-dot strings.
Milidogs:
Odd numbers will always end in a blue dot, right? So make a machine that only accepts strings ending in a blue dot. If you solved RoboCats, you can solve this.
Androids, hints courtesy insanity and Sam Dulmage:
insanity's explanation:
You should make a cycle which
process two bits at a time:
When they are different, cycle back to the same cycle.
When they are the same colour,
Write a bit for the corresponding green/yellow colour.
When no blues or reds are left, cycle to the green-yellow cycle and vice versa.
Sam Dulmage's explanation:
Go through the whole stack and remove one blue and one red. If there isn't at least one of each, kick it to the floor. Repeat until all gone.
In other words: Is it blue? If blue, go through the stack replacing every other blue with a green until you hit a red. You've now stripped out one of each. Now go through the rest of the stack replacing blues with greens and greens with yellows. Great. Now you've got a green/yellow version of the original, minus one matched pair...
Roborockets:
First off, mark the end of your string with a green dot. Then build a bizarro-world version of Robostilts: see a red, punch a blue. Loop the string through this branch until it sees null (which is actually the green, of course), then send it through one last green/yellow branch to strip off the green dot and send it out the door.
Roboplanes:
Don't make this harder than it is: you should only need to place seven tiles to complete this, and two of them are only conveyor belts to reach across the board. Mark the end of the string with a green, then make a branch that punches blue when it sees blue, and just conveyors back to the branch when it sees red. Once the red/blue branch sees the green as a null, send it to a yellow/green branch to ditch the green dot and send it off.
Robomecha:
Think of this in three tasks, that must be accomplished in order:
1. Figure out the last color.
2. Stamp that color.
3. Stamp the rest of the string behind it, but without stamping the last color a second time at the end.
First of all, mark a green dot so you know where the string ends. Then, send the string through a red/blue branch that will divide your workspace into two halves. Each side of the branch should re-stamp the dot removed, then check for the green dot. If it doesn't see the green dot, send it back to the original branch to try again. If it does see the green dot, hooray! It's just finished the string! Mark that spot with a yellow dot, then stamp the same red/blue color it just stamped a second time--after all, that was the last color, so now you're stamping it as the first color.
Now, onto step 3: rewriting the string with the last color removed. Make a red/blue branch similar to the original one, except this time, check for the yellow dot before re-stamping the dot removed by the branch. When it sees yellow, follow the yellow dot road (sorry) to the finish.
Soldiers:
This one is really most beautiful if you do the math. This is the 8x multiplication table, in binary:
1 x8 = 1000
10 x8 = 10000
11 x8 = 11000
100 x8 = 100000
...and so forth. You see the pattern, right? Isn't that cool?
Oh fine. Anything in binary, multiplied by eight, simply adds three zeros to the end. And three reds and send it out the door.
Robotanks:
Step 1: Set up a loop to strip off any leading reds. They're meaningless; the number 00001 is the same as just 1. Once it hits a blue, proceed.
Step 2: Anything in binary that is greater than 15 will necessarily have five dots. We don't care what those dots are, since we already made sure that the first one is a blue. Set up branches that allow anything non-null to proceed, and anything null to get dumped, until five dots have been processed. (Don't forget: you already stripped off one blue dot when you were checking for leading reds.) After your branches have seen five dots, send them home--you don't even need to look at the rest of the string to see whether there are more dots left.
Robospies (elegant solution courtesy buttons):
Like in Robotanks, strip off any leading reds first.
Like Soldiers, this puzzle is elegant once you look at the math. This is the 4^ table in decimal:
4^1 = 4
4^2 = 16
4^3 = 64
4^4 = 256
4^5 = 1024
And here it is in binary:
4^1 = 100
4^2 = 10000
4^3 = 1000000
4^4 = 100000000
4^5 = 10000000000
See the pattern? A one, followed by an even number of zeros. Isn't binary cool? If this isn't enough of a hint:
The rules you need to set up are:
Once you see that first blue, there cannot be any others. See a second blue, dump the string. Also, there must be an even number of reds, so if you see a red, immediately check for a second red. If there's not one, dump it.
Anything that passes these two rules passes.
I'm not able to speak to how to solve the remaining puzzles--I'm stuck on them too. :-)
Posted by: scottique | May 21, 2010 3:42 PM
Ok, I thought it was about time I posted some more of my solutions. With these I've tried to keep the number of parts as small as possible, rather than go for fastest time.
My solutions should work for all valid inputs but if they contain bugs, or you have more efficient solutions, then please post a response.
The solutions that are missing from the list are ones where I couldn't improve on the versions already posted by others.
Each level has the time and part count given as well as the full solution.
Androids
(0:38, 12)
?lvl=17&code=c12:4f3;c12:10f3;i12:7f5;p12:8f3;c12:9f3;c12:5f3;g12:6f3;r10:7f2;q11:6f3;p11:7f1;p11:8f4;b11:9f1;
Robotank
(0:39, 28)
?lvl=15&code=c13:3f0;p12:3f5;c10:4f2;c11:4f3;c12:5f3;i11:3f1;c10:2f2;c11:2f3;i11:5f5;c10:5f2;c10:6f1;c12:6f2;i13:6f7;c14:5f0;c13:5f3;c13:7f3;c14:7f0;i13:8f1;c14:9f1;c14:8f0;c12:8f3;c12:9f3;c12:10f3;c12:11f3;p14:6f2;p10:3f4;p11:6f3;p13:9f7;
Robo-children
(2:06, 22)
?lvl=18&code=c12:11f3;g12:3f3;c12:4f3;p12:5f7;b13:5f0;g12:6f3;c10:4f2;c11:4f2;q12:7f7;i11:7f3;p12:9f3;c12:10f3;p11:9f4;b11:10f1;p13:9f6;r13:10f1;c13:8f0;i12:8f6;r10:5f1;i11:5f2;c11:8f1;c11:6f1;
Police
(2:53, 39)
?lvl=19&code=q11:5f5;r11:6f2;r11:11f2;g12:5f3;p12:6f7;y12:10f3;p12:11f7;q12:12f6;b13:6f0;b13:11f0;p12:3f3;b11:3f2;y12:4f3;r13:3f0;y12:2f3;q12:7f4;y11:7f0;q8:6f6;p8:7f0;q8:8f2;b9:6f3;c9:7f0;r9:8f1;i10:7f2;y8:5f1;c8:4f2;c9:4f2;y8:9f2;r10:6f1;c9:9f2;c10:9f1;c10:8f1;b10:4f3;p10:5f6;r11:8f1;p12:8f7;c13:7f0;c12:9f3;b13:8f1;
Teachers:
(1:01, 22)
?lvl=21&code=c12:9f3;c12:10f3;c12:11f3;c12:12f3;p12:8f7;c12:2f3;c12:3f3;p14:8f2;c13:8f2;b14:9f1;g12:5f3;c12:6f3;c12:7f3;c13:5f0;r13:7f2;c14:5f0;p14:7f1;q15:5f1;p15:6f1;c15:7f1;b16:6f0;c12:4f3;
Officers
(2;13, 27)
?lvl=13&code=c12:2f3;c12:6f3;p12:7f7;q11:7f5;r11:6f2;q13:7f1;b13:6f0;y14:7f1;b10:7f3;b13:8f3;c12:10f3;c12:11f3;b14:6f1;p13:9f4;r13:10f1;p14:5f4;q13:5f1;y12:4f3;g12:5f3;c12:3f3;c12:12f3;q12:9f0;q12:8f7;c11:9f2;p10:8f7;r11:8f0;c10:9f2;
Judiciary
(3:21, 62)
?lvl=20&code=p9:10f1;g9:11f1;c9:12f1;r10:9f3;p10:10f2;b10:11f1;q10:12f7;q11:10f7;b11:11f3;p11:12f0;r11:13f1;c12:9f3;y12:10f3;c12:11f3;p12:12f3;q13:10f3;r13:11f3;p13:12f2;b13:13f1;b14:9f3;p14:10f0;r14:11f1;q14:12f3;p15:10f1;g15:11f1;c15:12f1;y12:2f3;q7:6f6;p7:7f0;q7:8f2;y7:9f2;b8:6f3;c8:7f0;r8:8f1;c8:9f2;b9:4f3;p9:5f6;r9:6f1;i9:7f2;c9:8f1;c9:9f1;q10:5f5;r10:6f2;y10:7f0;r10:8f1;y11:4f3;g11:5f3;p11:6f7;q11:7f4;p11:8f7;q11:9f1;b12:6f0;c12:7f0;p12:3f3;b11:3f2;r13:3f0;c12:4f0;y7:5f2;b8:5f2;b12:8f2;q13:8f1;c13:7f0;
Politicians
(0:39, 30)
?lvl=22&code=c12:10f3;c12:11f3;c12:12f3;p12:8f7;c12:9f3;i13:8f3;p14:8f6;r10:7f2;p11:7f1;p11:8f0;r11:9f1;i12:7f5;c12:2f3;p14:9f3;r15:9f0;c13:9f1;c13:7f1;p14:7f1;b15:7f0;r11:4f3;c11:5f2;g12:3f3;i12:4f1;i12:5f5;q13:3f1;p13:4f1;c13:5f1;b14:4f0;c12:6f3;c13:6f1;
Academics
(3:20, 31)
?lvl=23&code=y12:2f3;b10:5f1;y10:6f1;q10:7f0;b11:6f3;p11:7f0;r11:8f1;b11:10f2;c12:3f3;c12:4f3;c12:5f3;g12:6f3;p12:7f3;c12:8f3;q12:9f2;p12:10f3;q12:11f0;b13:6f3;p13:7f6;r13:8f1;r13:10f0;r14:5f1;y14:6f1;q14:7f6;c12:12f3;p10:4f2;r10:3f3;q11:4f5;q13:4f1;p14:4f0;b14:3f3;
Generals
(1:02, 23)
?lvl=14&code=y12:2f3;g12:3f3;p12:5f3;c12:4f3;q11:5f5;b11:4f2;q13:5f1;r13:4f0;r10:5f3;c12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c12:11f3;q12:12f0;y14:5f1;r14:4f1;p14:3f0;q13:3f1;p10:6f6;b10:7f1;c11:6f2;
Ophanim
(0:30, 58)
?lvl=30&code=q11:12f4;q11:13f3;c12:6f2;r12:7f1;c12:8f3;c12:9f3;c12:10f3;c12:11f3;i12:12f1;c13:6f2;p13:7f1;q13:8f1;c13:11f3;p13:12f0;c13:13f1;y14:6f2;b14:7f1;c14:8f0;r14:9f1;q14:10f6;g14:11f1;c14:12f0;b15:5f3;p15:6f6;r15:7f1;c15:8f0;r15:9f3;p15:10f4;b15:11f1;p15:12f7;q16:6f6;g16:7f3;i16:8f6;c16:9f3;p16:10f7;q16:11f0;p16:12f3;c17:8f0;b17:9f3;p17:10f6;r17:11f1;p17:12f7;c18:8f0;b18:9f1;q18:10f0;g18:11f1;p11:6f7;c11:7f3;c11:8f2;c10:6f2;g11:5f3;q11:4f6;p11:3f7;b12:3f0;r10:3f2;g11:2f3;p12:2f5;c13:2f0;
Metatron
(1:12, 70)
?lvl=31&code=b11:6f2;q11:7f1;c12:6f3;p12:7f3;r13:6f0;q13:7f5;g14:7f2;c15:7f2;q16:6f4;q16:8f0;c12:5f3;g12:2f3;g12:4f3;q11:4f3;q13:4f7;q7:6f2;q7:8f6;c8:7f0;p16:7f6;r15:8f1;b15:6f3;g16:5f1;b14:3f3;p14:4f0;r14:5f1;c17:7f3;c17:8f0;r12:3f3;c16:4f0;g9:7f0;i10:7f2;c10:4f2;c14:8f1;p15:4f4;b15:5f0;r15:3f0;g16:9f0;i14:9f2;i12:9f6;p7:7f4;c6:7f1;c6:6f2;r8:6f3;b8:8f1;g7:5f1;c7:4f2;p8:4f6;r8:5f2;b8:3f2;p9:4f2;b9:5f1;g7:9f2;c8:9f2;b9:9f2;c10:5f1;p10:9f5;r11:9f0;r9:3f3;q12:8f6;q12:10f6;p12:11f7;r11:11f2;b13:11f0;q12:12f6;c13:9f0;c15:9f0;c10:8f1;c10:6f1;c13:10f2;c14:10f1;
Posted by: Automaton | May 28, 2010 10:35 PM