Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
TIS-100 – Tessellated Intelligence System (zachtronics.com)
195 points by doener on Oct 8, 2016 | hide | past | favorite | 82 comments


For really good non-programming puzzle games, I'd recommend Snakebird[0] and Stephen's Sausage Roll[1]. Try out Snakebird first, it's cheaper and works great on mobile devices. Don't let the cute art fool you, it's a monstrous game. If you get through most of Snakebird and still don't hate yourself, look into SSR. It's much more hardcore, but has some mind blowing puzzles.

As far as programming puzzle games go, Zachtronic basically has the market cornered.

[0] http://snakebird.noumenongames.com/ [1] http://www.stephenssausageroll.com/


> As far as programming puzzle games go, Zachtronic basically has the market cornered.

I wouldn't say that: There is at least

- Human Resource Machine

and if you look a little bit more around (programming games that are not programming puzzle games in the purest sense) there is

- Else Heart.Break()

- Glitchspace

- Hack 'n' Slash

There also seem to be (I don't know this game, but it seems plausible to me that they fit the list)

- Cyber Sentinel


It's true, but all of those games are... well...

Zachtronics doesn't pull any punches. Their games are amazing. Even the deceptively simple Infinifactory is actually full of amazing and beautiful opportunities for elegant programming concepts (the first time you realize, "I can... I can make a clock with controllably variable periodicity!? What?" And TIS-100 resembles programming in a stripped down Erlang-like mode.

HRM is a great starter into the Genre, it's sure. But Spacechem is on a totally different level of complexity and beauty and depth.


What I should have said is that Zachtronics has the market cornered on programming puzzle games for programmers. I could suggest Human Resource Machine to someone who has never programmed before, but I would never do that with TIS-100.

Making a TIS emulator in Elixir sounds like a fun and useless project.


Somebody's already done one in C: https://eviltrout.com/2015/06/29/an-emulator-for-tis-100.htm...

And according to Zach, the intended market wasn't just programmers (which is why he explicitly killed bit manipulation, and the largest number a TIS-100 register can hold isn't a power of two), and I've heard tales of non-programmers enjoying it.

Then again, if you like Zachtronics games, especially TIS-100, then have I got a hobby for you...


If TIS-100 is erlang, than Spacechem is C. Enjoy the fun of continually worrying that you forgot a sync/mutex.


Not to mention the game that inspired Minecraft.


Along with Dwarf Fortress


Do you think those games can make you better at some kinds of programming?


Of course. They're effectively excercises for the parts of your brain that you use most while programming.


The model of TIS-100 is more like the blocking channels in Go.


Nah, it's really not! I think the author even mentioned the actor model in an interview about it. And Go certainly has never desired to be associated as "the actor model." It lacks many of the tools required.


A good friend of mine is totally into hackmud: https://www.hackmud.com

It looked neat but I have the same problem as with music games like Guitar Hero etc - I'd rather continue programming on one of my many pet projects or practice playing actual guitar...

I may be missing out though - I wouldn't know because I actually never invested more than 30 minutes in any of those games (also bought TIS-100 last year, never actually played it once).

Incidentally - are there any music games (rhythm, composition, etc) that are similarly "hardcore" as a TIS-100 that anyone would recommend?

I finally might be giving TIS-100 another shot as it is Sunday and all :)


There's Rocksmith. It's essentially Guitar Hero just with a real guitar. So you do actually learn to play the instrument.


Yep. My favorite games are pretty much: anything by Zachtronics, Rocksmith 2014.

Rocksmith does have its annoyances at times, though (the note recognition isn't perfect, so if you don't play absolutely perfectly it's going to miss notes occasionally, making the more difficult songs very hard to 100%).


Rocksmith looks really cool, I will check it out - thanks a lot for sharing!


Just found this article by coincidence, linking here for future reference:

https://www.rockpapershotgun.com/2016/10/03/can-video-games-...


Else Heart.Break() has definite aesthetic charm, but the programming required (as far as I played, at least) is pretty shallow- geared towards clever highschoolers, I suspect.

A collaboration between them and Zachtronics would be lovely.


Grade or middle school, really. "Clever highschoolers" are writing their own bare-metal OSes these days.


And us stupid highschoolers are writing IF engines in Scheme.

And yes, I did write one. It totally sucked, but it did work, mostly.


Heck, if you're doing anything substantial with Scheme in high school then you're on a great track.


Now if it was substantial, it wouldn't suck so much, now would it?


> "Clever highschoolers" are writing their own bare-metal OSes these days.

Perhaps you are even right since advanced Arduino programming (which many "Clever highschoolers" should be able to do) is in some sense like writing a really simple RTOS. :-)


