• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074


EXAPUNKS is the latest in Zachtronics' series of absolutely amazing puzzle games.

If you are not familiar with them, the common theme is that you build something -- it could be an electronics gadget, or a chemical reaction, or a program -- to accomplish a given task.

A huge part of what makes these games so addictive to aficionados is the competitive aspect.
Each solution you create has several nonfunctional aspects which determine its quality -- e.g. in the case of EXAPUNKS, one of them is Cycles (speed) -- and you get to compare your solution against a histogram of all of them, as well as your friends.
Optimizing your solutions can become highly addictive.

From what I have played so far, EXAPUNKS also steps up the production values compared to previous Zachtronics games, with e.g. voice acting. It's basically AAA.

Oh, and while the setting and world-building is surprisingly good in all Zachtronics games, especially considering the genre and focus, I feel like EXAPUNKS might be their best yet. Or maybe I'm totally into cyberpunk and 90s hacker counterculture.

Let's get this started!



Note that the game is in early access, but this is completely different from the early access you might have in mind. The game is complete, and polished, but Zachtronics always has a few months of EA to react to feedback and tweak the games.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
It seems like the server-side data for the histograms just got refreshed, and there are already some things I'll have to think hard about to match.

But this one is holding up for now: ;)
tut_46qdka.png
 

Tim

Member
Oct 25, 2017
441
Man that first mission is real good. Always love Zach's fucked up vision of the future.
 

Bosh

Member
Oct 26, 2017
2,226
Alright, asking the idiot question. Everything needed to solve a puzzle is in the game ? No coding experience required
 

Spectrum

Member
Oct 27, 2017
343
It seems like the server-side data for the histograms just got refreshed, and there are already some things I'll have to think hard about to match.

But this one is holding up for now: ;)
tut_46qdka.png

I managed to get that one down to ~300 using the T register, but I guess I'm still missing some tricks...

Alright, asking the idiot question. Everything needed to solve a puzzle is in the game ? No coding experience required

There is a manual with a tutorial that should walk you through the basics and explain the more advanced stuff. I would say it's a bit more intuitive than Zachtronic's past programming games and I've seen people with no programming experience get relatively far in those. If you like problem solving, I think you would do okay if you are willing to put some effort into learning the rules.
 

Bosh

Member
Oct 26, 2017
2,226
I managed to get that one down to ~300 using the T register, but I guess I'm still missing some tricks...



There is a manual with a tutorial that should walk you through the basics and explain the more advanced stuff. I would say it's a bit more intuitive than Zachtronic's past programming games and I've seen people with no programming experience get relatively far in those. If you like problem solving, I think you would do okay if you are willing to put some effort into learning the rules.

Perfect, definitely going to check this out tonight . Thanks for the response!
 

More_Badass

Member
Oct 25, 2017
23,623
Here's where everyone is

TIS and Shenzhen were like brick walls for me, but this must easier to grasp. Maybe it's the visual representation and contextual wrapping compared to those

This feels like the more accessible, more story-driven successor to those in the same way that Opus Magnum and Infinifactory were for SpaceChem
 

Aeana

Member
Oct 25, 2017
6,942
I love it, as always. I got the physical edition, and I really like the books.
My usual friends aren't playing yet, so I'm just competing with myself. I need more friendly competition. Right now I'm just enjoying the thought of them eventually coming along and going "how did she do that? ahhh" which is driving me to find even better solutions. I just did the highway sign one, and I got 218/15/1 but I feel like I can definitely get the cycle count on that down, so I guess I'll be obsessing over this for a while.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I love it, as always. I got the physical edition, and I really like the books.
My usual friends aren't playing yet, so I'm just competing with myself. I need more friendly competition. Right now I'm just enjoying the thought of them eventually coming along and going "how did she do that? ahhh" which is driving me to find even better solutions. I just did the highway sign one, and I got 218/15/1 but I feel like I can definitely get the cycle count on that down, so I guess I'll be obsessing over this for a while.
I'm pretty happy with my solution for that one. The first level in which I used some of the more obscure features.

