COMPLETE: TIS-100
May. 13th, 2017 10:18 amTIS-100 is a puzzle game by Zachtronics. Much like Qrostar, that name alone should more or less tell you what you need to know. In this case, (with the apparent exception that they also made Ironclad Tactics for some reason?) "It is a Zachtronics game" means puzzle games based around outputting the correct solution to the goal by manipulating abstracted variations of worker nodes with instructions that... it's programming. The word we're looking for is "Programming." Here's how this game's nodes and instructions work, now write a program that sorts all the gems by color and puts the red ones on the right.
Zachtronics games tend to start with exceedingly simple and direct "pick up the thing from this square, move to the right, and put it down on that one" tasks, and then escalate to convoluted nightmare code like this. They also tend to have somewhat Lovecraftian stories surrounding these puzzles, like the player character is working on some sort of Lament Configuration and either their sanity or the actual world or both descend to eldritch horror as... well, as your code does. But hey, at least you can look at your cycle count/instructions and space used statistics to compare how optimized your solution is versus those of your friends and the Steam community as a whole!

TIS-100 uses the abstraction of an old-styled computer with a sort of variant of assembly language, meaning either Zachtronics just gave up even trying to hide that they're making you do their CS 222 homework or you are now somehow playing a game about coding dressed up as a game about coding. The presentation was fairly minimalist by intention as a direct result--ASCII graphics, no music--but it worked well for the general mood.
I confess that I just gave up and used a walkthrough for one particular puzzle: Sequence Sorter, the penultimate one. Now, bear in mind that I've beaten every Qrostar game, beaten every North American Lolo game and even one of the Famicom ones, hundred-percented the first two Layton games... unless it's a genre that I just don't play at all in the first place (Myst-likes, 3D physics stuff, etc.) I tend not to want to admit that any puzzle game is ever just too much puzzle for me. But making an honest to God sorting algorithm in assembly is not a puzzle game. That's an actual programming task for highly-compensated professional software engineers. In fact, I have a friend who is a highly-compensated professional software engineer, with a technical degree and a Project Lead title and everything, and even he said that's not normally something people do in assembly and, you know, maybe just go ahead and walkthrough that one. I got all the others, though, including the actual last level and even the secret hidden puzzle (the ILLEGAL_EAGLE Achievement) to make up for it. So I think that counts.
I'm not doing the user-submitted bonus content, though. I had a peek at that tab and the very first puzzle involves taking two pre-sorted input streams, merging them, sorting that, and outputting the sorted megastream.
You know what? No.
Still, this was fun, and like any Zachtronics game, it gives you a strange sense of pride and an urge to show off your solution compared to everyone else's. If coding in the arrival of the Ancient Ones sounds like fun to you... well, honestly, play SpaceChem. But if you've already played SpaceChem and loved it and just want more, you could do a lot worse in the programming-puzzle genre than this one!
Zachtronics games tend to start with exceedingly simple and direct "pick up the thing from this square, move to the right, and put it down on that one" tasks, and then escalate to convoluted nightmare code like this. They also tend to have somewhat Lovecraftian stories surrounding these puzzles, like the player character is working on some sort of Lament Configuration and either their sanity or the actual world or both descend to eldritch horror as... well, as your code does. But hey, at least you can look at your cycle count/instructions and space used statistics to compare how optimized your solution is versus those of your friends and the Steam community as a whole!

