Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
TZer0
Jun 22, 2013

:eng101:About the game
TIS-100 is the latest puzzle game from Zachtronics Industries centered around solving tasks with limited resources with Assembly-like instructions.

The game is currently in early access, but it is a functional state, runs on Windows, Linux, and Mac, and is currently being sold for 6.99 USD/4.99 GBP/6.99 Euro. It has been receiving pretty stellar reviews so far (2 negative vs. 257 positive) - most likely because everyone buying the game know exactly what they're getting.

There is also a 14-page reference manual included with the game.

Zachtronics posted:

It’s the assembly language programming game you never asked for!

Gameplay
Each level in the game will present you with a challenge seen in the upper left corner.

The goal is to manipulate the input data in such a way that the listed output data is delivered to the output port. There is no point in trying to cheat here by making a program that outputs the answer as there is a random test after the non-random part.

While the tasks would be easy to complete in most languages, this is not the case with the TIS-100. It is a simple 12-core processing unit with 13 opcodes, 2 registers per core (one addressable), up to 4 in/out communicaton ports per core, labels, and some other features. Additionally, each core can only hold 15 lines of code, there is no multiplication or division, and each core can only communicate with neighbouring cores. Therefore, you need to be somewhat clever about how you design your programs.

Step-by-step debugging is also available.

Just like in other games made by Zachtronics, there are leaderboards for different scoring metrics - cycles (global counter), node count and instruction count. Note that your records for each of these metrics do not have to come from the same program. You will see a global chart and your friends' highscores.

Due to this, you will quickly learn to program in a few styles. Generally speaking, each scoring category is often dominated by certain styles. Some are listed below.
  • Instruction count - Compact pipe. You write your program in such a way that you achieve as much as possible, often through simple co-routines in other nodes.
  • Cycles - Paralellized pipes. You insert your input data into different processing pipelines and rely on an end-node to sort out the correct order.
  • Node count - Compact microservices. You create multi-functional co-routines that can be called by sending said nodes a specific number.

Additionally, you can make your own program and send it inputs.

This thread
This thread is for sharing achievements, asking for help, adding fellow goons to brag about share solutions to problems, and beating each others' scores. To get your code out, click the "OPEN SAVE DIRECTORY"-button in the main menu. Use TIS-100 Pad to share the code. I've also made a private Steam group - just in case. Feel free to add me.

More screenshots
(Showing score screens to avoid some spoilers, while showing some tasks)




Nice tricks (may contain some spoilers)
This section assumes that you've started playing the game.

JRO will be one of the key instructions for optimising your code. It allows you to create N-way branches, make serial conditional computation (sort of like Duff's Device) and more. It takes one parameter - a number, port, or register and jumps that number of steps up or down in the node's code.

So given this situation:
code:
NOP
MOV 1 ACC
JRO LEFT # This line is being executed
MOV ACC RIGHT
If you receive a -2 from the left, you will jump to the NOP above. If you receive an out of bound value, the nearest value will be chosen instead.

You will often want to cache a value in your system to re-use it several times.
Many people create this node as their first value-replicator:
code:
IN: MOV UP ACC
L: SWP
MOV RIGHT ACC
JEZ IN
SWP
MOV ACC RIGHT
JMP L
Send this node a 1 (or any other number) and it will reply with the current value, send it a 0 and it will ingest another value.
However, due to the use of SWP (JEZ can't read a port), this is inefficient compared to
code:
JMP S
MOV ACC RIGHT # line 1
S: JRO RIGHT
MOV UP ACC # line 2
JMP S
Send this node -1 and it sends you the current value, send this node 1 and it gets the next value for you.

TZer0 fucked around with this message at 07:53 on Jun 18, 2015

Adbot
ADBOT LOVES YOU

troublegum
Mar 31, 2013
Looks interesting, though I have a metric gently caress-tonne (the metric kind is much bigger and trickier to move) of stuff on my Steam backlog still ( :cripes: I've still not gotten around to even downloading Spec Ops: The Line and I bought that at least two Steam Winter Sales ago. Yes, I am a lazy nerd.) and this will have to get added to the long list of "Games I Will Get Soon™."

And, knowing myself as I do, it'll probably languish there until the next Winter Sale.

Sheep
Jul 24, 2003


This is me buying a game about loving assembly programming, and it's not even part of the Summer Sale.

Edit: the best part is going "Yeah! I finally got it!" only to see how poo poo your program is when it shows how much better everyone on your friends list did.

Sheep fucked around with this message at 00:47 on Jun 18, 2015

Your Computer
Oct 3, 2008




Grimey Drawer
Considering my namesake I should probably give this one a go. I had a blast building my own CPU and writing programs in assembly in university so this game should be right up my alley, and their tagline of "the assembly language programming game you never asked for" is exactly my feelings on the game :allears:

You should consider cross-posting this to CoC (maybe ask for mod permission?), as I'm sure there are nerds there who would be interested as well.

  • Locked thread