This review contains spoilers

I can divide the entirety of my interests into 4 things I love: learning, games, writing and programming.
Career wise, programming is the love I've chosen. I am currently pursuing a degree in computer science (I am a year 3 student), and I intend to get a job as a software engineer after I graduate.
To me this seems like a good choice so far, my classes are exceptionally interesting, I enjoy programming constantly, and software engineering seems like a field where financially I'll be set.
There is a sacrifice to this choice, my vast intrinsic love of programming is tainted by the fact that i must sell my skills and attention. I first learned programming as a means to an end to make games, and now I learn programming in order to deserve the right to exist. Between those two heavy extrinsic values, i hope to keep my deep intrinsic love of programming alive.

Fortunately, this isn't a review of living under capitalism...this is a review of a zachtronics game. I wrote that preamble to illustrate how much I am the target audience for Zachtronics programming games. Not only are they the type of challenge that I've most devoted myself to learning, but they're a manifestation of the intrinsic value of programming

The time I spend programming in Zachtronics games is fun and refreshing: it's less frustrating, it's way easier to understand why something doesn't work, i understand the entire scope of what I'm doing, the game has incredibly interesting constraints and most importantly it's utterly useless. Instead of programming to save time, gain grades/money or bring a game to life, I am 100% programming for the joy of the challenge. {Sidenote: I also enjoy programming challenges such as projecteuler and adventofcode, which have a similar appeal to me}

It's really easy for my opinion on games like Shenzhen I/O or EXAPUNKS to be "Zachtronics Programming game 10/10". I feel this is underselling these games. Zachtronics does not keep releasing the same game with a different skin. Their games are like siblings, any parent could tell you how different they are from each other (while still sharing so much in common).

So the baseline for this review is that programming games are some of my favorite experiences, time to actually talk about exapunks


Exapunks is one of the most approachable programming games I've played, it is not arcane like tis100 nor does it greet you with the sheer immense challenge and constraints that shenzhen i/o does. At first, I saw this as a negative. Having beaten shenzhen i/o, I cruised through the first couple levels of EXAPUNKS. It wasn't until the last third that I encountered levels that were truly a struggle.

This does not mean that the game was not interesting until those levels. My skill meant that I got to treat my playthrough like a prestige run, playing the deeper game: optimizing. Instead of moving on once I had created a solution, I moved on once I was satisfied with my solution. {I clicked the post-victory continue editing button more times in this game than I have all other zachtronics games} Even in the initial planning of each level I was already considering activity/speed and size tradeoffs or discarding ideas i considered inelegant.

When I played TIS100, my friends leaderboard scores taunted me. While playing exapunks, I was constantly surprised that after finish a level where I had made some compromises I’d still be above many of them. The rush of satisfaction and self-confidence from seeing I’d beaten other scores was one of my favorite parts of the game.

I adore the 3 optimization metrics in EXAPUNKS.
Cycles
Speed/Cycles is a classic that is very natural for me to want to optimize, it’s even more interesting more in exapunks due to the game’s focus on multithreading. In exapunks, deciding how much parallelization to do is like a difficulty option. Concurrency frequently introduces interesting complications and makes your solution much more work to implement… in return you get SPEED. I love how much of cycles optimization encourages approaching the problem in an efficient way, rather than just being able to do things in less lines of code {which is important too,especially for loops…one of my favorite discoveries was a size optimization regarding for-loops}
Size
It’s refreshing for size to be purely an optimization metric as opposed to also an inherent limitation on how things are implemented (these exas have scrollbars and it’s great!... except they’re a little more annoying to debug}. It’s a really clever idea to have a maximum size in order to be considered for leaderboard scores ( every single level I stayed within that limit). Not only is this kinder to players who are just trying to get a solution, but it feels like an interesting constraint for cycles optimization which is hungry for size. {Especially with loop unrolling which I enjoyed a lot}. Lines of code is generally a metric I’m not very interested in, here there were a couple of levels where a slight size optimization had an incredibly satisfying side effect of also increasing the speed. The best part about size optimization in this game is how clever you can be with how you use registers. Some of the things I discovered I could do in just 1 line are quite satisfying.
Activity
Activity is an interesting one, I like how it’s a penalty for two separate things (traversing hosts and killing exas). It’s pretty trivial to figure out what the minimum required link hops are, then it just becomes a constraint to how you design your solution. Pursuring low activity often means you have to do things in a slightly more annoying way, but I think it actually helps you learn some of the vital exapunks skills. The best part about going for low activity is how it interacts with the limited bandwidth of the m register, this often introduces interesting complications in solution design.

