The world of Else Heart.Break() is not like our own. In this strange place, bits have replaced atoms, allowing people to hack into, and alter, the very fabric of reality. With the right tools, you can dive into almost any object’s code, edit it, and change its behaviour—to solve problems, cause mischief, or just for fun.

It’s also a game about love, friendship, and finding your place in the world—and it all starts with a chance encounter with a girl in a bar. You, Sebastian, arrive in the city of Dorisburg to work as a salesman for the Wellspring soda company, and you feel completely lost. Anyone who’s ever left home and moved to a new city will know the feeling of walking unfamiliar streets and being surrounded by strangers.

In these opening hours, Else Heart.Break() feels like a fairly traditional, albeit non-linear, point-and-click adventure. You check in at the rundown Devotchka hotel, meet a fellow Wellspring employee to learn about your new job, and explore the city. There’s no journal or map telling you where to go or what your next objective is: you have to figure out what to do by yourself.

The lack of hand-holding can be bewildering at first—not helped by the confusing layout of the city—but you soon settle into the game’s unusual rhythm. Over time, the streets become more familiar. Your relationship with Dorisburg mirrors Sebastian’s: an alien place that slowly but surely begins to feel like home. You sell soda, make friends, drink beer, hang out, and go to bed when it gets dark.

Dorisburg is a sprawling, intricate city, and almost every building can be entered and explored. The geometry of its cardboard dioramas is simple, but artful use of light and shadow—and vivid, psychedelic textures—bring them to life. The game brilliantly captures contemporary city life, and has some of the best art direction I’ve ever seen in a game. You’ll want to explore every corner of it.

Then you meet Pixie, and everything changes. You bump into her in a bar and she excitedly welcomes you to Dorisburg, inviting you to a party the following night. There’s a story in Else Heart.Break(), with multiple endings, and meeting Pixie—who Sebastian immediately becomes infatuated with—sets it in motion. But there’s no pressure to reach the end, and you can play at your own pace.

Soon after meeting Pixie, you learn about hacking, and this is where Else Heart.Break() really comes into its own. Equip a device called a modifier and a new ‘hack’ option appears in the context menu when you hover over an object. Click on pretty much anything and you’ll see the code that decides how the object behaves, which can be edited to make it do different things. It sounds daunting, but you’ll be surprised how easy it is to get to grips with.

The game’s language, Språk, is based on BASIC, but you don’t have to know anything about programming to enjoy this side of the game. I’ve never coded anything in my life, and was constantly surprising myself by writing code that didn’t immediately make the object I was hacking spew smoke—a cute visual indicator that your code's full of errors. Solving puzzles through hacking is super satisfying, and the flexibility of the language means there are always multiple solutions. I enjoyed looking online after solving one and seeing how others had done it.

There are clear, well-written tutorials, but mostly I got to grips with Språk by looking at, and learning from, existing code. You eventually reach a point where limitations that bugged you earlier in the game can suddenly be solved instantly through hacking. Feeling tired? Don’t bother running back to the hotel to sleep: tweak the code in a glass of water to reduce your sleepiness, then drink it. Need to be on the other side of town? Hack a nearby door to transport you directly there. It’s almost as if these intrusive systems exist solely to make players invent workarounds.

Sebastian eventually starts working for a group of hackers fighting against the Ministry, a sinister government agency that's cracking down on hacking and stripping the city of its personality. To join their ranks you need to complete a series of hacking challenges, which serve as more in-depth tutorials. Then, if you pass and become a member, you're sent on missions that are real tests of your coding prowess. But the solution to a problem is always in the environment somewhere: either on floppy disks scattered around the place or by studying code and reverse-engineering it.

By the end I’d grown attached to Dorisburg and its eccentric residents. Else Heart.Break() has a lot of personality, with funny, idiosyncratic dialogue, pop culture references that don’t feel forced, superb music, and likeable characters. When you’re lost and can’t figure out what to do next, the vague, open-ended structure can feel a little obtuse. The camera is flaky, with bits of scenery occasionally obscuring your view. And some of the coding puzzles will prove challenging for amateurs.

But get past these problems and you’ll find a stylish, original game that combines elements of point-and-click adventures, open-world games, and RPGs in a unique, exciting way. It gives you the power to explore, rewrite, and experiment with the systems that govern the game, and has spawned a community of enthusiastic coders who are finding new ways to use Språk to do amazing things. You might feel confused at first, but seriously, stick with it.