TIS-100 uses the abstraction of an old-styled computer with a sort of variant of assembly language, meaning either Zachtronics just gave up even trying to hide that they're making you do their CS 222 homework or you are now somehow playing a game about coding dressed up as a game about coding. The presentation was fairly minimalist by intention as a direct result--ASCII graphics, no music--but it worked well for the general mood.
I confess that I just gave up and used a walkthrough for one particular puzzle: Sequence Sorter, the penultimate one. Now, bear in mind that I've beaten every Qrostar game, beaten every North American Lolo game and even one of the Famicom ones, hundred-percented the first two Layton games... unless it's a genre that I just don't play at all in the first place (Myst-likes, 3D physics stuff, etc.) I tend not to want to admit that any puzzle game is ever just too much puzzle for me. But making an honest to God sorting algorithm in assembly is not a puzzle game. That's an actual programming task for highly-compensated professional software engineers. In fact, I have a friend who is a highly-compensated professional software engineer, with a technical degree and a Project Lead title and everything, and even he said that's not normally something people do in assembly and, you know, maybe just go ahead and walkthrough that one. I got all the others, though, including the actual last level and even the secret hidden puzzle (the ILLEGAL_EAGLE Achievement) to make up for it. So I think that counts.
I'm not doing the user-submitted bonus content, though. I had a peek at that tab and the very first puzzle involves taking two pre-sorted input streams, merging them, sorting that, and outputting the sorted megastream.
You know what? No.
Still, this was fun, and like any Zachtronics game, it gives you a strange sense of pride and an urge to show off your solution compared to everyone else's. If coding in the arrival of the Ancient Ones sounds like fun to you... well, honestly, play SpaceChem. But if you've already played SpaceChem and loved it and just want more, you could do a lot worse in the programming-puzzle genre than this one!
no subject
Date: 2017-05-13 05:11 pm (UTC)I feel like any given Zachtronics game counts as like ten "complete" tokens.
G... good job. Well done. Very well done.
Oh my god.
no subject
Date: 2017-05-13 05:18 pm (UTC)There will probably be a "hardest puzzler" category and this means this year will be pitting a Zachtronics game against a Qrostar game.
I have no idea how to resolve this. That's like setting two "let's see how hard I can cheat and godmode everything" cheap invincible MUGEN AIs against each other and just the entire game crashes.
no subject
Date: 2017-05-13 09:35 pm (UTC)Honestly, though, I felt accomplished to get through most of Human Resource Machine without a guide, so looking at Zachtronics games just makes me go crosseyed and the smoke starts pouring from my ears.
no subject
Date: 2017-05-13 10:03 pm (UTC)And believe me, this game (as well as SpaceChem) caused my brain to shut down on more than one occasion!
no subject
Date: 2017-05-13 10:07 pm (UTC)SpaceChem terrifies me, though, so it's good(?) to know that said fears aren't unfounded.
no subject
Date: 2017-05-13 10:15 pm (UTC)SpaceChem has an interesting (and very well done) frog-in-boiling-water effect, where it's actually very approachable at first, then by around the 80% mark you hit the point where you're stuck on a single level for weeks, finally have an epiphany and with enough rounds of editing and debugging and maybe a little luck manage to get the unholy pile of code to work, and then the next level loads and you're like "... Oh what the fuck. No. There's no... NO. There's no way." Until you do that one too, and so on. But somehow, by the time it gets to that point, you sort of lost track of where and how it became this. The transition from the shallow to deep end is gradual enough that I was definitely hooked by the time it got hard and... used to it enough, I guess, that I could persevere afterward, but now I look back on some solutions I did like "I have no idea what any of this means or what it's doing or how it works and I ostensibly made this."
no subject
Date: 2017-12-07 08:04 pm (UTC)NOW WHY WOULD YOU EVER DO A THING LIKE THAT
no subject
Date: 2020-05-25 07:56 am (UTC)what have we done
no subject
Date: 2017-05-13 06:27 pm (UTC)Zachtronics' games really do have a wonderful sense of achievement against the insurmountable, and I loved comparing our solutions when we were playing along at roughly the same rate. But it is extremely involved and low-level - I don't think that I could go back to many of my solutions now and think through how they worked - very much like regex, which was invented when a computer scientist fell asleep on his keyboard, rolled his head around a bit, woke up and said "That's exactly what a language should look like!" TIS-100 is a write-only language and you can't understand it without starting from scratch each time :)
Sorting two streams doesn't sound too bad as long as they come pre-sorted - it would be a matter of reading them in repeatedly and then sending the lower value out to the output. But now I'm tempted to start it up again and I have too much else to do.
no subject
Date: 2017-05-13 06:53 pm (UTC)Your solution would work if the pre-sorted streams were both 1) exactly the same length and 2) a sort of odds-and-evens like configuration where all you have to do is output either X1 or Y1 first before moving on to X2 vs Y2 and repeating, and never have to worry about a properly sorted order looking more like [X1, Y1, Y2, Y3, X2] or something. Unfortunately, neither is the case! The first of several input streams in the first test (the one you can see while you're working on the program) is [20, 23, 99] versus [17, 52, 65, 72, 78, 80, 83, 89], with an expected output of [17, 20, 23, 52, 65, 72, 78, 80, 83, 89, 99].
no subject
Date: 2017-05-13 07:23 pm (UTC)I had forgotten just how restrictive TIS-100 was and how you can't really compare a number to another number without passing it to another node and then passing a result back... it looks like I have a few that I skipped over as well:
Signal Pattern Detector - find 0,0,0... seems simple enough?
Signal Window Filter - Agh
Sequence Indexer - Output the value at X in the given sequence... can only read once so have to store it in the stack somehow
Sequence Sorter - Sort a sequence in-place. Oh god
I did finish the last one, though, and saw... something happen at the end. It hasn't repeated itself. I might have dreamt it.
no subject
Date: 2017-05-13 07:37 pm (UTC)Signal Window Filter: Like I said.
Sequence Indexer: The first idea I had for how to go about this one ended up being the correct one, but the issue I ran into was that the input versus the number it actually wanted was backwards (if it expects the 0th number in the sequence then I have to move nine spaces to get it and vice versa) because of how stacks work. There are several ways around this--flip the stack, have the node count down instead of up or count up from a negative number or etc. versus whether it's checking for greater than zero or less than zero, etc... there are several ways to make that work, and there has to be an overall configuration less stupid than the one I chose, but mine works and I'm proud of it.
Sequence Sorter: Like I said.
That sequence at the end of the last puzzle: Yes, that's the... that's the game's ending, I suppose. It's a Zachtronics game. You just successfully opened the portal to Hell, or something.
no subject
Date: 2017-05-14 10:46 am (UTC)That was a 300-level Computer Programming course at college.
no subject
Date: 2017-05-15 12:25 am (UTC)no subject
Date: 2017-05-16 05:02 am (UTC)Ha-HA! Now maybe you won't underestimate your own intelligence so much!
no subject
Date: 2017-05-17 03:55 am (UTC)