Hack ‘N’ Slash: Wot I Think

Double Fine’s devious hacking/programming action puzzler Hack ‘N’ Slash is now out of Early Access and into Version 1.0. I’ve run around jabbing USB sticks into ports all over the place, until I hit a wall of complexity I couldn’t find the will to pass. Here’s wot I think:

I am daunted by Hack ‘N’ Slash. I was daunted before I started playing, having seen the game running at an event at GDC this year, in which it was shown just how hackable this top-down puzzle game truly is. I find it daunting when the edges of things aren’t defined – it destabilises my sense of a game, and so a game in which you redefine the properties of its own contents in order to solve challenges doesn’t only sound amazing. It sounds daunting.

Hack ‘N’ Slash is clearly expecting that in a player. While it certainly doesn’t go to any lengths to over-explain itself, or spoil the magic of its own meta-nature by including a frame-breaking-breaking tutorial, it introduces the concept carefully.

You are a Link-like videogame character, and your sword is a USB stick. Whack it into baddies, objects, anything with a USB port, and you can reprogram fixed values to change the nature or behaviour. If there’s a rock in your way and it won’t budge, hack it and tell it that it has so many moves left, moves so many tiles when shoved, the speed it moves, and so on. Maybe that rock doesn’t have room to move forward, so program it to move -1 tile when it’s pushed, then dodge out of the way as it comes toward you after a shove. When there’s a baddy bird pecking you, how about hacking it so it carries on attacking, but its pecks do -2 points of damage?

It’s packed with such smart ideas, and it doesn’t rest on one for too long. Soon after you’re used to the hacking sword, it changes things up with a magic hat that lets you see the ‘Matrix’. Guard idle routines become something you can manipulate, and then time itself. And throughout, it’s being smart about itself, too. Infinite woods are a trope going back as far as gaming itself – impossibly looping labyrinths appeared in the earliest text adventures – and here they appear as a piece of technical wizardry that scares my eyes. No matter how much you walk around, the game is always zooming in on you, and yet the view never gets any closer. It’s like a reverse Hitchcock dolly zoom that goes on for, well, infinity.

Gosh, I love it at a conceptual level. But boy I get overwhelmed each time I look at a long screen of variables for an enemy, and start worrying the game’s about to want me to have a degree in something other than youth work and applied theology. When the screen becomes filled with its data made visual, text floating above objects, parameter lines projected over the art, I worry it’s about to get too tough. And yet, as I solve each puzzle, as I progress, I realise it’s not the challenges that are daunting me, it’s not the hacking, the variables, the complexity. It’s the sense of aimlessness.

It’s just a bit too loose. It’s not the smartness, nor the complexity, that is giving me this undercurrent of alienation. It’s a woolliness. Too many directions open up at any time, too many of them just dead ends. Too often am I solving puzzles because there’s a puzzle in front of me, rather than because I have any idea how it’s going to affect anything. And while it’s a game that wants me to fiddle under its illusion of a bonnet, it throws so many tools at me so quickly that I’ve often felt fatigue rather than intrigue.

But then again, I’ve also felt super-smart. When games shout, “THANK GOODNESS, THE GREATEST GENIUS-O-HERO OF OUR TIME!” because you hit a rat on the forehead, it feels deeply patronising. When Hack ‘N’ Slash congratulates you on having demonstrated great cleverness, well, you have. Admittedly it’s an artificial clever, but I’m owning that, thanks.

And then, four acts in, it lives up to my initial fear, and suddenly splurges a whole new set of rules on you with impenetrable explanation. The wonderful world of programming. Firstly, the explanations only appear once, and secondly, they’re so packed with irrelevant jokes that noticing what you actually need to fathom is a real pain. Thirdly, they’re terrible explanations. You’re trying to program the code behind the ports you’ve previously been hacking, following various logic gates and so forth, but it’s so esoteric, and so poorly elucidated, that I was immediately frustrated. Yes, those who have an instinct for such things will be pointing out it was literally “2+2=4”, but getting to that point requires some sizable leaps of understanding. Get it wrong, and you’ll likely break the game on such a level that it has to “crash” itself and restart the level. And that is nothing compared to what’s to come.

Where once Hack ‘N’ Slash rather sweetly created the artifice of being able to hack elements of itself in order to solve top-down exploration puzzles, in its fourth act it’s requiring that you reprogram its code in a way completely unsuited to top-down exploration. Changing a value involves running around, hacking nodes inside machines, and trying to follow its obtuse design rather than just typing it with your keyboard. And its deliberate obfuscation for those not familiar with programming begins to feel a touch less enchanting each time the characters shrug their shoulders and say they don’t understand it either.