Or, well, there are the highschoolers who are actually writing OSes - https://news.ycombinator.com/item?id=10045254 :P


And of course, let us not forget that a clever highschooler wrote Babel.


Snakebird was excellent. Some of the puzzles there were quite fiendish and many had to be put down and and left to percolate in my brain. At least once I woke up with a solution, and I solved several in the shower. I managed to finish all of the normal puzzles, but haven't made much headway on the cloud puzzles.



I'd say Quadrilateral Cowboy is a notable exception.

http://blendogames.com/qc/


+1 for Sausage Roll


snakebird is tough!


It reminds me of DCPU-16 that was supposed to be a part of the cancelled 0x10c game[0]. The specs[1] of the cpu and other hardware where published and the community created emulators, tools and programs around it [2][3]. Even custom, virtual hardware.

It wasn't clear what the DCPU-16 was going to be used for. But the community assumed it will handle navigation, communication, weaponary and internal spaceship systems.

[0] https://www.youtube.com/watch?v=iLt4VVEJ9Kk

[1] https://github.com/lucaspiller/dcpu-specifications

[2] https://www.youtube.com/watch?v=UqefqWol1Cw

[3] http://www.0x10cforum.com/


IIRC, that use was confirmed. There was also a minecraft mod that allowed you to create computers with emulated 6502s as processors. It ran forth, but you could also customize the OS.

Shame it died, really.


I played that mod. It made me really want Forth to have been part of the college education I had.


Ah yes, Red Power. The developer, Eloraam has been working on making a standalone game based on it.

https://twitter.com/TheRealEloraam/status/767550784464625664

Also, if you like TIS-100 and Minecraft, check out the TIS-3D mod! It's basically TIS-100 in Minecraft. Build your own modular computers.

https://mods.curse.com/mc-mods/minecraft/238603-tis-3d

https://www.youtube.com/watch?v=CfJs2Xk8SdM


As I said, knowing Eloraam, it'll be done by 2029.

Mod looks cool, though.


Eloraam (the mod author) is working on a full game based on the mod. She claims to have started work on it, so knowing her it will be done by 2029.


It's certainly been started. She posts screenshots on Twitter every couple weeks with progress updates.

https://twitter.com/therealeloraam


I bought their newer game, Shenzhen I/O last night and it is very cool. It's still early access but I've been enjoying it. http://store.steampowered.com/app/504210/

Edit: Just realized there's a post about shenzhen too, woops.


For the record, the game is 50% off here (and 10% goes to a charity of your choice): https://www.humblebundle.com/store/tis100


If you loved TIS-100 you will absolutely love its follow up Shenzhen IO to death. Its like TIS-100 (in regards to the "solve problems by programming" part) only this time you also need to create the machine running your programs by taking components and linking them together. And I explicitly say "components" because you not only have microcontrollers, but also memory banks, bridges, screens and the like.

TL;DR: basically Shenzhen is TIS-100++ and its freaking awesome.

Check it out here: http://www.zachtronics.com/shenzhen-io/

The video on that page was entirely made from ingame material, by the way.


I've seen it, it looks great. Do you have any idea how useful it is for actually learning how microcontrollers work?


Not the person you're replying to, but it's a good primer/introduction to toy with. Much of the waveform generation stuff and I/O aligns pretty well with stuff that was taught in school. Granted, it simplifies stuff a bit since it's a game. However, it does bring me back to my microcontroller design classes.


Watching the videos, this really brings how it felt learning to code circa '76-'77... with Atari-2600 style sounds, an assembler (ZOMG), a back story plus achievements! Love it :-)

