It was three o’clock in the afternoon when the drugs began to wear off. I was sitting on a bench waiting for the factory workers to leave the building behind me so I could sneak in and steal some important files. The drug in question was a nameless multicoloured square that speeds up time. I took it so I could break in sooner but I had accidentally clicked on the screen, interrupting the effects. I looked in my bag for more drugs. Nothing. But I did have a cigarette. What if…?
I got out the cigarette and hacked it. I typed ‘FastForward()’ into its code and then took a quick puff. It worked. Seagulls started flying around me in timelapse trails, rain came and went in seconds, the sun went down, and the workers scuttled out of the factory one by one. It was 7.30pm. Time to get to work.
Else Heart.Break() [official site] is a remarkable game. It opens as a restrained point and click adventure game set in a colourful Scandi future and blossoms into an open-ended cyberpunk Bildungsroman where you can hack coffee and cinnamon buns so they make you more attractive. If you’re already interested, please be careful. I’m going to skip on story spoilers as much as I can but so much of the game involves creative problem solving that you will miss out on some of the magic if you read the solutions I’ve come up with. Maybe you should read this after playing.
Still here? Okay. Let’s talk about Dorisburg. This is the city you find yourself landing in near the start of the game. My first night in Dorisburg I spent looking for some cans of beer to share with the homeless man on the bench outside my hotel. But since the entire city is open to you right away you can do pretty much whatever you want. There’s a popular cafe, a park, a casino on a boat, shops, apartments. The only idea of what you should do comes from the game’s opening phone call. You are employed by an ailing soda company to sell fizzy drinks. Apart from this compass needle of plot, the city is yours to explore. And what a city. Dorisburg is built like an intricate piece of clockwork. Characters go from place to place according to their individual schedule. They’ll go to work, head to the cafe, then off to a house party. I always knew, for example, that my supervisor at the soda job would be outside the nightclub smoking every night at about 10pm. In the early hours of the morning, he would chill out on a bench in the plaza.
None of this is new to games, of course, but the mechanical nature of it is important for reasons you’ll discover later. And it recreates a certain nostalgia for old games when “emergent gameplay” (yuck) meant knowing what time the shops would close. Here, the freedom to explore this mechanical city is probably one of the game’s greatest strengths, as well as its earliest problem. You can easily lose sight of what you need to do to move the story along, and although a map can be found early on, it is not very helpful in getting yourself oriented. It was probably the three hour mark when I finally joined the mysterious group of hacktivists and coders you are meant to associate with. But again, part of this is because I spent so much time wandering around, going to the nightclub ‘Yvonne’ and getting drunk with my homeless friend.
Messing around does give you a clue about upcoming events, however. There was a moment early on, for instance, when my supervisor showed me the computer outside the soda storeroom. I looked at it and realised that the company wanted the sales people (ie. me) to record all sales as we go. I decided to cook the books and typed in that I had already sold “$1,000,000” worth of soda. Immediately, my credit balance reeled into negative figures. I panicked and tried to type in “-2000000” to the same computer, thinking this would fix it and leave me a million dollars up. But it only made things worse. The soda company obviously expected me to make the sales and collect the money BEFORE registering them, taking the cash directly from my wallet. In the end, I was three million dollars in debt and still a soda salesman.
In my entire career as a soda man, I only sold one can. But Heart.Break is not really a game about selling fizzypop. It is a game about becoming a hacker to impress a girl. You meet Pixie in the nightclub and arrange to go to a gig with her the next day. Reportedly, this is a fun gig. I say “reportedly” because I passed out blind drunk two hours before the show, in an alleyway outside the hacker group’s secret underground HQ.
Later, I was given my first “modifier” by one of the city’s more brusque denizens. At the risk of sounding like a 4channer, this is the red pill moment. Get a modifier and the true scale of the world reveals itself and the game flips from being an adventure game with romantic undertones to being a mind-expanding trip through code. Almost every usable item is now hackable. And I do not mean in a gimmicky way. I mean there exists a whole complex and intricate programming language called SPRAK (based on BASIC) that governs the effects and properties of each object.
For example, the first thing I inspected was a trash can, sitting under a cherry blossom. The code for this read that if any floppy disks or keys were thrown in, they should be transported to “MonadsApartment”, wherever the hell that was. Otherwise, the bin would “Delete()” it. I realised I could reword this code to make it so that any floppy or key thrown in would be transported to MY hotel room, or anywhere else I wanted, so long as I knew the correct name of the place.
Unfortunately, I did not know the names of any places. This is one of the game’s challenges. It becomes about learning the vocabulary of SPRAK and Dorisburg. But even if you are not too hot at code, the game is generous with what can be accomplished. I went back to the soda company’s sales computer with my new found superpowers and hacked it. By deleting a single minus symbol from the code I figured out a way to credit my account with the three million dollars I needed to escape my horrific overdraft. I was back in the green! A positive balance of $36!
So you don’t need to be able to write whole “sentences” to have fun. Most of the game allows you to saunter through just modifying bits of existing code, or copying and pasting other code on the floppy disks strewn across the city. Still, the sheer possibility encourages you to be playful. I hacked buns, beer, coffee, flowers, turtles. Once, I hacked a glass of liqueur so that it would make me smell great AND make me impossibly drunk. Then I thought: why stop there? I added the lines: ‘Charisma(100)’, and ‘Say(“Wonderful!”)’. My thinking behind this last hack was that drinking the liqueur would make my character say how refreshing it was. But obviously, the code pertains to the object itself. So now I had this new superdrink that not only made me beautiful, fragrant and drunk, but also exclaimed “Wonderful!” anytime I drank from it.
But this isn’t the limit of SPRAK’s joy. It’s just the start. Apart from the cigarette I hacked to bend time to my will, I also hacked doors so they would take me to places streets away. I hacked together a device that revealed a person’s name and how charismatic they were. I hacked innumerable beers so that they gave me energy to run, instead of making me drunk. And I threw together an extremely inelegant program that allowed me to teleport from one end of the city to another through any compatible machine using the dubious ‘Slurp()’ function. I pasted this code on a floppy disk, and carried it around with me, so I could copy it whenever I needed to. It was garbage code, but it worked and it was mine.
Yet no code I whipped up or mutilated made me as happy as the code I wrote on my hotel room key. Each locked door in the game has a keycode which can be (as far as I know) any range of numbers, from a single digit to tens of digits. But lots of them seemed to be five digit codes or less. I began hacking my hotel room key and instead of having it just operate my own door’s code – ‘Toggle(1111)’ – I concocted a script that cycled through 99999 combinations whenever it was used on a door, then cracked it open if it landed the correct keycode. I tried it out on the hotel room next to me. Click! It worked. I had made a cracker that could bruteforce almost any door. At this point, I felt like Edward fucking Snowden.
Obviously, I am in love with Heart.Break(). But it isn’t without its pains. The camera, which takes a quasi-isometric position, is often a jerk. You can change the angle around and zoom in and out with the WASD keys, but buildings and objects will still sometimes get in the way from all angles. It will also periodically swing down to a lower angle during story moments and then forget to swing back up so you can see more clearly.
The story and dialogue itself is also super simplistic. I actually appreciated this more and more as the game went on. The whole thing had a flavour of Final Fantasy about it – you join a band of activists in an unfamiliar city, fall in love with one of them and fight against a mysterious and dodgy regime. At the beginning, the romance angle made me tut. It is a pet peeve of mine when games try to force a very particular romance on you when the game is otherwise so open-ended. It is obvious and necessary that your character is trying to find Pixie because he fancies her, because all your conversation options are about how you “have to find her!” or “just need to see her again”. And she rightly points out, when you do find her, that this is the behaviour of a creepy stalker.
Apart from that, I quickly just let the story’s JRPGish simplicity take hold. I learned to love all the fellow hacktivists, and all their heartrendingly cool lives. Their side gigs as DJs, the way they fell for each other, the way they always had a house party after an illegal break-in. And all this hipster pathos achieved with the tiniest amount of dialogue and some cool neon clothes.
Here’s a real-life side note. When I was 16 years old, a teacher told me to work at something I loved. I loved videogames, that was easy to figure out. And I was good at both computing and English. So there appeared, somewhat fittingly, a binary choice to make. I could program games, or I could write about them. You can see plainly what I decided to do. else Heart.Break() is a game that makes me regret that decision.
But it also glows with genuine warmth and encouragement. At a late stage of the game, I would find a floppy with no code on it, just some comments about programming and why people should not be afraid to try it. A micro-treatise on coding. This simple floppy felt to me like the real ‘heart’ of the game. else Heart.Break() helps you to see programming for the magic it is. It may have made me feel I had neglected an entire realm of the world. But it also showed me that it’s never too late to learn.