I think the largest issue is it moves too fast. At the start, that’s fine, although a little strange. It gives you tools, teaches you to use them, and then abandons them. But by the later stages, this accelerated rate becomes overwhelming. I’d barely got to grips with the programming aspects, when it suddenly throws out the most convoluted, elaborate one yet, and then reveals that I need to go yet another programming step deeper before I can try to fathom it… and I just feel that daunt.

Clearly that’s not going to be applicable to many other people, who will be delighted to hear that it reaches a place of such fiddly difficulty. My argument is that I might well have equally enjoyed these moments if there were some notion of a difficulty curve to reach them, rather than the difficulty staircase it seems to have employed.

It all looks wonderful, and the characters are all completely lovely and often hilarious. The concepts are brilliant, deserving the gasps they received at that GDC conference as much now as then. While there are still typos left in, it’s mostly superbly written.

It’s also pretty clumsy. Why you’re limited to just five assigned buttons for inventory items (whether on keyboard or controller) is mystifying – and infuriating, since the only way to use an item is to assign it a shortcut you’re already using for something else. Also, the top-down angle is just skewiff enough that it’s far too easy to fall off the edges of things. I’m also not at all sure why rooms reset when you re-enter them – it never seems to be important for the way the game works, and mostly serves to be an irritant, forcing you to repeat the same mundane tasks.

However, this is still a game where you can figure out how to hack your own character to increase your movement speed, should you dig deep enough. Or simply amuse yourself reprogramming a roomful of guards to attack each other. It’s enormously clever, and very often inspired in how it delivers this cleverness. But for me it was simply too fast, too busy stumbling over itself to do the next even more difficult thing, that it forgot to ensure I’d fathomed the previous. Perhaps I’m Captain Thicko of the Ship Great Big Thickoface, and you should take this as a strong recommendation to pick up a game that Thicky Walker found too hard.

Hack ‘N’ Slash is currently £10 on Steam.