signpoeke.png

(Note: these individual metrics aren't from the same solution)
 

AvernOffset

Member
May 6, 2018
546
I played through the highway sign hack last night, and I'm really enjoying it so far. It definitely feels like there's a lot of interesting design space in this one. Also, I'm kind of shocked at how much I'm into the story and aesthetic. I've never gotten much out of the stories in Zachtronics games before, but I think they've improved a lot with this one. The characters feel relatable, some of the jokes have landed really well, and I love the brief conversations with the AI before/after hacks. The only thing that has bugged me so far is that if you try to send two EXAs across a link simultaneously, it seems like the one lower on your list of EXAs gets priority? Not sure if I was doing something wrong, but that felt backwards to me.
 

Eden

Member
Nov 15, 2017
414
Probably won't be starting this until after the weekend but printed the zine out at work since it can do booklets and it looks great.
 

TeenageFBI

One Winged Slayer
Member
Oct 25, 2017
10,241
I'm busy with a few other games right now so i can't play for long but I received my zine/package from Zachtronics. I wish more companies made fun physical stuff like this (instead of the bloated cat helmets that we usually see).

Played for a few minutes. I love the music, as usual. Is it the same music guy for every Zachtronics game?
 

Spectrum

Member
Oct 27, 2017
343
I'm pretty happy with my solution for that one. The first level in which I used some of the more obscure features.

signpoeke.png

(Note: these individual metrics aren't from the same solution)

I had to use a very messy solution to get the cycles down on that one. It also took me a while to notice we now have division/modulo operations.

xX4fb8R.png
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I played through the highway sign hack last night, and I'm really enjoying it so far. It definitely feels like there's a lot of interesting design space in this one. Also, I'm kind of shocked at how much I'm into the story and aesthetic. I've never gotten much out of the stories in Zachtronics games before, but I think they've improved a lot with this one. The characters feel relatable, some of the jokes have landed really well, and I love the brief conversations with the AI before/after hacks. The only thing that has bugged me so far is that if you try to send two EXAs across a link simultaneously, it seems like the one lower on your list of EXAs gets priority? Not sure if I was doing something wrong, but that felt backwards to me.
Yeah, I think if you want to enforce a priority you just shouldn't try to use the link in the same cycle. (Same for hardware register reading/writing. And global comm for that matter)

I had to use a very messy solution to get the cycles down on that one. It also took me a while to notice we now have division/modulo operations.

xX4fb8R.png
My 88 cycle solution is quite elegant, just 20 instructions.
I got it down to 86 cycles now with your prompting, but that solution isn't nearly as elegant ;)
 

Aeana

Member
Oct 25, 2017
6,942
I get home from work, and Gotchaye has beaten every single one of my scores. He even has 165 cycles on tutorial 4. I guess all progress is halted until I catch up.
 

Spectrum

Member
Oct 27, 2017
343
Yeah, I think if you want to enforce a priority you just shouldn't try to use the link in the same cycle. (Same for hardware register reading/writing. And global comm for that matter)

My 88 cycle solution is quite elegant, just 20 instructions.
I got it down to 86 cycles now with your prompting, but that solution isn't nearly as elegant ;)
I managed to get it down to 85 cycles. I still haven't found an elegant sub-100 cycles solution, though.
 

Dinjoralo

Member
Oct 25, 2017
9,152
I've gotten to the point where you get the second zine, and I'm gonna hold off on going further 'til I get my physical zines in the mail.

I need the solitaire music... It's so good and chill.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I think I could eke out a few more cycles, but the current count is aesthetically appealing ;)
ucb99ce5.png
 

Dreenk

Member
Oct 27, 2017
490
I feel like I'm a bit slower on the uptake with this game than any of the previous ones, no particular reason why though. Loving it so far nonetheless - the aesthetic and music are A++;

Hidden content
You need to reply to this thread in order to see this content.
^Steam profile if anyone wants more leaderboard fodder.
 

Deleted member 2620

User requested account closure
Banned
Oct 25, 2017
4,491
This looks like the coolest Zachtronics game thematically. I have too much stuff I'm juggling right now to buy this early access but I can't wait for release.
 

Nex

Member
Oct 25, 2017
58
Kinda sucks that this got released on the same weekend as MHW, but I've been finding time to play it and I already love it. It feels like it's gonna get stupidly intricate as it goes on. I'm also intrigued by the story. I also enjoyed the story in Opus Magnum so I expect to like this too.
 

Spoit

Member
Oct 28, 2017
3,988
I need a guide of those "one weird trick" things. Even more than than the other games, I feel like I'm throwing hundreds of cycles (and lines) away just doing the naive solution. Especially for all the loop operators, where I'm really missing the ability to just toss in an extra line of code for the 2nd condition before jumping somewhere.

Counters are also killing me
 

spam musubi

Member
Oct 25, 2017
9,380
I'm a bit confused about how to use the M register and two EXAs to read from one file and write to the other in a loop. I either end up with the target file having every other item from the source file, or the first or second EXA get blocked for some reason. Can someone show me a working example of what code is needed in each EXA to, for example, take one file (let's say 200), then dump it to the other?

EXA 1:
Code:
grab 200
mark loop
copy f m
test eof
fjmp loop
copy m -1
wipe
halt

EXA 2:
Code:
make
mark loop
copy m f
test m = -1
fjmp loop
drop
halt

, or variants of it, don't seem to work.
 

Tim

Member
Oct 25, 2017
441
I'm a bit confused about how to use the M register and two EXAs to read from one file and write to the other in a loop. I either end up with the target file having every other item from the source file, or the first or second EXA get blocked for some reason. Can someone show me a working example of what code is needed in each EXA to, for example, take one file (let's say 200), then dump it to the other?

