TIS-100

TIS-100

View Stats:
Reaction of professional programmers?
As a programmer, I'm not sure if I enjoy this game or not.

With the pride of an engineer, I feel like I have to find the FASTEST possible code for every puzzle.

But I find that while you can beat most people's machines with good, parallel, pipelined designs, the very FASTEST designs have to be heavily cludged and tweaked and built around the flaws in the board layout.

Doing that feels too much like work, looks like it would take inordinately long to get working and the results are ugly.

Maybe the problem is that if I'm gonna work that hard, I want a useful program as a result, so I'm trying to play this as a casual game... but my engineer's pride keeps getting in the way.

What do you all think?
< >
Showing 1-15 of 22 comments
__m__Yn_F_onY__d Nov 23, 2015 @ 2:15am 
As a gamer, in addition to being a programmer, I'm very comfortable with just doing what I find fun. Optimization is fun, but optimizing as much as possible may not be. I'm okay with just going up to the point where I'm still enjoying myself, then I usually look over the puzzles again later when it suits my fancy.
Well it occurs to me that to a non-programmer, just getting the algorithms is hard and interesting.

Since I'm so familiar with that, this is more like a mindless casual game to me but not at the point where I'm trying to get the very best score possible.

So the curve is different.

The idea of lots of parallel computers is interesting. I would love to play with a real machine with some massive array of cells. If someone sold a card with thousands of locally connected processors I'd buy it just to play with it. The stream processors on GPUs have a different architecture where they share some random access memory.

There are some things about the timing in this puzzle that's still a mystery. I switched two instructions in a machine and the resulting time difference was something like 100 cycles.
Also, it's been mentioned that the transputer had a grid like this where processors connected in four directions.

The problem with it, was that back then a processor with its capabilities was really expensive so the idea that a computer could be a componant like a transistor and you could just plug a bunch together died on the fact that it would just be way too expensive. And since it was so expensive, you'd just buy a processor with more bang for the buck and never go near it...
Skyfather Nov 28, 2015 @ 9:01am 
I find myself far less concerned about optimisation than I usually do with Zackatronic's games. I find that I value writing readable, maintainable code far more than minimising my cycles (which whilst a metric is not a requirement). Having spent a lot of time sifting through other peoples poorly documented software, I feel perfectly OK about this.
Pinky Dec 27, 2015 @ 9:29am 
I'm not sure what to think.

After 18 hours I still confuse src and dest operands here. Why did it have to be backwards, like the dreaded AT&T syntax? Why? :/

Yesterday I raged because I needed the 16th line of code in a node for a solution. It was just frustrating to have to break it apart into two nodes and lose speed along the way.

I still miss CMP and a second register. Okay, maybe they would make things too easy, but still... You know what to do and how to do it, but you have to go through hell to make it work in TIS-100 :)

I'll be finishing all levels, settling for adding to the histogram peak; I have several levels slightly lower and one higher, but that's fine with me.
kray28 Dec 29, 2015 @ 3:28pm 
Programmer time > Machine time.
Xeglolz Dec 29, 2015 @ 5:32pm 
Originally posted by Pinky:
I'm not sure what to think.

After 18 hours I still confuse src and dest operands here.

They should add a new mode, where SRC and DEST are compatiple to actual assembler syntax.
MOV DEST, SRC. And all the ; are missing.
etropic Dec 30, 2015 @ 8:07pm 
I find your point sort of curious.

Maybe your programming experience is limited to a single or multiple identical platforms? In my experience, I've had to work on many different systems that have all had their own pros and cons or limitations. Some systems make particular problems easier to solve and some stand in their own way. If I found a TIS-100 on the shelf at goodwill I'd pick it up and tear it apart and see what it could do, maybe hook it up to a sequencer as well! Its limitations would be the exact thing that makes it a unique piece of beauty. And as a programmer, I love that!
Last edited by etropic; Dec 30, 2015 @ 8:07pm
Johnny Jan 2, 2016 @ 7:47am 
I hate the fact that they adopted intel mnemonics but messed up the parameters order. Also after a while of tinkering with it, it became apparent that controlling the difficulty by viciously slashing the capabilities of each node (logical operations? flags? registerS?) is the wrong way to sell the parallel aspect of this concept or ASM programming in general. It’s a fun, but ultimately limited exercise that didn’t encourage me to better a solution once the expected results were met.
Originally posted by Johnny:
I hate the fact that they adopted intel mnemonics but messed up the parameters order. Also after a while of tinkering with it, it became apparent that controlling the difficulty by viciously slashing the capabilities of each node (logical operations? flags? registerS?) is the wrong way to sell the parallel aspect of this concept or ASM programming in general. It’s a fun, but ultimately limited exercise that didn’t encourage me to better a solution once the expected results were met.
If you think this is a bad way to teach ASM, play Human Resource Machine, it's so much worse. Actually don't, just watch a playthrough T_T
Mahmuri Amai Jan 3, 2016 @ 6:31am 
well, my friend is a programmer and he had so much fun solving puzzles in this game...
isaac Jan 3, 2016 @ 7:39am 
I have written code in many languages, including a full playable game in ASM, and I am enjoying TIS-100 quite a bit, but I can sympathize a bit with your opinion.

Coming up with the first naive solution is fun, and thinking of ways to speed things up is fun too, but when thinking about more elaborate ways to speed things up, it always seems daunting to write the code and always have suspicions that in the end it won't necessarily be faster. Take pride on your smart design, I guess?
Nock Jan 5, 2016 @ 6:49am 
As a mostly C++ programmer who didn't learn much assembly (so I have no preconceived notion of how the syntax should look) I'm enjoying playing this with/against my programmer buddies seeing who can get the best result. I'm only about a quarter of the way through the game, but I don't move on from a task until I've reached the best outcome(s) possible. I like how this game shows your friend's times and makes programming a bit more social. :2015cookie:
etropic Jan 5, 2016 @ 9:43am 
Originally posted by Nock:
As a mostly C++ programmer who didn't learn much assembly (so I have no preconceived notion of how the syntax should look) I'm enjoying playing this with/against my programmer buddies seeing who can get the best result. I'm only about a quarter of the way through the game, but I don't move on from a task until I've reached the best outcome(s) possible. I like how this game shows your friend's times and makes programming a bit more social. :2015cookie:
Me too... notice that those best scores are not necessarily in the same run though, so when you see 200, 4, 12 that might have been a 200 from a 200 10, 15!
Pinky Jan 5, 2016 @ 10:10am 
Originally posted by Nock:
As a mostly C++ programmer who didn't learn much assembly (so I have no preconceived notion of how the syntax should look)
Consider the following:

int acc;
acc = 2; // mov acc, 2
2 = acc; // mov 2, acc

There's only one proper way :P
< >
Showing 1-15 of 22 comments
Per page: 1530 50