My dad is a programmer and when I was six, I went up to him and said “Daddy, teach me how to program!”. “Sure,” he said, and left the room. He came back momentarily and gave me the Turbo Pascal 3.0 manual. “Here you go, this will teach you.” I guess it’s a miracle at that age that I self taught myself how to print “hello world” before giving up. Years later I would dabble in Visual Basic and Inform 4.0 but my life as a programmer was not meant to be, unless you count copying code into a TI calculator.
When else Heart.break() came out, it looked like a game that could teach me how to program, even just a little bit. The game sets itself up as an adventure-ish sort of game but the meat and the bones is the coding. Early in the game, you get a device which is able to hack things to change their code, since in this world, things are not made up of atoms, but of code. This means you can use this device to change how light fixtures operate, how doors work, and eventually go online and teleport yourself. If you are really good, you can even break the game! The programming language (a custom one by the developer) is called Språk (Swedish for “language”) and is based on BASIC.
Else Heart.break() does a great job easing you into both its story and coding part. You start off as a soda salesman and get shipped to the village of Dorisburg, where everything is based on code but the city council keep the ability to modify it for themselves. Structurally, the game has a set, semi-linear narrative placed in an open ended world. While the game rewards exploring, problems arise when you can’t find the trigger for the next part of the story. In an old school fashion, it is almost recommended to play this game with a notepad to take down the names of places and people, as information will not always be delivered twice.
This made me feel that I missed certain triggers and thus conversations, with some of the secondary characters. While it didn’t detract from my enjoyment of the game or the completion of it, there was one part where it really bothered me. Shortly after getting the ability to code, you realize the handyman at the hotel you are staying at knows a few tricks. Turns out he is willing to teach you how to code, and this is perhaps my favorite part of the game. The tutorial starts by having you place functions onto an object and observe the changes you made. It gently teaches you about loops, if…then statements, functions and syntax. Initially there are about 5 different tutorials he will take you through, before saying to find him later. I ran off and continued my adventure, changing street light colors and hacking doors. A few hours later, after running into some objects with weird code, I remembered that he had more things to teach me. But when I found him, he had nothing to say. I don’t know if it is true, but it felt as though I had progressed far enough in the main story that the game decided I didn’t need the tutorials.
There are pieces of a Sprak manual you can collect in the game that teach you a little bit of how everything works but that didn’t really help me. When I was in high school and decided to write a piece of interactive fiction in Inform, i needed to see the code and the result of the code after compiling. I didn’t understand how things worked unless I was able to physically type in the code (even if I was copying it), see how it acted in the game, and then be able to break it. It was only when I could make changes and see how they affected the end result that I was able to grasp how things worked. That project went belly-up as I was more interested in the design theory of games rather than programming them. In the end though, I had produced a short piece of IF with a branching path, and the first person who played it broke it.
My life as a programmer was pretty hopeless from the start, and else Heart.break() did not help me but not for lack of trying. The story part is silly and fun, but the strength of the game lies in playing with code. I had a lot of fun trying my simple hacking skills changing some of the objects and scenery in the game, although I could tell that there were so much more I could do if I ever figured out how. (For example, one user was able to put the game’s main antagonist into his pocket.) Which is a shame, because I feel like some previous programming knowledge would make me appreciate the game even more. I feel like it is a game designed to teach how to code but only does it halfheartedly, and rewards those that already know how to code or are learning from sources outside the game.
That being said, I really appreciate else Heart.break() for trying to make learning how to code fun. Particularly because it is complicated. I wish more games attempted to do something like this because an entertaining and effective educational game is something which no one has really figured out yet.
Speak Your Mind