EXA 1:
Code:
grab 200
mark loop
copy f m
test eof
fjmp loop
copy m -1
wipe
halt

EXA 2:
Code:
make
mark loop
copy m f
test m = -1
fjmp loop
drop
halt

, or variants of it, don't seem to work.
"Test MRD" checks to see if there's a variable in M without triggering it.
 

Tim

Member
Oct 25, 2017
441
Can you show me an example of how it's supposed to work?
Sure:
Code:
grab 200
mark loop
copy f m
test eof
fjmp loop
wipe
halt

Code:
make
mark loop
copy m f
noop
noop
test mrd
tjmp loop
drop
halt

That might not sync up 1:1 so you might need to tweak it a bit, but should give you an idea.

e: to clarify, mrd tests to see if any eva is broadcasting a variable to M, so you need to have the broadcast started *before* your second eva checks or it will think the loop is done. Using "noop" waits a cycle which might be helpful.
 
Last edited:

Spectrum

Member
Oct 27, 2017
343
I'm a bit confused about how to use the M register and two EXAs to read from one file and write to the other in a loop. I either end up with the target file having every other item from the source file, or the first or second EXA get blocked for some reason. Can someone show me a working example of what code is needed in each EXA to, for example, take one file (let's say 200), then dump it to the other?

EXA 1:
Code:
grab 200
mark loop
copy f m
test eof
fjmp loop
copy m -1
wipe
halt

EXA 2:
Code:
make
mark loop
copy m f
test m = -1
fjmp loop
drop
halt

, or variants of it, don't seem to work.

After you write to the M register it can only be read once by another EXA, so you would need to store the value before doing the comparison. So for your EXA2

Code:
make
mark loop
copy m x
copy x f
test x = -1
fjmp loop
drop
halt

That code will write an extra -1 at the end of the file, though. It can be fixed with some extra labels and jumps, but maybe you want to figure out that yourself.
 

KKRT

