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.
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.
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...
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.
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 :)
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%).
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.
> "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. :-)
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.
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.
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.
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.
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.
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.
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.
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 :)
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.
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.
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.
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.
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]
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.
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.
As far as programming puzzle games go, Zachtronic basically has the market cornered.
[0] http://snakebird.noumenongames.com/ [1] http://www.stephenssausageroll.com/