A personal Journey

Never did my girlfriend realize that her companion was another human player. In one situation the stranger repeatedly ran up a particularly large dune and surfed down its slope. My girlfriend watched in confusion: “Why is it doing that? Well whatever.”. Moments later both of them were surfing down the dune together, crisscrossing each others courses. Their scarves becoming entwined in each other, their clothes lighting up in bright colors when they touched each other.

I had invited my girlfriend to play Journey on my PS3. Consciously I had not told her anything about the game in advance. Especially not about its unusual multiplayer component. Thanks to my girlfriend not being a gamer she had not been spoiled by any previews or trailers. Actually there had been only one game in recent years that she had really played (Heavy Rain).

And so unsurprisingly she had some difficulties handling the camera, handling the basic movement mechanics and sometimes even recognizing the path that the game was laying out for her. I had forced myself not to help her and near the beginning of the game she struggled for ten minutes and managed to reach the level exit only by leaving behind the game play area, pushing against the wind barrier, walking over a narrow ledge in the building geometry and letting herself fall down in front of the exit portal, a solution which I’m sure had not been intended by the level designers.

So I was glad that after 20 minutes she finally found a companion. Another entity in this beautiful but forsaken world. They greeted each other meeting in the center of the play area, curiously running around each other and exchanging probing chimes. The two continued to venture on and it was the beginning of a fascinating companionship that developed between the two.

The companion guided my girlfriend through the journey and even though obviously much more skilled and acquainted with the game, it would display an incredible amount of patience. When my girlfriend would fall down from a platform once more, it would not abandon her, but follow her up and motivate her with some chimes to try once more. It guided her through the light areas and it guided her through the dark and dangerous territories, where surreal flying creatures would try to to tear them apart.

In full honesty, I took over the controls in the last half hour. For once because I had not played the game myself to this area, but even more importantly because I had grown so affectionate of our companion that I did not want to risk losing it by stumbling in the wrong moment. The closer we got to the mountain, the harder the travel became, to the point where every time our companion would sit down for a moment, we feared that it would not stand up again. When we were almost freezing to death, my girlfriend would urge me to get closer to my companion and warm it up by touching it. Our previously majestic and playful long scarves, had been reduced to mere colorless stubs, reflecting our inner desperate state.

When our journey ended after about 90 minutes it was in an immensely cathartic moment, in a way that no game has ever made me feel before. It is hard to explain how the game evokes emotions. How masterfully it plays with the feeling of connectedness. Is it the abstract characters that allow to relay so much into them? Is it the fact that they can mainly only communicate through action? Is it discovering the hidden wall images showing two companions on a predestined travel? Is it because of how lonely the world feels, you’re happy to share the burden of your dangerous travel with somebody?

While the credits were rolling, I finally told my girlfriend that our companion had been a human player all along. Every time you fell, it was a player that came to save you. Every time you chimed, it was a player that responded, replicating the pattern that you just had signaled. Every time you danced around each other, it had been another player that had moved in unison with you. It might seem crazy, but it was a truly magical moment that actually caused us to tear up. The game had played with our feelings too perfectly.

As a game developer myself I feel inclined to analyze how the game did this exactly. But as a player, I don’t care. All I need to know is that this game made us care and that it touched us and offered a more personal experience than anything that I have played in over 20 years. It makes me proud to be in game development and it reassures me of the power of this medium, and that some of us have bet their career on. For me it makes this game a pinnacle of video game history.

PS: This is what I received after sending a thank you note to our companion.

jMemorize on github

I don’t have a lot of experience with github, but I really love the idea of having patch and fork management integrated in a hosted code management site. During my active development of jMemorize I worked mostly alone, one reason for this being how much hassle it was to handle code submissions by other people. Either I would have manually wrestle with patch files sent over email or the patch board, or I would have to give away direct SVN access to the official repository. Two options which never felt super comfortable.

I haven’t released a new version for jMemorize for a long time, but none the less I uploaded the code for version 1.3.0 to github. You can find the source code on github at

Feel free to fork away, browse the code and maybe even to submit patches.

Good Habits Android App

GoodHabits is a new Android app that I’ve been working on.  Its kinda like a friendly coach. Its goal is to help you adapt good habits by motivating you to maintaing long running streaks of repeated uses. Let’s say you feel great after just coming back from jogging and realize that you want to do this more often. You log the habit usage in the app and it will then keep track of your stats and high scores in a playful manner.

Assuming you logged the activity 3 x time, GoodHabits will tell you: “Great! 3 is your highscore. Can you also go 5 times?”. Once you managed to go 5 times, it will start pressing you to beat 10 times and so on, always making sure that you have a new goal in sight. More importantly though it picks up your usage pattern. Let’s say you always go jogging on Tuesdays, the app will recognize this and start maintaining a separate high score just for this pattern and try to motivate you to continue with that streak. Should you fail to maintain your streak, GoodHabits will motivate you to pick up the pattern again by showing you how far you had come previously.

You can manage as many habits as you like. When you start the app you will always be presented with an overview of all habits that you are tracking. The list is sorted in a way that the most relevant habits for you right now are at the top. So when you just logged a habit use, the habit moves out of view towards the bottom of the list, since you probably don’t want to repeat it until at least the next day.

The app was born out of my personal habit forming system that I’ve been using in different variations for about three years now. The basic idea is that the app does its job without you having to set up complex time patterns. It automatically detects what you are already doing and helps you in continuing that activity, so that it can become a long running habit at some point. And it does this in a friendly manner, emphasizing your achievements, instead of complaining about failed goals.

This is just a first iteration of the app. Please let me know what you think about the idea. For now its just an experiment to play around some more in the area of life tracking and habit forming, but I have quite a few ideas, so look forward to new versions. I hope you enjoy the app. You can now find it on the android market.