Member
Oct 27, 2017
1,544
UNKNOWN NETWORK 1 was so much fun :)
This game needs more control over execution speed, like Shenzhen I/O had, also would be nice to have gif integration like Opus Magnum, maybe on release :)



----

I need a guide of those "one weird trick" things. Even more than than the other games, I feel like I'm throwing hundreds of cycles (and lines) away just doing the naive solution. Especially for all the loop operators, where I'm really missing the ability to just toss in an extra line of code for the 2nd condition before jumping somewhere.

Counters are also killing me
I'm in the same camp. TEST replacing T value annoys me to no end.
 
Last edited:
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I'm really missing computed jump targets.

Anyway, in the spirit of the game I wrote a program to help me find the optimal solution for tutorial 4:
Code:
range = 1..99

min_cycles = 10000
solution = []

0.upto 50 do |la|
    0.upto 50 do |lb|
        0.upto 50 do |lc|
            cur = [la, lb, lc]
            code_size = la + lb + lc
            cur.each { |ll| code_size += 4 if ll > 0 }
            next if code_size > 38

            max_cycles = 0
            range.each do |val|
                cycles = 0
                cur.each do |ll|
                    if ll > 0
                        while val > ll
                            val -= ll
                            cycles += ll + 3
                        end
                        cycles += 2
                    end
                end
                cycles += val * 3
                max_cycles = cycles if cycles > max_cycles
            end
            if max_cycles <= min_cycles
                min_cycles = max_cycles
                solution = [la, lb, lc]
            end
        end
    end
end

puts min_cycles
p solution

The result is better than my previous best, but still 6 cycles off of Gotchaye's. His surrounding framework/idea must be slightly more efficient.
 

Dinjoralo

Member
Oct 25, 2017
9,152
I just realized there's a DIVI instruction. I thought this would be like assembly where you don't get to divide numbers since you need registers for the remainder and quotient. I used swizzle for hacking your heart.

Right now, I'm trying to figure out how you could do the bank in half the steps... I understand the concept, but I have no idea how you could do it without tripping the alarms.
 
Last edited:
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I just reached the part where you get the second zine. These really help the pacing, it's a good time to relax and give it a read.
 

d00d3n

Member
Oct 27, 2017
908
Sweden
I think I could eke out a few more cycles, but the current count is aesthetically appealing ;)
ucb99ce5.png
I am wrecking my brain trying to optimize this one. I can see the path to a 135-ish score by shaving the last cycle off writing to the output file (have not managed to sync this properly), but 100 is insane.
 

Sasha Nein

Member
Oct 29, 2017
65
UNKNOWN NETWORK 1 was so much fun :)
This game needs more control over execution speed, like Shenzhen I/O had, also would be nice to have gif integration like Opus Magnum, maybe on release :)



----


I'm in the same camp. TEST replacing T value annoys me to no end.


Well this is much more efficient than my solution. I made 8 EXAs at the start and hard-coded them to their destinations :) Brute-force is best!

Although saying that, I'm currently on the TEC Redshift password one... maybe brute-forcing isn't the way to go.

None of my Steam friends have this game so feel free to add me (link in my profile) if you'd like to share your (no doubt more efficient) stats!
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
Finished the second 'zine. It's even better than the first.

... I spent too much time
unrolling loops without macros!
 

Gotchaye

Member
Oct 27, 2017
701
I just realized there's a DIVI instruction. I thought this would be like assembly where you don't get to divide numbers since you need registers for the remainder and quotient. I used swizzle for hacking your heart.
...I felt so smart for coming up with a division workaround for multiples of 10 using SWIZ. This is going to make some things easier.

The result is better than my previous best, but still 6 cycles off of Gotchaye's. His surrounding framework/idea must be slightly more efficient.
I got down close to you and cyan in the first place using a series of different-length loops. But my current best solution uses a killbot (I'm happy to share if anyone wants but I don't want to spoil people).