วงแหวนเว็บ

neizod's speculation

insufficient data for meaningful answer

ABI-DOS

Friday, November 15, 2024, 11:06 PM

ABI-DOS is a love letter to Zachtronics.

Disclaimer: I received a free copy of the game from the developer to provide feedback during the beta-testing phase.

If you’re into puzzle genre, you probably have heard of Zach Barth, founder of Zachtronics, creator of the classics like Infinifactory, TIS-100, and Opus Magnum. Unlike traditional puzzle games such as Portal, Baba is You, or Patrick’s Parabox, where each level often feature one intended path to the solution; Zach’s games offer a refreshing twist: there are countless ways to solve just one level.

Take a level where you’re asked to compute $1+2+3+…+n$. You could simply loop through each integer and add them up, just as the problem suggests. Or, you might deriving the mathematical formula $n(n+1)/2$ for a faster solution. Or maybe you observed that the constraint n is relatively small to cached all the possible pre-computed answers.

This design choice is huge. Of course, allowing players to pave their own path– rather than guiding them with invisible hand –makes some level became extremely easy, if the player just wanna “pass”. And the game have no intention to take this away. Instead, it evaluates solutions in term of efficiency: whether it’s space or time. The game never explicitly judge your solution. But, if you’re feeling competitive enough, you can race to the top of the leaderboard.

It’s more than just puzzle-solving genre—it’s problem-solving genre, as praised by GMTK1. Well, for some, they even considered the name of the subgenre as Zachlike!!

Sadly for us players, after two decades of making games, the legendary Zach decide to disband the studio. One of the reasons was that they felt their games were too similar, offered no new perspectives to players2… Respect the decision nevertheless 🙏


So here comes ABI-DOS, a game stem from the urge to play Zachlike again.

On the surface, this is yet another Zach’s clone. It’s a mix of Infinifactory, where you move tons of boxes along conveyor belts; SpaceChem, where each box activates a function along the way; and TIS-100, where those functions resemble simple “assembly-style” instruction. To put it bluntly, this game create, manipulate, and fuse boxes in pipelines, then route the correct ones to the output.

But if you look closer, you’ll notice ABI-DOS is designed with a different principle in mind. First thing you’ll see is that it take race conditions seriously and make them crystal clear. For example, when 2 boxes fuse, the momentum of the resulting box is determined by the maximum values of the original boxes. Players have full control over the outcome. And when the game genuinely can’t decide, e.g., when both boxes have equal values, it’ll assigned a random momentum instead of leave it to be ambiguous — not retreating to “hidden variables” like which box spawned first, or object IDs assigned by the game engine.

This makes ABI-DOS incredibly transparent. You can look at a screenshot and follow exactly what it’s going to compute. That’s something Zach’s games have struggled. Take a look at Opus Magnum, you need a GIF to inspect how a machine actually works. In EXAPUNKS, the important code gets hidden away when you record GIFs. The closest comparison might be SpaceChem, where you can see all the code on one screen. But even there, “bonder priority”3 makes bond/unbond behavior inconsistent, despite your solution looks identical to a walkthrough.

With its transparency and simple set of instructions, ABI-DOS becomes a game you can play anywhere—whether you’re ridding the train, taking a shower, or even dreaming about it (hopefully not as a nightmare 😜).

Another key different is that ABI-DOS use average cycle count to measure speed. This seems like a marginal different, but actually has a big impact. With Zach’s max cycle count, you only need to care for the slowest case. With ABI-DOS average cycles count, you need to think in detail on how to handle both fast and slow cases.

Take an example when you’re given an array of length $k$, and asked to copy its elements based on a sequence of given indexes of length $n$. Accessing an element in the array has a 1-cycle cooldown, but you can access other elements during the wait. Under Zach’s max cycle indicator, you can hardly go faster than $2n$ (or $1.5n$) cycles, given that the smallest array is of length $k=2$. However, with ABI-DOS’s average cycle indicator, you can speed it up to $(1+1/k)n$ cycles. Which results in an overall speed of just $1.19n$ cycles for in-game $k$ that ranges from 2 to 12.

And that’s the beauty of having lots of boxes to track values: you can implement your own array data structure! This unlocks cool tricks that broaden your problem-solving perspective. For instance, a level might asks you to compute the sum of all nodes in multiple rooted trees. The catch? Those trees share inner child nodes. Thus, if you solve this by traversing each tree top-down, you’ll end up with an exponential time. But if you switch to a bottom-up approach (via dynamic programming), it’ll be a blast to a linear time!

If cycle-optimization isn’t your thing, the space-optimization can be mind bending too. It forces you to be creative on how to reusing instructions by making boxes revisit them from a different angles, literally. That’s the advantage of undirected wires that allow boxes to move back and forth, unlike traditional conveyor belts that force one-way movement.

The game also embraces randomized algorithm: you don’t even need to read the entire input to come up with a (probably) correct answer… Well, I’ve already written about this4.

Although the game doesn’t require any prior programming knowledge, by the time you’re diving into optimization, you’ll learn a handful math & computer-science technique IRL.

I’d say ABI-DOS has definitely grow out of Zachtronics’ shadow.


That being said, the game isn’t exactly flawless.

First, the in-game problem statement can be quite cryptic: explained in an input-behavior-output style rather than a storytelling approach. To be fair, this was my impression during early beta-testing, so it might have improved since then. Plus, it might just be a matter of taste, some would prefer short & concise writing!

Another thing is that the test cases are completely random. This isn’t inherently bad, but if you’re looking for a narrative touch (like the Highway Sign level in EXAPUNKS, which foreshadow “breaking the 4th wall” via its test cases), you won’t find that here. For instance, in a level where you need to implement a string-matching algorithm, the test cases are just gibberish text.

Also, the game is missing today’s standard Steam Workshop (sorry if you wishing to experiment with smart or silly ideas). However, the developer did mention that you’re welcome to submit “hard & unique” levels to expand the bonus section.

These are minor imperfections and won’t impact the core puzzle-solving gameplay at all. Just don’t expect a seamless experience like Zach’s.

If you’re unsure if this game is for you, try the demo. It’s pretty generous, offering 20 levels that go beyond simple hand-holding tutorials. You’ll find plenty of mind-blending, full-fledged levels to optimize for 10+ hours. Just a heads-up: the demo leaderboard is separate from the full game.

Happy puzzle-solving! 🔥👩🏻‍💻🔥

Originally published on: Steam

neizod

author