These kinds of games should be mandatory for CS education. Even better if you could toggle through the entire architecture being simulated, Bus, CPU/ALU, Memory and all.


There are a few differences: TIS explicitly aims away from bit-twiddling, and in fact has no real bits to speak of (the integer range is -99 to 99, IIRC, but it's definitely something along those lines.


Here is another programming game, this one with a nice GUI: http://tomorrowcorporation.com/humanresourcemachine


from the same company!


No, actually.


The most fun I had with a programming contest is the ICFP contest 2007 [0].

[0] http://save-endo.cs.uu.nl

    -=-=-=-=-=-=-=-
    Spoilers ALERT
    -=-=-=-=-=-=-=-
You will be writing an interpreter to write images, then you'll find sound, and you'll find yourself working with an interactive fiction, and...


A fun game I've been playing: http://www.microcorruption.com/

Gotta use those MSP430 assembly skills to bust through digital locks.


You know what's also an open-ended programming game?! Programming.


Limited resources and means, you know, promote creativity. Programming a modern standard computer nowadays is quite available to average Joe and Jane. That's why we have tons of crapware. But, forcing them to program a less common, sophisticated, complicated or limited architecture forces them to adapt and into being more creative. This serious game is quite a good example, and, I suppose that was also the intention behind it.


I prefer actual old hardware for that (60-70-80s), that way the results really give some strange satisfaction. Personal ofcourse.


Actual old hardware has a problem though: might me impossible to find.

For example I live in Brazil, I learned to code trying to port MSX Basic games to a 286 GWBASIC, because I never saw a msx in person.

Also, some other hardware I would love to fool around and never saw one:

C64, Amiga, Sega Saturn, 3DO, PC Engine, non-Intel Mac, a real NES (I owned a clone once), programmable calculators.


MSX's are hard to find in Brazil? I thought it used to be very very popular there. I see many of them here [0] for prices I would definitely pay; here it is very hard to find them for those prices still. I would buy stuff like this [1] or [2] blindly. If you buy it I will pay you more + shipment to me :)

C64s are still ok to get in other countries; MSXs are getting scarce. I managed to collect over 100 of them luckily as it is my favorite computer (nostalgia sure, but I also find it important that young people can see how it used to be).

I have all the computers you name there, several of each; I can trade you for a working Gradient or Hotbit. Or just pay you :)

Personally I like the ZX Spectrum & MSX the best to code on, because I was raised on Z80 assembly. After that the Amiga, but I already find that a bit too advanced; MSX is so limited (a little over 3 megahertz & usually 64-128 kilobytes! of RAM) it really is a game to get things working at some speed. But people are still doing it; for me the highlight is [3] which I find far more impressive than the latest JS-soup framework :)

Then again, this [4] is impressive!

[0] http://lista.mercadolivre.com.br/msx [1] http://produto.mercadolivre.com.br/MLB-791538729-console-msx... [2] http://produto.mercadolivre.com.br/MLB-792461786-msx-expert-... [3] http://www.symbos.de/ [4] http://webmsx.org/


That's what emulation is for! I know VICE in particular is a very accurate C64 emulator.


You know that multiple games can go in different directions with one concept, right?

Sometimes you just want to write asm for an architecture that's far to bizzare to possibly be real. Is that so wrong?


True, but as a game, it's a bit too open-ended for my taste.


One of my all time favorite programming puzzle games is Box-256, which I haven't seen mentioned.

http://box-256.com/


If it weren't for this post, who knows when I would have found out there is an iOS version of this game! Discoverability on the iOS AppStore is really bad.


I'm not seeing it on iPhone. Is it iPad only?


iPad only. It's listed in the App Store as TIS-100P.

US App Store link: https://itunes.apple.com/us/app/tis-100p/id1070879899


Probably my favorite Zachtronics game. Although I haven't had a chance to play IF or SIO yet.


It's actually pretty good! Trapped me for couple hours solving some non trivial puzzles!


Did they just release two games at the same time (along with Shenzhen I/O)? Or did I miss this one earlier?


TIS-100 was released about a year and a half ago.