Top comments

  1. Geebs says:

    Do infinite bears shit in the infinite woods?
  1. Brosepholis says:

    Reminds me of my mum’s complaints about code academy. Essentially she thought it got too advanced too fast, and that discouraged her from continuing. This is coming from someone who will happily spend a weekend watching Khan academy videos on any topic under the sun, whether or not she actually understands the material.

    There seems to be something specific to programming that not only discourages people but makes them actively hostile to the idea of continuing.

    Edit – John, did you play Spacechem? How did your experience compare to this game? Spacechem is essentially parallel programming dressed up as a puzzle game.

    • RogueJello says:

      Really I think it comes down to there are two types of people, those who understand code, and those that don’t. It’s not yet clear if there’s something teachable, or it’s innate like eye color, but it is clear in a lot of freshmen programming courses that the line has been drawn, and you’re on one side or another.

      It sounds to me like this game separates the two classes of people as well.

      • Xocrates says:

        Code can be taught. Some people can take it in better than others, but it’s very much a scale, not a binary situation.

        The problem is that the game doesn’t try to teach you. It assumes you can read code and whatever tutorial it has is essentially only meant to help you get the basics of the scripting language. I suspect that in 2 or 3 hours the game covers mode coding principles than what I was taught in my first semester at college.

        This by itself is largely fine, I just don’t think the game communicates this particularly well – as it initially presents itself as much more approachable than it actually is.

        • RogueJello says:

          Code can be taught, IF the student has whatever it is that enables people to do so. Unfortunately, for whatever reason, some people can’t.

          link to blog.codinghorror.com

          The game is in early access, we’ll see if they improve the tutorials. Seems like a polish issue at the moment.

          • Xocrates says:

            Err… the game was officially released yesterday. Hence the review

          • Naum says:

            Interesting point and link. I wonder if it might be worth a try to start with functional-style programming and referentially transparent languages when it’s assignment that gives people so much trouble. The concept that a name always ‘means the same thing’ is also fundamental in mathematics and should therefore be (subconsciously) familiar to anyone taking a programming course.

          • zal says:

            Is the same thing true in high school programming courses? if it is, I lived through an enormous anomaly, as not one student in my programming class failed to learn programming. and none in my younger sister’s class either.

            OH wait I googled the paper. Sadly, some random guys academic paper turned out not to be a revolutionary truth proving that the remarkably Human brain magically isn’t for computer programming.

            So I think its safe to say you’re mistaken in making conclusions off of that paper RogueJello

            an excerpt:
            “Abstract: Learning to program is notoriously difficult. Substantial failure rates plague introductory programming courses the world over, and have increased rather than decreased over the years. Despite a great deal of research into teaching methods and student responses, there have been to date no strong predictors of success in learning to program. Two years ago we appeared to have discovered an exciting and enigmatic new predictor of success in a first programming course. We now report that after six experiments, involving more than 500 students at six institutions in three countries, the predictive effect of our test has failed to live up to that early promise. We discuss the strength of the effects that have been observed and the reasons for some apparent failures of prediction.”

            link to eis.mdx.ac.uk

          • Kilibob says:

            Sure they can. link to retractionwatch.com

          • Crafter says:

            @ RogueJello very interesting research.
            It reminds me of the first coding courses in my engineering school. At the time I did not think that there was such a separation in 2 groups but it was very clear that many students were entirely unable to write even very basic algorithms. Trying to help them was very frustrating : how do you explain to someone that his algorithm makes no sense if that person is apparently unable to grasp the concept of an algorithm ?
            Disappointingly, I don’t think it factors at all in student orientation. It sounds like something that should be incorporated in tests before letting people waste time on something they are just not really good at.

          • girard says:

            There may be some students who are congenitally incapable of learning programming, just how there are some students who are congenitally incapable of learning reading or mathematics. However, just as with those other subjects, those students are in minority and almost certainly suffer from a specific learning disability. As others have noted, all your cited article indicates is that a specific faulty method of teaching coding to a specific group of students is ineffective.

            I have taken coding courses at the high school and college level, and presently teach coding to middle and high schoolers in an art education context where many of my students aren’t typical “coder” kids. As others have noted in their experiences, in my high school classes, I never enountered a classmate who was completely unable to process the material, and as a teacher of middle and high school students, while I’ve had some students wrestle with the abstraction inherent in coding, I’ve never had a significant portion of students (aside from some of those with diagnosed learning diasbilities like dyslexia or severe ADHD) be completely unable to process the material.

            Your faulty article aside, I did notice people struggle more at the college level, but I think that comes down to other factors: 1.) the material is harder and paced more quickly, so students who pick the stuff up slowly can be quickly overwhlemed (I 5-ed my AP comp sci test in high school, but my first ‘real’ coding class in university kind of kicked my ass), 2.) university professors aren’t teachers by trade, and consequently are often very bad teachers – and this is exacerbated by the enormous lecture-hall class sizes in post-secondary CS classes that make it impossible to address students’ specific learning needs, 3.) college is often seen as ‘trade school’ by many parents and students, and many high-aptitude kids are channeled into CS programs in college because the major is lucrative, NOT because they find it interesting – consequently, many college students taking intro CS classes don’t care enough about the material to excel at it. It’s not that they can’t learn it, but that they won’t.

      • SuddenSight says:

        As someone who first learned to program at a rather young age (middle school) and has since gone on to teach programming (a little bit) I think programming can be taught.

        However, teaching programming at the college level (which is where almost all first-time classes take place) is hard. It’s like trying to teach algebra to a college student when they have never been told what numbers are. Of course some students will fail immediately – and without a strong reason to remain engaged and learn thought processes they’ve never had to know before, why should they bother? To be clear, I am not saying students who fail at programming are somehow less intelligent – simply that programming does not come naturally to anyone, and with such a steep slope to climb in the first couple concepts it is easy to give up.

        I think programming courses in general would see a much better success rate if programming courses were begun earlier in life – middle school or even elementary school. Some states in the US are requiring programming courses for high school now, and I think that is an excellent idea.

    • LionsPhil says:

      Spacechem is parallel programming where some sadist has removed most of your tools and handed you an amount of storage that would shame a PIC.

      • Malcolm says:

        A good analogy. While I enjoyed Spacechem up to a point, it started feeling too much like trying to do my day job with one hand tied behind my back.

        Tempted by Hack n Slash, but will wait for it to be finished.

    • Dare_Wreck says:

      I’m a programmer but could never get into SpaceChem. I tried on two different occasions, too. I’m not sure if that was primarily because the gameplay never gripped me for some reason, that it reminded me too much of doing work, or that, while I’m generally good at puzzle games, this one ended up being too complicated such that I had no fun playing it. (In that latter case, it doesn’t help jumping into a mission partway through the game after having stayed away from the game for a couple months and forgetting how all the game mechanics work).

      I’m a pretty good programmer, too, so I’ve never been able to understand why I couldn’t get into it.

      • Premium User Badge

        Serrit says:

        I’m also a programmer, and similarly started to struggle towards the later stages of SpaceChem. I think it starts to lean a lot more towards structural engineering than programming in the latter parts, relying on identifying re-usable patterns for sub-system-assembly. While I’m a reasonable programmer, I suck at anything more practical like that!

        I did really enjoy the 60-70% of SpaceChem I played though – I suspect I’ll have to do some YouTube learning before going back to finish it off.

    • thecommoncold says:

      Despite SpaceChem having nothing to do with real chemistry, chemical engineering process design helped me understand it more than programming. You have your unit operations (bonders, fusers, etc) and product streams, and the game screen is a big process flow diagram. So I gather it’s a different beast from HnS.

  2. Xocrates says:

    Yeah, once the game opens up the coding side of it, it goes full hog. I’m a programmer (admittedly, not a hugely experient one) and even then I have trouble interpreting all the code. It does not help that soon you’re cross-referencing multiple scripts in search of variables you can change to achieve the intended result.

    The other problem is that often it’s not clear what you’re supposed to do. I took an inordinate amount of time in the “hack the planet” puzzle because I couldn’t figure out what the output was supposed to be, since as far as the debug tool told me, it wasn’t connected to anything.

    As mentioned by Brosepholis, Spacechem is essentially programming as a puzzle, but it works because it goes to great lengths to both abstract the principles, and make them readable. In Hack n’ Slash you either can read code or you’re screwed.

    And I get that that’s the idea, but yeah, like the review mentioned, the difficulty curve spikes far too fast for that to work

    • Nixitur says:

      Interestingly, I’ve had the exact opposite experience when comparing Hack ‘N’ Slash and Spacechem.
      I found Spacechem far too fiddly and I never knew if I did something fundamentally wrong or if it just needed a bit of tweaking. I also felt like the difficulty curve just suddenly turned into a difficulty wall far too quickly.

      I played Hack ‘N’ Slash when it was in Early Access and I always felt in control and appropriately challenged. The code rooms were starting to get tricky, but not too much and they always gave me that pleasant moment where I just got the puzzle. Granted, the final dungeon didn’t exist back then, but I’m excited to try it out.
      Also, John cited the aimlessness as something negative, but I really liked the exploration aspect of the game. I never asked myself the question of “Why am I solving this puzzle?” It was a puzzle. It was there and I was intrigued.

      • Xocrates says:

        Yeah, the final dungeon (or what I assume is the final dungeon, since I didn’t play it early access) may be the biggest culprit. As an example of what I mean, allow me to describe the second room of said dungeon.

        So, this room has a clock that, once triggered, crashes the game within 5 seconds. In order to solve this room you need to hack a door that gives gives you access to the game’s file system, look up the code for this particular room, pick it up, access it, and then search 10 different scripts, many of which reference others, for a way to solve it.

        The solution itself is fairly simple, but finding it can be a small nightmare if you start looking on the wrong scripts

        • wallballs says:

          10 scripts, are you sure? You also want to make the Library seem more complicated than it is.

          You can see the name of the Clock Entity with the hat. If you can’t find a solution within the Entity script, you go to the script for that room.

          Post-post: I guess you were talking about Functions specifically, which is less crazy of a statement

          • Xocrates says:

            Yeah, sorry, I was referring to the functions. Since they appear separately I opted to to call the scripts.

            And It wasn’t my intention to make the library look complicated, only wanted to make clear that you needed to look up the stuff you needed.

    • somnolentsurfer says:

      It was only when I worked out what the output was supposed to be that I was able to solve the ‘hack the planet’ puzzle. I couldn’t for the life of me figure out why it wasn’t displaying, ’cause my code looked fine. Only once I figured out what I was trying to achieve could I see what was wrong.

      Broadly I think John’s criticisms are fair. Certainly the algorithm rooms just don’t work as a mechanic. But I still love the game. Maybe it’ll all change when I try and dig into Act 5 properly later, but so far it’s been just the right amount of challenge. It’s taken me a while, but I’ve solved things just at the point of being about to throw my hands up in the air shouting “I fucking hate programming! How did I ever think this would be fun?” And then felt very clever. The first time I crashed it I genuinely exclaimed with glee.

      Also, I’d argue it’s the best adventure game Double Fine have released this year.

  3. Gog Magog says:

    Well, I dunno.
    On the one hand, I love breaking games a lot (with CheatEngine to begin with, also mod tools if those are available). To see how much I can change either the experience or the actual mechanics, but also to see the fucker squirm.
    It’s a bit like being a sadist – actually, no, it’s exactly like that. The one who is to be victim cannot show enjoyment of the torture you visit upon them, or god forbid, encourage it, because then you get little to no kicks out of it. If the machine is actively telling me to bleed it to death I feel and know I will lose all will to do so the moment I try.

  4. BluePencil says:

    “When the screen becomes filled with its data made visual, text floating above objects”

    Plural “visuals” intended perhaps?

  5. Chorltonwheelie says:

    Worth a tenner to see if John’s thick, mard or godlike genius reviewer.

  6. LionsPhil says:

    So it’s a game about debugging a mysterious, undocumented codebase to make the smallest possible change to get today’s goal done to stop the shouting without the whole thing coming crashing down, and no hope of ever being assigned time to fix it all up properly.

    No thanks, I already have a job.

    • SominiTheCommenter says:

      I’m looking for one, looks like a great way to practice.

    • kevinlondon says:

      This +1. I really wanted to like this game but after spending all day at work dealing with undocumented spaghetti code I just can’t be motivated to play it.

    • bonuswavepilot says:

      All it lacks is a stroppy userbase breaking things and blaming you for it…

  7. Koozer says:

    Any chance of a video? It would be interesting to see some of these puzzles.

  8. Geebs says:

    Do infinite bears shit in the infinite woods?

    • danielfath says:

      Actually no, there is exactly one bear that shits in infinite forest.

      However due to the fact that if you divide one bear with infinite forest, you get exactly zero bears you can see on your average walk-through. That means that any bear you encounter in infinite forest is the product of your deranged imagination.

      • LionsPhil says:

        There are, however, an infinite number of very confused popes.

        • danielfath says:

          On the plus side there is only one g (Graham number) of Elder Gods so while they are incomprehensibly more numerous than bears, they still don’t appear. Unless you count your nightmares.

    • Phasma Felis says:

      I’m not at all sure that Horace can shit. I mean, he doesn’t have a back end. The remains of his Christmas feasts wind through his endless intestines for eternity.

      Makes the Sarlacc look positively speedy.

  9. SurprisedMan says:

    Interesting review! I’ve only played the early access version, and for that I definitely came down on the side of always wanting to work my way through the puzzles and finding that to be motivation enough to continue. I was excited by the possibilities hinted at before the final dungeon section, so I’m definitely going to see this one through.

    But I can definitely see how the game might frustrate someone who was maybe less willing to dive into the hacky-nature of it and really treat it as a game you’re trying to actually break with in-game tools which can be used in a number of ways, rather than a series of specific and directed puzzles to be solved. I think the SpaceChem analogy is a good one, there – that’s another game I loved for its kind of freeform, undirected approach to puzzle solving.

    • ersetzen says:

      I finished the early access version pretty quickly and then poured some time in to enable some form of inventory hacking in game and by extension using the decompiler on game files by name.
      The now added part of the game does pretty much that which is really interesting at first. At least to the point I got it was pretty straight forward ‘search the right value’ stuff, though. With slightly increasing counter measures.

      If something like that is up your ally it is fairly entertaining, though.

  10. Crafter says:

    I have been playing the first couple of hours of the game. I should probably point out that I am a software engineer, and that I am very familiar with most languages of the C family, even though I never manipulated LUA.
    So far, the experience has been mostly very enjoyable. There are some points in the game where I think the game design fails the player and does not give him the information he needs :
    – when you start traveling, you pretty much have no idea of where you are going
    – some puzzles really lack a context. I had to explore a lot in order to know that I was really utterly trapped where I was and had to complete the puzzle in front of me instead of coming back to it later with better tools.
    – It looks like you can easily miss somes artifacts, including the one that lets you hack your own speed. It is a shame since the default walking speed is excruciatingly slow.

    I have just arrived to the part where the pseudo coding puzzles start. Sadly, I don’t think they are well designed from a discoverability point of view. Even though I am familiar with software flows, I am still unsure of the behavior of these and most of the ones I have seen look like they take make things more complicated than they should be.

  11. Xmayro says:

    That’s cool and all but when the hell are they finishing Broken Age episode 2????????????