For my playthrough I decided to prioritize both cycles and activity (I find multi metric optimization much more interesting than single metric optimization). I also decided to choose the dominant metric in that pair thematically… on hacking levels I usually went for minimum activity , on body programming levels I was willing to use extra activity in exchange for fewer cycles.



I love the variety of level types. It’s great for pacing and they have great fundamental differences.

Leave no trace- It’s incredibly interesting that most exapunks levels are designed around doing something once and then cleaning up after yourself. This sets it way apart from every other zachtronics game. It’s like the opposite of what I’m used to doing, that’s a very cool way to capture some of the spirit of hacking. It’s just such a great paradigm shift for exas to not be programs that automatically loop, which can be arbitrarily be terminated or started. Within this framework the activity penalty for killing also shines.

The phage- Cute how it becomes a nice break to go back to levels that are more in the tis100/Shenzhen I/o style: manipulating input data to get output data. I love the idea of fighting a terminal disease by programming exas for your body, unfortunately I don’t think the game does enough with this concept.


Hacker Battles- These are my favorite level type, they’re a huge highlight of exapunks. I love how you have to consider design, implementation and strategy. Having to make strategic choices is so fascinating, exapunks has shown me that this is a really underexplored design space in engineering games. It’s also neat how the 3 optimization metrics are built into your performance: you’re racing against your opponent (cycles), have a line of code budget (size), and get penalized for killing (activity). Hacker battles Tappeal to my love of multi-metric optimization. I was also impressed by how well designed each battle was, they accounted for a lot of different types of cheese while leaving you with various approaches you can take. The biggest problem with them is that I didn’t have good enough opponents from my friends list. I put a lot of thought into each of my solutions, and felt disappointed how rare it was to face up against a solution with an equal amount of thought put into it. I’d love to spend more time analyzing an opponent’s solution and then adapting. I’d like to shoutout the last 2 hacker battles, the focus on controlling territory/filling the board with your exas is way more interesting than the other battles.

My favorite part about the exa’s language is the registers. You have so few of them and they’re all special. There’s so many discoveries where you can apply the properties of a register to do something neat and interesting challenges where it feels like you don’t have as many registers as you want.
Operations that set or jump based off a test bit reminded me a lot of my time learning MIPS. The T register is an incredibly neat because you can use it for it’s intended purpose for conditionials and you can also simply use it as an additional register that you have to be careful not to wipe at the wrong time. The M register is part of the heart of the game, a lot of the challenge of the game comes from figuring out how to use such limited bandwidth for communication. I adore the complication that it’s undefined which exa will read if multiple are trying too.

The Files are probably the weakest part of the language for me. I don’t find file input/output that interesting. There’s some clever things you can do with them, but they’re a little too annoying to deal with. It’s also weird how much of the action is going on in the files, seems like a misuse of the screen real estate. This is especially egregious because the gifs you export don’t really show what you’re doing to files. I would have preferred a game that was much more about the environment of hosts on your screen rather than their files. It’s weird to me that despise how unique exapunks is, so many of the levels just come down to data transformation. Exapunks really has a lot of missed potential on the spatial/ environmental systems aspect of its levels. A lot of my favorite levels are the ones where you aren’t doing that much file manipulation, and I feel like those are much closer to utilizing the potential of the game.

Speaking of the level environments, I’m not a fan off all the extra fluff in levels. I’d rather have all the elements be relevant to the problem I’m solving or the game commit even more to the levels being open-ended environments. The balance exapunks chooses between these two doesn’t work at all. I was disappointed by the achievements in this game, they’re all doing something random and uninteresting with otherwise pointless level elements. In regards to poking around a system and exploring what you can influence , Exapunks isn’t even competing with games like uplink.


Story-wise exapunks is ok. I think Eliza, another game written by Matthew Seiji Burns has more interesting things to say regarding AI and how people live in a world of tech.
I like the EXAPUNKS chat room. I dislike the conversations with ember. . My main problem with the ember conversations is that they both fail to be thought provoking and fail to allow me to express my opinion. I do like the ending though.
I think the story succeeds more at being evocative than interesting. The thematic opposition between the rebellion that’s inherent to hacker culture and following ember’s instructions is interesting and a bit underexplored

The world of exapunks is incredibly interesting. One of my favorite things to see in worldbuilding is alternate ways for computation to exist , exapunks does a great job in appealing to that. I quite like the concept of EXAS. The best part of the Zines is all the extra random stuff in them. I was pretty disappointed in the short fiction story though.

Narratively, I like the levels where you’ve decided to take it upon yourself to do something. Thematically, I’m a fan of any level where the track“Leave No Trace” plays. Those always feel like “things just got serious, you’ve woken up and chosen violence”. The soundtrack is cool, although I spent enough time in each level that I pretty much got my fill. I think they did a great job of matching the 6 or so different level tracks to the various missions. (I wonder if having to space out uses of specific tracks had any influence on the design of each level)

The side distraction minigames are pretty cool… except Zachtronics cannibalized them for later games. The solitaire is obviously in the solitaire collection and hack n match is in last call, so before even playing exapunks I had my fill of both. I am a pretty big solitaire fan, but unfortunately the solitaire in this game is by far the weakest one zachtronics made. Hack n match absolutely rules though. I’m a huge puzzle arcade enjoyer, and this brings a unique take. Like seriously hack n match is so interesting, it deserves more than being a side zachtronics minigame. I also enjoyed how you had to actually do a relevant programming level to unlock each of the side content activities in EXAPUNKS


One thing exapunks does worse than all the other engineering zachtronics games is watching your solution play. Your choices for playback speed are much too slow (unless you’re debugging), too slow, and much too fast. My problems here are related to some complaints I’ve already mentioned. The gifs you produce aren’t that interesting. Besides a few exception levels, there’s not even that much to watch.
It is really frustrating that there’s no useful way to skip to the first test case that fails, it’s a bit too much work to reproduce an unexpected failure. Also the system where you focus on exas/files is a bit jank especially when you have large code blocks and replication. It’s strange that you can detach an exa’s code from the left pane… while the simulation is running. I’d be nice if that saved for when you returned to editing. One thing I do appreciate though is actually having enough horizontal room in each line of code to actually usefully name things.

Finally I want to mention how much I enjoyed the final few levels. They’re where exapunks really shines. The most interesting way that the game scales in difficulty is how levels will ask you to do multiple things that are each fairly complex, and together they’ll put a great strain on how you use your registers and exas. Once I got to these levels I let myself be looser with what an “ideal” solution was. This was like taking off training weights in anime. Allowing myself to just do the naïve approach avoid a troublesome implementation of concurrency or use an expensive activity technique felt very freeing, a fitting retribution against the late-game difficulty. I especially enjoyed the final level. My solution for it is utterly deranged. I’ve played quite a few programming games where the final boss is sorting, exapunks has a powerful enough toolset that it can take it one step further: you have to find the data yourself in a randomly generated tree. Also shoutout to unknown network 2 (unknown context), that was a very interesting level. It’d be cool if more levels reacted to your intrusion like that. {I’m not sure if there was anything more menacing than reading the words “Note: some links may disappear as a result of your actions”.


Exapunks is awesome. It’s currently my fifth favorite game of all time, right under Shenzhen I/O


This is a short and cinematic game where you dive into a pro swimmer's childhood memories. The vibe is magical realism. The gameplay consists of being a magic cursor which can select objects and move them around. You interact with things by doing mechanical motions in order to advance through a series of scenes.

It's like someone made a movie, but between each scene they added friction. I actually enjoyed this friction more than I was expecting to. Some of the ways you interact with stuff is pretty amusing and satisfying. There were a lot of of small moments of random joy in something I was expecting to just be tedious. It's interesting how much this toy-like interactivity actually adds to the experience.

I was having 2 experiences: watching a series of creatively presented scenes obsessed with non-verbal story telling, and going through the motions of interacting with things. The latter prevented me from getting so bored that I stopped appreciating the former. To be clear, this was a danger because the story was pretty boring and uninteresting.

I can respect the intent of the story, but the real strength of the game is the diverse presentation of it's scenes. Some of the ways the trivial interactivity is implemented is neat. I repeatedly noticed an interesting bit of cinematography or scene construction and exclaimed "that's clever".

I love all the ocean & water imagery. Water is pretty technically difficult, especially for a small team indie game like this. Massive respect for all the shader and technical art work that was done here.

Celeste is one of the best platformers. It's both a masterpiece itself and host to a vibrant community of excellent modded levels. Strawberry Jam is the best celeste content that has ever been made. Its brilliance outshines spring collab 2020, the base game and even farewell.

Strawberry Jam is a gift to the world. One that is unbelievably jam-packed with the efforts of over 300 people.

So many of these levels just blow me away. So many of these levels are pure manifestations of fun. So many of these levels are incredibly clever. So many of these levels are delightfully evil. Even the ones that don't stand out to me or aren't my style are well done. I love how many different kinds of experiences these levels offer, this pack is non-stop creativity.

The visuals are so gorgeous...sometimes it feels like they're showing off. Even just exploring each lobby is a treat. I'm surprised how satisfying it is to collect each level's completion sticker.

The soundtrack is huge and incredibly diverse, it's one of my favorite osts

If you're intimidated by Modded Celeste, don't worry there's 5 lobbies of difficulty, each with it's own set of levels. The beginner lobby is easier than what the base game throws at you (and also has some of my favorite levels!) Also included in the pack is an excellent training and tutorial area, where you can learn and practice the tech you would need for any lobby. This is probably one of the best celeste resources that's been made so far, a perfect place to start if you're interested in going deeper into the game

2 of the lobbies here are way above my skill level. Each level in the advanced lobby took me hours. At the time of writing this review I have 150 hours in strawbery jam, 90 of them are in the advanced lobby. Yet as my deathcount piles up so does my love. {The heartsides are frustrating though, they're definetly the lowpoint of the experience. I hate how long their rooms are}

I've played a few celeste mods, I intend to play a lot more. This one will probably remain my favorite, i absolutely adore the insane variety. I am grateful to the strawberry jam team for creating something so wonderful. I am grateful to the celeste modding community for elevating one of all time favorite games to somehow greater heights

This game's neat, I enjoyed the pleasant vibe.... maybe wholesome games are growing on me lately?
The best part is easily the presentation
I absolutely adore the artstyle, especially the forest areas which are just gorgeous. I enjoyed the music as well.

The minigames are pretty simple, they feel like a little something to spice up the pacing and not much more.
The conversations strike the balance of being not quite interesting, but not quite a waste of my time. I'd say the vibe hits just right so that they lean more towards good. The intro is incredible and there's a few bits that made me chuckle.

Finally, I love the pose the main character makes when talking to npcs

Overall, the game is short and sweet, easily worth what little it demanded from me

This game is so awesome! There is so much that is amazing here, and playing this game made me happy. The final game will definetly be an instant purchase for me.Playing this game it is immediately obvious that the developer is a hardcore action game fan, and I think this game holds up with the other great action games I've played so far. I have only one complaint, and I'll leave it after my waves and waves of praise.
My favorite component is the soundtrack, which is just full of pure bangers. I love how the music transitions from exploration to combat, especially with the spike of more metal as a you get into a combat. I consistently listen to the ost for this game, and get boosted by it's energy. it is one of only two soundtracks I've purchased.
The base mechanics lead to an excellent combat system. The movement options are really nice. This has everything I enjoy about hollow knight combat, but with the addition of a couple exceptionally interesting moves and surprising amount of depth in variants for each verb to elevate this to a new level. I'll specifically call out two moves which are incredible and make this game standout a lot.
Dive attack: Having a diagonal downwards dive shakes things up a bunch. It takes a bit to get used too, but once you have a good feel for it {and there are some neat platforming sections that help you get used to it}, combat is injected with this incredible sense of motion. It serves as a great way to leave a pogoing in the air state, either to be incredibly aggressive or as a panicked escape. It also encourages more horizontal movement in general to complement an aerial strategy which makes combat more exciting.
Hook-dash: {a straight hook attack that dashes you through an enemy or obstacle on contact}. This move is a beautiful work of genius. It's shade dash's {from hollow knight} cooler sibling. There's quite a bit of skill to utilizing it because a few moments of wind up {to launch the hook}, so it's not an instant escape tool. Yet the nuances of this move make it loop back around to something that you can use slightly before you're in danger and need to move immediately. I love the momentum you get from using this, and again like the dive attack it encourages horizontal movement across the battle in a great way. Then on top of having this your character still has a normal dash that can also go through enemies, I like how this move takes more skill to use, and is a massive repositioning + evasive maneuver.
The best part is that the enemy design is fantastic and properly challenges and complements this move set. The above mentioned hook maneuver has certain enemies that are immune to it. Yet this is incredibly intuitive and always 100% obvious from visuals {long lads can not be hooked through, but any thin section of any enemy can always be hooked through}. Speaking of well-done visual design, there are helicopters in this game that just jaw droopingly genius in how their design naturally makes them immune to a certain type of attack {pogos}. Each enemy justifies their existence, and creates a certain type of pressure and challenge. Yet these enemies aren't used in isolation , but together in crazy and hectic battles where you have to manage the diversity and scale of problems from tons of enemies all at once. There's quite a few severe difficulty spikes, yet you feel awesome constantly and get huge rushes of satisfaction from managing to clear a chaotic arena or tough boss. The main gameplay here is so strong that I find myself sometimes just opening magenta horizon, doing a random stage, and quickly feeling awesome.
The visual style here is weird in a really exciting and awesome way. I specifically love the vibrant use of colors to create the strange setting. Too many games lack a nice use of color, and that along with some other personal taste has made generally uninterested in the type of setting this game has, but the art style of this game sells me on it. Instead of playing the game despite grotesque things that aren't really my vibe, I was excited to see what strange and twisted thing would be next. Some of the stages are sweet surprises that really standout too .
Now for my one complaint: the checkpoint system sucks and fills me with an indescribable rage. I hate constantly having to redo sections. It really deflates my enjoyment of the game to have to constantly go through battles again and again to get back to the actual part that I want to be playing after I die. The design of the system here is so ridiculous that I could often save time by just restarting the whole level and going for a more optimal checkpoint usage. Sometimes I'll get aggravated with the game and stop solely due to this, but I always return eventually excited to play. The boss battles are a highlight for me because you respawn right outside of the beginning of the fight. If I could play this game in a cheat mode where there were checkpoints before every fight I would be very happy.
Also to not end on negativity, I'll throw in some more lightning round praise
The ranged skills are cool, and there's tons of cool interactions and uses of them that I'm still discovering new stuff for after finishing act 1
The stage select is handy -> especially because you can select difficulty for playing that stage and also still have your characters unlocks
The hard post-game difficulty is interesting and well designed {so far it seems like too much for me but I am enjoying exploring it}
The bosses are chaotic and aggressive which makes them much more interesting than 50% of video game bosses. I can tell that the developer is a fellow GPZ {hollow knight boss} enjoyer.
Finally this game is incredibly impressive as a solo passion project. From studying game dev I'm intimately aware of so many pain points and have a big appreciation for the difficulty of creating a game. So by default I have a respect for any solo game, but this holds up to my actual favorites on top of that, so it is even more impressive. To be honest I idolize the developer a bit, and put them on the same pedestal of all the other monumental developers and games which inspire me to work to get to that level. [Also it should be noted that they are a cool person who I enjoy talking too, and supporting this game is incredibly emotionally satisfying]