This is an earlier release


by the same people?

EDIT: NM, yes.... by the same


Love it -- reminds me of a more focused Uplink.


This doesn't remind me of Uplink at all. For one thing, TIS very much focuses on actual programming, even if it is an estoric language for an architecture that could never exist.


> for an architecture that could never exist.

Interestingly, there is a real world equivalent to the TIS architecture: the GA144[1] has lots of memory-constrained Forth cores with software defined I/O between them.

[1] http://www.greenarraychips.com/


Or the Connection Machine, where the individual processors were arranged in a hypercube.


Similar architectures could exist, but the exact one the TIS used? Not in a million years, unless somebody was explictly doing it to recreate the game IRL.


Ok, sure. It's only similar to architectures which have existed. I doubt there have been any serious ones which limited you to a dozen instructions at a time :)

There's nothing in the TIS-100 architecture that is unique or unheard of, just things that are left out of it.


Uplink isn't really about programming at all though.

That said, if you liked Uplink you should try Hacker: Evolution and HackNet.


I've played both TIS-100, and their earlier game, Space Chem. Like Space Chem, which doesn't have a whole lot to do with real chemistry, TIS-100 doesn't have a whole lot to do with programming. They use chemistry and programming as window dressing for what are otherwise pretty uninspiring puzzle games.

To my knowledge, the game that gets closest to real assembly language programming is Core Wars.[1][2]

Also, it's not assembly language, but Screeps[3] uses real Javascript programming, or any language that compiles to Javascript.[4]

[1] - https://en.wikipedia.org/wiki/Corewar

[2] - http://www.corewars.org/

[3] - https://screeps.com/

[4] - https://github.com/jashkenas/coffeescript/wiki/list-of-langu...


I am not sure how you can say these games "don't have a whole lot to do with programming". They are programming.

Maybe you didn't ever have the experience of programming on an 8-bit CPU and don't get the joke? The machines in these games are comically limited, "this is like the cruftiness of an 8-bit CPU but even worse". The funny thing about TIS-100 is that it's a speculative fiction game, postulating an alternate reality -- what if we had gone down the path of multicore CPUs back when they were still super-primitive?


Wait I just realized maybe a lot of kids these days don't know what assembly language is and that's why one might say this "doesn't have a lot to do with programming"???


It seems to me that all programming is, in some sense, about solving puzzles. I used TIS to as a platform to introduce my wife to programming, just to expose her to it and see if it interested her.

She's very much into puzzle solving, so it seemed a natural presentation for her. We shared screens (mac) and played together discussing how we would solve the problem and then work together to implement it.

It was pretty fun. Honestly I wish there were more games that were cooperative and not about shooting things. The only other game we play together, and have for years now, is minecraft.

BTW, braid is still one of my favorites.


I think pmoriarty's point is that, while they are programming games, the programming is abstracted and obfuscated into puzzles in a way that puts it a good distance from how practical programming is done these days. You have to admit that the type of accumulator-based CPU architecture used in these games is archaic and only found in the smallest microcontrollers today. And the multi-core structure and other constraints bears only a passing resemblance to how real systems work.

None of this detracts in the slightest from their being great games but they're no more related to actual programming than Starcraft is related to leading actual troops into battle.


That's nonsense. You are tasked with breaking down the solutions to complicated problems, and getting them to work within the constraints of a limited toolset. Sure, the constraints are a bit whimsical, but if breaking down complex problems (complexity is relative to the capabilities you have) and getting them to to fit your abstraction isn't programming, I don't know what is.


First of all, Zachtronics puzzle games are beyond amazing. I put Infinifactory in my top 3 games of any genre of all time, and I don't know anybody who doesn't love Space Chem. Second, TIS-100 and Shenzhen I/O are assembly language programming, full stop. Surely you realize that x86 is not the only assembly language? There are myriad machines with myriad assembly languages. Just because the machines in TIS-100 and Shenzhen I/O are imaginary doesn't mean they aren't assembly languages.


It may not acurately represent asm, but it does accurately represent programming. The kind of problem solving that Zachtronics games use is the same sort of problem solving that programmers do.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: