Rogue One? Struggling One

I just watched Rogue One, and here are my unfiltered first impressions. There will be spoilers, tread carefully!

Rogue One is a deeply flawed movie, because it doesn't manage to present the motivation of its characters in a comprehensible way. I have no idea who Jyn Erso is or why she does anything in the movie. Felicity Jones is doing her best, but the script just doesn't offer her anything to hold on to. This might be related to the reshoots. According to this article on Slashfilm, Jyn was supposed to be less likable and more of a badass. I would've preferred that. It would've also made a lot more sense, given her (limited) backstory. They basically neutered a potentially interesting character to appeal to more people. I don't like when that happens, but that's the way of the mega movie business. The story felt more like a string of events, held together solely by the premise: A group of rebels capture the plans for the Death Star. The third act is the strongest, and actually enhances A New Hope, which makes up for a lot of its flaws. There's no other way to say it: Vader is wasted. I've seen people go on about how badass he is in this one, and I just don't see it. The lines are weak, the delivery is sloppy, and his presence has never felt so lacking. He is closer to the A New Hope Vader, which I just can't go back to after seeing (not all, but) enough Clone Wars and reading Gillen & Larroca's Darth Vader comic series. He can be interesting and layered, if you don't ignore the Ani of it all. CG-Tarkin is lost in the uncanny valley. It's a commendable effort, but it's just not there yet. I had fun spotting all the easter eggs. I love the fact that CG + Practical Effects is what Star Wars is about now. What the hell was Forrest Whittaker's character supposed to achieve in this movie? Seriously. What was he doing there? The droid was the most human character in the whole thing, ironically enough. I could go on and on. I think the most frustrating realization is that the movie is so close to being good. The set pieces are in place, the chemistry between the actors is there, the stakes are sufficiently raised, and it's very pretty to look at. Too bad it doesn't deliver in the way I hoped it would. It's death by a thousand cuts and I hope Disney learns the right lessons from this one and that the next non-saga film is better.

Glühwein Adventure

I've had some Glühwein over the weekend. It was pre-planned and all, an exception to my 'no-alcohol' rule. It was my first time drinking in four months, and I don't think I will repeat it soon (leaving room for an unhealthy, emotional Christmas or pre-Christmas meltdown here). It was fun, for starters. I didn't drink much, so I didn't have to deal with a hangover or anything. I didn't embarrass myself, I didn't insult anyone. But! I was very cranky the next day. This may sound silly to you, but it's not. I lash out at the people around me (i.e. my girlfriend) and turn what could be a relaxing Sunday morning into a bickerfest. It took me until the late afternoon to get back to being normal. This is not good.

I have a baseline of anxiety running all the time, and alcohol only amplifies that. People tend to ascribe bad behaviour to alcohol (I was sooo drunk), but that's not correct. Alcohol isn't responsible for your actions, you are. Alcohol is a drug that helps you lose inhibitions and be more sociable, but it's still you underneath. I am anxious and irritable all the time. Drinking and then coming down from alcohol just puts a magnifying glass on that.

The Imposter's Handbook Mini-Review

I am not just a self-taught programmer, I'm a self-taught everything. I dropped out of school early and only later got the equivalent of a high school degree (A MSA, Mittlerer Schulabschluss), because that was one of the requirements of living alone. I don't regret doing it this way, because I now have a fairly unique biography, but Imposter's Syndrome is with me, always.

I first saw the Imposter's Handbook by Rob Conery flash across my twitter stream a few months ago and I thought "This sounds great! A book for people like me." I picked it up two weeks ago and worked my way through it. The big takeaway: I learned more about all this stuff than I thought I did over the last four years and I still have tons to learn. This book made me feel energized to do more work, to explore further. It's easy to follow along and he gives you good pointers for further research. For instance, I really have to brush up on all that mathy stuff. If I could time travel and give my younger self a piece of advise it would be to pick up a math book alongside the C++ books I was devouring when I was in my late teens.

There was one moment I had to laugh out loud; when I finally understood Dependency Injection, or rather when I made the connection between the thing I was doing all the time and a term I heard thrown around a lot, but was hazy on. This is a larger problem in the tech sphere, of course: we are not as good at explaining things as we could be. A lot of the time explanations are too technical and detailed. Yes, computer science is a complex field, but I feel like we could do a better job at picking the right abstraction if we want to open it up to more people. We need new approaches and viewpoints to move the state of the art forward and The Imposter's Handbook is a step in that direction. It's still rooted in the traditions, but he doesn't pretend this is some arcane magic only a select few are qualified to learn.

This Is On Us

White people. This is on us.
White men. This is especially on us.

Every time we don't speak up over a racist remark because we don't want to "ruin" Christmas.
Every time we don't push back on sexist behavior because "it was just a joke".
Every time we equate being gay, transgender, or a woman with weakness.
Every time we assume being black, latino, or asian means being less capable.
Every time we use someone else’s identity in a derogatory way and excuse it with “it wasn’t meant to be mean”.
Every time we don't believe a rape victim because "she's just doing it for the attention".
Every time we are more concerned about the reputation of the perpetrator than the wellbeing of the victim.
Every time we tell our boys that "men don't cry".
Every time we tell our girls to be “pretty” or “supportive”.
Every time we invoke meritocracy and not acknowledge structural problems.
Every time we pretend that racism, misogyny, and bigotry are binary choices and not curves we’re all on.
Every time we get defensive about our conduct by saying “all lives matter”, “not all men”, “I’m just joking”, or simply “I’m a good guy”.

White people. This is on us.

We embolden hate. We marginalize. We oppress. This is us. We did this. Not just the US election. Brexit. Marine Le Pen. AFD. The refugee crisis. The Alt-Right. Gamergate. Online harassment.

White people. This is on us.

It is on us to fix our behavior.
It is on us to reflect about the choices we make.
It is on us to think about what messages we send with our words.
It is on us to think about what we do with our our actions.
It is on us to think about how we hurt everyone because we feel our unearned privileges eroding.
It is on us to become kinder, more inclusive people.
It is on us to reject white supremacy.
It is on us to reject sexism.
It is on us to reject bigotry.
It is on us to reject hate.

White people. This is on us.

WILD SAM! Prelude

"Expect the first post with more details some time this week." One of these days I will learn that I shouldn't promise to type words at specific dates. Alas, this is not that time. Moving on. I promised I would elaborate further on my plans for that bigger game I'm making now and here it is. The Plan. (All of this might change at a moments notice, so take it with a giant bowl of salt. Like, industry-size bowl. I've never done anything like this before and there are a hundred of things that could go wrong before I get from nothing to finished game.)


A bored radio DJ kicks Satan out of hell, and starts killing off pop stars to make death more interesting. You have to save the music to save the world!

I had the basic idea years ago (that bit about killing off pop stars might have been added later); it actually started out as a writing project. I was still trying to write movie scripts (silly me) and it was one of those stupid ideas that come to me after doing a long shift at work. This one stuck. I wrote a few pages and an outline and then abandoned it when I realized that it was too ambitious for a no budget film. My mind is a very visual place and the first glimpse of the idea was a specific sequence that came to me while I was listening to ABBAs 'Take A Chance On Me' for two hours on repeat. I think there is a melancholy underlying ABBAs music that isn't really appreciated. That is the mood I was going for: Sad pop perfection. I realized that it wasn't something I would be able to translate to film, so I shelved the idea. Fast forward a few years and I'm making games, where everything is a special effect and budget concerns are completely different.

I've stated previously that the game after this one is about my past and that this will be a silly horror comedy, which is technically true. But WILD SAM! is also about my past, only in a less overt way. I'm not trying to illustrate where I grew up, or show you what it was like to think I'm worthless. It's a more positive game, a game I need to make before going down that path. At its core it's about my feelings about art in general, and music in particular. The game won't feature said music, mostly for monetary reason (There is a version of this game that would literally cost tens of thousands of Euros in licensing fees alone. I'm not making that game.), but it will be heavily influenced by it. I have compiled a list of songs (Apple Music, Spotify) that correspond to sections in the game and I expect that list to grow in the future. (I'm doing my version of Phonogram, basically.)

Phew. 'That sounds simple enough', one might say (one who might have very little experience with software development). But what are the actual steps I'm taking from here on out? These:

  1. Develop WILD SAM! in my spare time.
  2. Write about it while doing so. Here, but also cross post on other platforms.
  3. Release a demo version some time next year.
  4. Gather feedback and refine the game.
  5. Release the full game by Summer 2018.
  6. Take the proceeds and put it towards the next game.

As it stands now, and again this is subject to change, I won't be doing a kickstarter. I think crowd funding is a fantastic tool, but it's most effective if you're doing something unique, or have a built-in fanbase. I'm making a retro game in 2016 and have a handful of friends. So I think my best shot is to self-fund for the time being, at least until I have showed something playable to people and they go bananas and want to throw money at me. The good thing is that I have a lot of freedom in my current job to pursue things like this. It's a position of privilige I have come to appreciate and don't take for granted. It's the first time in my life that I have some semblance of security, which enables me to do it this way. My next meal won't depend on a 2D horror comedy game, which means I can concentrate on making it good, rather than just finishing it as fast as possible. I can guarantee you, whoever tells you that an artist has to "suffer" or be "poor" to create real art, has neither suffered or been poor in their entire life. Being poor means your first priority is survival and that is the most crippling thing to happen to your creativity. Don't believe that nonsense. Always make sure that your basic needs are taken care of first.

Right. This should suffice as a first log entry. I'm off to learn about resource management now. I hear that might be important for game engines...

Rogue Demon Hunter and What Comes Next

Rogue Demon Hunter (Windows, Linux & macOS) will be the last game I'll release for a while. Not because I'm done making games, but because I'm just getting started.

Six months ago, I set myself a goal: Make one game every month. Apart from September (where I made a level editor which will come in handy for the next project), I did exactly that. They are of varying quality, but I learned something from every game. This entry for the GBJAM taught me a lot. It was the first game where I fully committed to the schedule I need to maintain to make a bigger game whilst having a full-time job. I spend a lot of evenings and weekends writing code, drawing sprites, or hitting keys on a virtual synthesizer. I didn't cram everything into a two day marathon, which I had done with previous games. It was a different, but rewarding experience. I felt very good about doing it, even though it's a strain on my social life. But I don't see any other way. I want to spend more time making games, and that time has to come from somewhere.

I had two very specific games in mind when I embarked on this journey. I knew that both of them would be more complex than what I was capable of building back then, which is why I made these smaller games first. They were test runs, to see if I could keep a schedule, expand in scope, etc.

One of the games I needed to make is about my early life, and one is a 2D horror comedy. I am now confident enough to make that horror game. I will update you as things keep happening. Who knows, I might even give this live building on twitch a go (still not really familiar with that whole scene). Expect the first post with more details some time this week. For now I will go back to playing Mafia III, a game I do enjoy quite a bit, despite its many flaws.

Level Editing

I'm always fascinated to hear about people's introduction to their profession. What makes someone think about plumbing or dentistry as something they'd like to do for the rest of their life? How exactly does that process work? I'm especially curious about creative people. At some point, Stanley Kubrick must've said to himself: "How did this thing get made? I need to find out and do it myself." Same goes for Jack Kirby or Stephen King. With films, or books, you have the benefit of a finite set of skills you can choose from. Sure, the tools get more sophisticated over time, but when it comes down to it, making movies hasn't changed much since its inception*. Game development is different. Tools and ways to create the end product rapidly change. Developers that grew up even just five years apart might have vastly different experiences learning how to make games. Thirty years ago, people were typing assembler into a prompt, hoping that there wasn't a typo along the way. Fifteen years ago, people used the tools game developers shipped with their games to mod them. Today, young people can learn how games work with Minecraft and youtube, build their first bigger prototypes (or entire games!) in GameMaker, and ship a game that looks not noticeably worse than most things from established publishers with Unity.

I discovered my interest in game making at the height of game modding. Unreal Tournament, Morrowind, Counter-Strike: They all had a level editor built-in, or easily accesible. You were given a set of tools that would allow you to enrich the gaming experience with your own personality. I'm trying to focus on good memories of my childhood, and that is one. That's why it's particularly exciting for me to write my first level editor right now. In all the games I've made so far, I've been writing out the level design (if you can call it that) manually. It's a lot of lines that look like this:

x: 200 y 150 t: 4

x: 250 y 180 t: 2

That works with two or three very short levels, but it is tedious, hard to read, and error prone. So this month I sat down and worked out how to create a visual level editor. I basically started with the same template I use for my games and worked my way from there.

It's very basic in functionality and I haven't done anything to pretty it up, because it will only ever be used by me. These games I'm doing now are not meant to be finished products, but rather the building blocks for my future projects. I make stuff to learn how to make better stuff. It's an iterative process. This level editor is a vital part of that. When I'll release my first for-profit game some time in the future, it will ship with a level editor. Not just because it will make my work easier, but because it's what got me into making games. It's what I remember most about Counter-Strike: spending hours and hours creating my school in-game.**

And it's not just about satisfying my nostalgia, either. It's about making sure that when someone in the future starts playing that hypothetical game, and feels the urge to do something similar themselves, that the door is wide open for them, and we all get to enjoy many games for years to come.

* What has changed the most is access. Twenty years ago making a movie was prohibitively expensive, now kids with second hand phones can shoot something that looks reasonably well.

** Yes, I did that. The map was never seen by anyone, because I changed schools before I was finished. I would post it now, but it doesn't exist anymore. The game was on a hard drive that I loaned someone in exchange for shelter and it's gone now. Same goes for everything from that period, obviously.

The Value of Books, Chapter One

I'm a book learner. When I first learned to program, it was through books. Those books are now long gone, lost in the great purges (that time I was technically homeless for a month).

When I started to get back into programming I had very little money, so I did what everyone tells you to do, and cobbled together knowledge from online sources. A bit of stackoverflow here, a few things in the official iOS docs over there (remember, I started out wanting to make a notes app for iPhone). It was a start and it worked out pretty well for a few years. Then I wanted to get into games programming and relearn C++.

The thing is, I could've continued on the cobbling path. It's true what they say: Anything you want to learn can be found on the internet. But for me the operating word in that sentence is not "anything", but "found". You have to look for it. Find the right set of tutorials. Hope that that they don't omit crucial information, or just rehash things you've already learned. Or that you can find a written tutorial instead of a series of youtube videos. It's time consuming to learn everything from the internet. Books are a shortcut to knowledge, if you can afford them. (You could also earn a degree of some sort, I guess.)

I just finished working my way through Accelerated C++ by Andrew Koenig and Barbara E.Moo and really liked it. It took me a while (I do have a day job), but I did almost every exercise. They are very well balanced; you feel like you've accomplished something after each chapter. (I wrote a damn string class, which reminded my why no one should ever have to write a string class.) The authors guide you through the language in a way that lets you build programs right from the start. I really appreciated that approach. From page one you feel like you can make something worthwhile instead of a thing that prints out "Hello, World.", followed by a lecture on basic addition. It's definitely not a book for complete beginners, you should have some understanding of the fundamentals of programming. I can recommend it if you're coming from another language and need to get up to speed on C++. I feel more confident in the language that I started with years ago, but forgot a lot about in the intervening years. I will definitely continue with C++; I have Effective C++ and Effective Modern C++ (both by Scott Meyers) next on my list. (I've actually had them on my shelf for a long time before I started reading Accelerated C++, because why do things in the right order?)

Of course that's only the language side of things. Games are a special kind of program, and they need a special setup. I am stubborn and want to learn basic things, so instead of picking up Unity, I went to a lower level. I looked at a few OpenGL wrappers, because OpenGL is notoriously verbose and hard to handle. Seriously, my number one tip for people wanting to start out writing their own engine it's that you don't start out at the OpenGL level. It will literally turn you off from games programming. I know it did that to me, I've been trying to get into this for over a year before I landed on SFML, which I've been using to make everything so far.
The book I used to teach myself the framework is SFML Game Development by Jan Haller, Vongelious Hansson, and Artur Moreira. First up a warning: The book is hard to read at times, because the authors are not native speakers and it shows. There is some questionable grammer, and you have to read a few paragraphs twice to parse the meaning. But once you get past the idiosyncrasies, you will find an amazing overview on how to make a simple game. It teaches you the game loop, introduces some clever abstractions and does it all in a very logical manner. This one also starts out doing real work from the start, an approach that helps keeping you interested. It never made me feel like I'm not good enough; instead, it made me feel empowered to create my own games. I would recommend this book to anyone who has a base understanding of C++, and is willing to put in the work to write a game from start to finish. I'm interested in making my own engine, so this was the perfect introduction for me. If you just want to make a game, if you have a specific idea in mind, or just want to make a few prototypes, you're probably better served with Unity, or GameMaker.

Giving up the booze, one month later

It's been a month since I have given up alcohol. You can read about it in my original announcement. Every week since, I have posted a little status update about it on facebook. I figured I should collect them into one place so they'll be 1. accessible to people not on facebook and 2. easier to search for later on. Each update is longer than the previous one, which I find interesting. I don't know if it's because my facebook friends cheered me on (thank you so much!), or if my abstinence slowly restored my appetite for the written word. Either way, it feels good to have it out in the open like that.

Week 1 (August 15th, 2016): Not drinking alcohol for a week is pretty easy. I suspect it will get harder around week three when the residual alcohol has worn off.
That's how it works, right?

Week 2 (August 23rd, 2016): Two weeks and not a drop. After ten days I started to notice people drinking in restaurants, on the street, and just about everywhere else. Berlin might be a stupid place to quit. On the upside: I do feel more energized. It's not that I was drinking every day before, but I came close in some weeks. The fogginess that comes with that is starting to dissipate. Might also be the placebo effect. Regardless, I'm happy.

Week 3 (August 29th, 2016): At one point I will stop writing these, but for now it's a good way to keep track of how I feel from week to week.
Third week. I saw the Bundesliga opening game in a pub and it wasn't hard at all. I drank Spezi all night, that was good. I won't get into the 0% alcohol beers, because they would definitely lead me back to something stronger.
I was going to do exceptions for Christmas and such, but I am reconsidering that now. I feel so good, why interrupt that run? (Cue angry friends.) Not having a hangover looming in the future sounds kind of nice.
Anyway, I have to get back to making a game for Ludum Dare.

Week 4 (September 6th, 2016): Four weeks. 28 days. 1 month. That's how long it's been since I had my last beer. I thought it would be hard giving up alcohol, and it is. It also isn't.
For the longest time I thought drinking was part of my personality, my "brand". I'm that guy who likes DC Comics, Chocolate (close), and Drinking. That was me. Until it wasn't.

I stopped because I wanted to be more productive, and I am. I was moving in that direction anyway, but I really love what I do in a way I haven't loved anything before it. I love writing, I love comedy*. Both satisfied only part of what I want to do creatively. Making games is amazing. It's writing, it's art, it's coding, it's sound. It's everything I love and incredibly hard. I have a ways to go, but I can't see myself doing another pivot. I think this is it for me (cut to ten years in the future when I'm running a snapchat about collectible toys from the 90s).

There is a side effect I wasn't anticipating: I have become more emotionally stable over the last few weeks. It's true. The ups and downs are less pronounced. I don't get angry every other day. It's strange and terrifying. Turns out, drowning your problems in cheap drinks doesn't help you work through shit. Who'd a thunk it?

I don't regret drinking in the past, and I won't regret having a pint here or there in the future. I don't judge anyone else. If you can do it, or need it; fantastic. But I think I have to let it go to become the next version of me. The one that likes DC Comics, Chocolate (second one), and Making Video Games. ;)

*I will get back to comedy at some point. I have to at least give it a try while being completely sober.

Of course, this is not the end of this story. Quitting for a month is relatively easy. I am aware that a lot of hard work is still ahead of me. I am confident that I will make it, though, because I have people in my life that belief in me. To everyone who said something nice about it, gave me tips, virtually liked one those updates, or just nodded in silent approval: THANK YOU! You made this journey much easier and I wouldn't know where I'll be without you. I've come a long way since I was abandoned by my family and friends a decade ago and I don't want to have to go through that hell ever again. You are amazing.
And now excuse me, while I get back to work.

Walking Fire

Making this game for Ludum Dare 36 was harder than making all the previous ones for two reasons:

  1. The theme ('Ancient Technology') didn't speak to me and
  2. I'm starting to get better at it.

It's obvious: If you don't know what to make you can't start. I spend the first 10 hours of the jam thinking about what to do. I had no idea. I slowly worked my way into a solution by just starting to work on it. That's the 'getting better at it' part. After doing this regularly for four months I now know the steps to make a game. Not a great game, but a game nonetheless. I don't need to look up every little detail anymore. I can pick up the pencil and start drawing something, knowing that it will lead me somewhere. And that's a great feeling to have.

But it is also terrifying. Sort of knowing what you do means you know where you could improve. You're not fiddling around anymore, hoping to hit the right thing at the right time, or following a carefully laid out tutorial; you are actually making something on your own. That's what makes it hard, psychologically. You know for certain, that if anything goes wrong, you're the only one to blame.

Now, I'm nowhere near as good as I need to be. I know this. Creating sounds is really hard. I haven't done nearly enough reading on that (= none at all.) I need to practise a whole lot more before I can call the graphics pretty. But I'm going in the right direction. Compare the textures I made four months ago with the ones I made for this game:

There are clear improvements. Or look at the menu: It has an animated background now, because I've learned how to animate things and throwing that in there wasn't hard at all.

I think my next game, the one I'm starting to work on today, needs to be bigger in scope. I'm still doing the 'one game per month' thing, but so far my games have been more like 'let's see what I can manage in a week(end)'. I put off work until the last minute and the end product suffers for it. So my goal for this month is to work on a game every day of the month. No excuses. I have a vague idea about a dinosaur and possibly space, but I'm not making any promises. You'll have to wait and see.

Progress is only apparent in hindsight. You're too close to the thing while you're making it, so you don't see the million little steps you took along the way. You only see the next three and the past three steps at most and figure, 'well, that isn't much'. Every once in a while you have to step back and see how far you've really come and then get right back in it to go even further. On that note: Go, go Dinosaur!

Experiencing No Man's Sky

No Man's Sky is not a game for everyone.

But neither is Call of Duty. Or Battlefield. Or GTA. Or Candy Crush. Or Clash of Clans. Or any other game. There is no universal game, just as much as there isn't a universal movie, or book, or food. It is, however, a game for me.

It is hard to describe what No Man's Sky is or what you do in it without sounding silly. It is an open world game that let's the galaxy? See the stars? Look at hills? Words don't do it justice. Remember that first E3 trailer from way back in 2014? Did you like that game? Then you're in luck, because that is what the game is.

I saw that trailer and instantly fell in love with it. I also started to worry immediately. I worried that it wouldn't be the game they demonstrated, that it would turn out to be like any other shooter out there. That the things they showed in that first trailer were just a glimpse into a complex multiplayer affair, complete with factions and complicated rules and all that stuff. I didn't want to play that game. I wanted to play the game they showed: A slow moving discovery simulator. Fortunately for me, that's exactly what this game is.

No Man's Sky is, at its core, a game about exploration. What does it mean to be someone whose only possession is a starship? What does it mean to discover the universe all by yourself? It truly excels at giving you an impression of isolated exploration. There are no NPCs handing out involved fetch missions. It is highly unlikely that you see any other players. In the beginning you are told to travel to the center of the universe to uncover a mystery, but you don't have to. You are nudged, of course, but after you've understood the base mechanics you are free to do whatever you please. Stay on a the first planet for weeks? Go ahead. Want to see many different planets in paid succession? Go do that. Want to drift around space endlessly, listening to the fantastic soundtrack? That's your choice.

The game mechanics are very simple. I think there is a reason for that (other than the smallness of the team), and that is that they are not important in this game. The mechanics is not what it is about. You get to fly through the galaxy, shoot rocks, and trade minerals. The mechanics are in service of the experience: marveling over a weird rock formation, or seeing a few bird-shark things fly around, or falling down a hole in the ground and discovering a hidden cave. What the developers wanted you to see is the infinte universe; the universe promised on pulp novels, on comic books, and the cheesy film posters of yesteryear. It is a love letter to the future we had in the past. The romantic notion that space travel is hard and lonely, but worth it because space is So. Damn. Beautiful!

For games like Skyrim, Assassin's Creed, and GTA the open world is merely a backdrop for the story you're supposed to experience. They are giving you something to do at every other corner: Find my baby. Play tennis. Go shoot that guy. Have you killed a dragon yet? I need four cows.
No Man's Sky is different in that the open world is the story. Criticizing it for having dull mechanics is like looking at a Dali painting and pointing out that clocks don't melt in the real world or saying that David Lynch films are terrible, because they have no plot. Plot is not everything.

One of my defining video game experiences was playing Morrowind for the first time. I was fourteen or fifteen and I was intrigued by the aesthetic more than the actual game. It looked beautiful and I needed to have it. I even bought a new graphics card to display the fancy water animations (hello, pixel haders!).

The game opens with your character waking up on a prison ship. You get up and tell the guard about yourself. Are you using magic? Are you fast? What race do you belong to? That sort of thing. After you're done with that, you are released into the world. The guard tells you about that one guy in that one town you can talk to, and that's it. That man the guard told you about is part of the main storyline, which you can follow or ignore. You can kill him if you want to, rendering the main storyline kaput. Or not. You can talk to him, play the main story and be done with it in 40 hours. It's all up to you. I loved that freedom. I spend most of my time just wandered around and looking at interesting rocks or going down into dungeons to find interesting swords. I felt lost in a huge world and made up my own adventure (partly because I wasn't fluent in english yet). I followed creatures to see where they were going. I explored caves for no reason other than that they were there. And this is what I feel like playing No Man's Sky. I feel like a child, looking at book covers, imagining the stories within.

We crave familiarity and wonder in our fiction. Pop culture is doing a great job delivering things that are familiar to us. Producing sequels, prequels, and carbon copying mechanics works. They promise us, yes, you can go back, you can experience your childhood over and over and over again. "Don't you remember how it felt to watch Star Wars for the first time? Here's more Star Wars!" it is comforting, but not very exciting. It's cold and calculated. Don't get me wrong. I love Star Wars and I will gladly watch all of the new movies. I think Kylo Ren is a way more complex and interesting character than Darth Vader, but he can never evoke the same emotion in me, because I saw Vader first. I hadn't seen any Star Wars movies before I saw the first Star Wars movie, so of course it would have a lasting impact. Any new Star Wars movie, no matter how good, will always be just another Star Wars movie. We too often lose sight of why we love something in the first place. Why it made a lasting impact. It's the rush of discovery, the wonder of seeing something new and interesting. No Man's Sky is a game that captures that wonder and excitement perfectly. It is the experience I was promised way back when I first heard about video games and for that I am grateful.

Not A Plumber

I have just finished my fourth game, Not A Plumber. Windows users can head over to, while Mac and Linux user can check out the repo on github.

Fair warning: There is not much to it! I'm doing this 'one game per month' thing and I started very late this month. Four days ago late. So this is basically just a rough draft of what this game could be. There are things I like: The art, while far from being finished, is going in a direction I like. I'm very proud of the music. But the mechanics are pretty wonky, and I've had a lot of trouble nailing down the animations.

My takeaways:

  1. I need to focus on making games more and do other stuff less. I am working on that.
  2. I need to make sure that I don't get too set in my ways. I tried to get the jumping right, but I was dancing around the same solution for two days, instead of trying something else. I need to let go more easily.
  3. I love, love doing this.

The Case for BBEdit

My first conscious memory of a computer interacting with the real world was the very first iMac commercial. Before that, computers were a nebulous thing, only real in movies and TV shows. It would be almost a decade before I purchased my first Macintosh (12" iBook G4), but the seed was planted.

I love the Mac. For whatever reason my way of thinking and Apple's way of building products are closely aligned. This was true 20 years ago lusting after that shiny plastic computer and it is true now. But the Mac is not just Apple. It is the third party software running on it. It is the OmniGroup. And Panic. And Bare Bones Software. It is a whole ecosystem of brilliant software shops making working on the Mac a delight.

Four years ago I got back into programming. I started with XCode, since I wanted to write an iPhone application. I didn't touch the command line for almost two years, because, hey, I'm on a Mac, right? We don't need the command line. Turns out, we do.

Shortly after I crashed and burned with the app I took a job digitizing a small business. For that I not only needed to write a user facing iPad app (exciting), but also write shell scripts to backup data regularly, log in remotely to a server, the lot. That meant editing text files. I did the research (I googled "what text editor should I use for programming?") and it came down to Vim and Emacs. I didn't like Emacs. I was okay with Vim. So I plodded along editing text files with Vim, cursing, ever so often, the confusing navigation and the lack of integration with the system I was using (Don't get me started on MacVim). I grew frustrated. I could see that it was powerful, but it felt designed to make it really hard to break in. I learned a bunch of the commands and tried to go on.
It was the "right" thing to do, of course, because, what if OS X went away in the future? What if Apple became terribly oppressive or stopped building Macs altogether, and I had to use FreeBSD or Linux? I "need" something that is portable! The internet told me so™. Besides, Vim is open source so if something is wrong I can fix it myself! And it's so configurable! You can add on so much stuff! These are all good arguments, but here's the thing: Portability and Adaptability are good reasons, but they are not the only reasons. Stability is also good a reason. Integration with the rest of the system is a good reason. Ease of use is a good reason.
If we agree that they are all good reasons, then the choice must come down to personal preference. It must come down to priorities. So I made a list of priorities. This is that list:

  1. Functionality
  2. Ease of Use
  3. Stability
  4. Age of Software
  5. System Integration
  6. Adaptability (things like open source, add-on support, etc)
  7. Price
  8. Portability

Portability is lowest on this list, because I love the Mac. If the Mac stops being a viable platform I might consider an alternative. Or, and this is much more realistic, I will become like one of those 90s users that held onto their Macs long after it was a viable platform. Portability is not an issue for me. Functionality is. And yes, Vim and Emacs score high on that point, but my second highest priority is ease of use on which point both utterly fail. I don't have the patience to learn an overly complicated user interface anymore.
Once I ordered my priorities I looked around the code editor landscape with fresh eyes. And I took a closer look at BBEdit. I was a vaguely aware of BBEdit and heard that it was supposed to be really good. For a long time the price tag was prohibitive ($50 is more than $0). Price used to be much higher on the list, before I had a regular income. Now I'm happy to pay money to save time. It's a good tradeoff. I downloaded the demo and fell in love with it almost instantly. It felt like the Mac in the way its way of doing things aligned with my ideas about doing things. I've been using it ever since to edit C++ projects, write shell scripts, log in to the server at work to edit config files, and to write blog posts in Markdown. I use it for taking notes in meetings. It is one of the few apps that is always running. I'm not saying this lightly, but BBEdit is so good that it might be my favorite piece of software ever. It's rock solid and so full of features that I'm still working my way through the manual. It's a real differentiator, in that I wouldn't consider a traditional computer* without it anymore.

Of course, your list of priorties will be different. It might even have different reasons on it. That is a good thing. Variability is important. What I'm saying is not that BBEdit is objectively the best choice for everyone. What I'm saying is that it is subjectively the right one for me. You should be aware of your own priorities and why they are important to you. You should figure out what you value in your tools, and why. I did, and my life is much better for it.

* I would kill for BBEdit on iPad, but alas, probably not going to happen.

Giving up the booze

I like drinking. A lot. But what I have realized over the last few months, much to my own surprise, is that I like being productive much more.
I know this is not the case for other people, but for me personally, it is very much the case that I can't have both. It's not that I'm hungover every day, or even every week; rather it's the small things that bother me. When I go out and have a few beers, I get a bit less sleep than I'd like, and a lot less rest that I need. Programming is as much a concentration exercise as anything else, and waking up with a headache, or a general numbness takes away concentration and makes my job that much harder. A night of drinking always costs me half a day of productiveness. I don't want that to happen anymore. I want to create awesome stuff so something has to go.
So I decided to give up alcohol after August 8th (that's two weeks from now). There will be exceptions for major events (birthdays, elections, Champions League finals, the lot) of course, but I can't afford it anymore. My work is too important to me.

P.S. I don't need you to tell me that I'm being overly dramatic or that I only need to moderate myself. I can't moderate myself, which is the whole point of giving it up completely.

P.P.S. This is also not a reflection on anyone else. This is all about me not being able to handle my drinks properly. If you can, good on ya!

P.P.P.S. This also doens't mean I will stop going out. I will just drink loads of Club Mate from now on.

The referendum

I want to be angry and yell "Let England and Wales burn to the ground. Scottish Independence! Irish Unification!", but that is not going to solve our ongoing global problem:

The resurgence of narrow-minded nationalism, fear, and overall bigotry.

This is not something confined to the UK, or the US, for that matter. This is something we all have to come to terms with and quick. The far right is back with a vengeance, all over the world, and if we don't pay close attention now we will slide into fascism faster than you can say Lebensraum.

We are all stronger united, and I firmly believe that the majority of Leave voters are not bad people. They are not the enemy. They have been misled and misinformed, leading to one of the worst decisions of their lives. They are angry. Yelling won't solve the problem. Pointing out that that they are wrong and that your opinion is so much better and more informed (hello, Bildungsbürgertumfreunde) won't have the desired effect. It's not Us vs Them.

We have real, structural problems (one of those days I'm going to write that big piece about the internet revolution that I've been kicking around for years now) and *of course* people are afraid. Of course people are hurting. But there is a better way. Working together, helping each other.

I sincerely hope that the next three months (at which point a new PM will take over Britain) will show what would happen if that referendum is implemented. Two unions would break apart and no one would come out the better. It has already started: As I type this, the UK has stopped being the fifth largest economy. Think about that. We can all be better if we're united.

The history of Europe has been one of constant warfare. The last 60+ years have been an unprecedented time of peace on the continent and we all are better off for it. Let's make sure it doesn't end here.

Oh, and fuck that bigoted lying cunt Nigel Farage and that fucking coward David Cameron.



I really enjoyed Ludum Dare #35. Making a game in a short period of time is a blast. So I was ready to jump right back in when Mini-Jam #67 was announced. Remix/Mashup one of these classics. Fantastic. What would happen if the bricks in Breakout shoot back? What if they were aliens? Hell, what if Space Invaders was in the game? An idea was born. Unfortunately life stuff got in the way (life stuff) and I couldn't do it in the time frame.

I picked a new jam to enter in the moment life stuff was resolved (life stuff) and off I went to make my Breakout/Space Invaders mashup. It's called SpaceOut! (! for emphasis), and you can play it here. It's my third game overall, and the first one that is an actual gamey game. There's definitely things I have to tweak over the next few days: The speed, for one. It's a bit on the slow side. I would like to have more levels. And I have to redo the collision detection. It's too flaky right now.

On a more general note, I'm happy about how I'm progressing. I feel much more confident writing code in C++ than I was just a few weeks ago. I still get annoyed when I forget a semicolon. I need to codify my build settings, it's still too much manual tweaking of settings. I haven't put together a clean way of generating an app bundle on MacOS. I could use XCode, but I'm stubborn. BBEdit forever! (Go buy BBEdit. It doesn't suck®.) I'm having the time of my life learning all this new stuff. Working on things does make you better. I read that somewhere.

The next game I'll make will be a platformer with a silly story. I like silly stories. Maybe I'll reuse the aliens and have them shoot at you while you run around as Not A Plumber™.

iPad Pro


I was on board with the iPad from the moment Steve Jobs announced it on stage. You mean to give me a whole computer the size of a book? That's amazing. I can read comics on it. I can write on it. I got in on the second version, because we were told that second gen hardware is always better (it mostly is). I was pretty happy with it for years, apart from the whole it not being retina thing. I sort of wished for a bigger screen and some form of multitasking. My next iPad was the first Mini, this time with cellular. I basically wanted to use it as my main machine on the go, obviating the need for an iPhone. People insist on calling you, though. Turns out I just needed to wait for the iPhone Plus size. I was all over the place. Bigger, smaller? What do I want?

Fast forward a few years and the iPad Pro is announced. This. Was. My. Dream. Turns out the best setup for me personally is a huge phone (iPhone 6S Plus) and and an even huger table (iPad Pro). I love the iPad Pro. It's a great mobile computer.

What do I do?

At least 50% of the work I do on games is done on the iPad Pro. I use Pixelmator and Apple Pencil to draw sprites. I use Garageband to make the sounds. I use Coda and Transmit to access my the project on a server and save audio/graphics there. I even write some code! Coda has Prompt built in, so you can feasibly write code locally, push it up and execute on the server. It's great. Obviously doesn't work for graphical applications like games, and it is a bit of a crutch. But better than nothing.

I also work as an admin for a small business, and I use Prompt 2 to do that on iPad. (If you haven't picked up on the pattern: I 💖 Panic.) It's a full-on SSH client, which lets you manage multiple connections at the same time. I also keep an installation of Dash around. It's an app that stores documentation for hundreds of programming languages. I use split-screen: One side is the remote connection, the other is either Safari or Dash. Makes it loads easier to write scripts in vim if you're not quite sure what a function in Python or something.

What do I recommend?

Get the Pencil and the Keyboard. You will probably find something to do with the Pencil, even if you don't plan on drawing. Download Workflow, which is the closest thing iOS has to a scripting language. Don't try to force your computer habits on the machine. Try to rethink what you are trying to accomplish and figure out how to do it in iOS. The single biggest thing for me was learning about Share Extensions. Workflow is extremely powerful if you combine it with Share Extensions: Ever wondered how to unzip a file from a website on iOS? Here you go. This is just a simple example. You could for instance alter that Workflow so that Transmit would save the unzipped files straight to your server.

What is missing (and probably will happen)?

A real development environment. XCode for iPad would be amazing. I will always love the Mac, but there are times when I prefer the lightness of the iPad. Compiling code on the go would be massive.

What would be super cool (but will probably never happen)? Make it sandboxed, I don't care. There's a glimmer of hope: Last year Apple locked down the system directories on OSX, much to the chagrin of old-school UNIX guys. I get it. It's not ideal. In my wildest dreams I see that as a model for iOS on iPad. Give us a developer mode! Do it like the desktop, where it's only unlocked if you're a registered developer. Then lock down everything but the iCloud folders. A command line doesn't make sense on a phone (although I use Prompt on there as well...), but it would be hugely beneficial on iPad. I can dream...

Why I make games

I get obsessed.

It might be reading comic books, cooking food, or doing standup comedy (Yes, that is something that actually happened. I have proof.). Doesn't matter what it is. I get lost and ignore everything and everyone around me.

We didn't have a computer in our house for most of my childhood. I was born in 1987 and my father bought himself a PC in 1998, but that one was off-limits. It was his porn and maintaining a Word document for his VHS collection machine. My first personal computer, and I shit you not, was a Commodore C64. In 1999. 

It was glorious. It was a hand-me-down from my father's only friend, who was an avid pirate. I got the computer and hundreds of games to play. Black and White television. Really. Krakout. Winter Games. Boulder Dash. I fucking loved Krakout.

The games were in english, which is not my native language. School vocabulary was limited. So I started to teach myself (There's a whole aside about the Star Wars Trading Card Game and childhood friends I have to get into some other time). 

A year later my father bought himself a new computer and gave me the old one. It was Pentium III and it had a CD-Burner. For a brief moment I was hot shit at school. I was being beaten on and laughed at, but because I was the only one able to create copies of games to pass around, I was let off the hook for a short period. I loved games. I poured hours and hours into Morrowind, GTA III, Quake III (offline, because the internet is a fad and too expensive and you need to go outside but not too late because we might get arrested. Shut up and comply.), and all sorts of long-forgotten gems. Unreal Tournament was a favorite.

Modding was hot. I read all about it in print magazines. They had CDs and on those shiny disks where not only demos of the newest hits, but also mods for Unreal Tournament, Half-Life, Quake. Strike-Force against bots. A weird Dragon Ball clone. I devoured those. I wanted to know how they were made. 

I begged for an internet connection. I laid out a plan to finance it myself, with my meager allowance. They make mods. In groups. There are resources. No. Chance. You need to learn. School is important. But this is learning! Don't you see? This is the future! I can make games, I can design levels, this could be a career. You're a child. You don't understand. Do homework. I. am. Parent. Do as I say. I didn't. 

Circumstances led me to drop out of school in eight grade. Home stuff. People stuff. My thirst for knowledge. School didn't offer me that. There were only bullies. They laughed. And laughed. I got punched. They laughed. 
School offered knowledge I don't need. I need to make games. I don't need geology. I need to learn how to program. I need to learn how to write this thing called C++. I bought books. I got on public transportation and read books instead of going to school. My education was more important than school. 

And then my parents divorced.

They were never good together, and I'm glad they did it, but it was like that moment a violent dictatorship is overthrown and no one really knows how to handle their freedom. My life went from orderly shit to chaotic shit to nothingness. Black hole. No one there.

I spend the next ten years running from many things. Games were one of them. I think it was the disappointment. The idea that I had a some semblance of a future ahead of me which was sabotaged at every stage by selfish, ignorant parents. Frankly, I was bitter. Traumatized. I abandoned programming. I wanted to be a writer. Poor artist. Look at me. That whole thing. But I knew. Deep down I knew. It wasn't the writing I was interested in. It was telling stories. There is a difference. The medium doesn't matter. Wrong. The medium does matter. I like being in control. I am visual person. Comics are hard. Movies are unwieldy. Games are perfect. 

I returned to programming four years ago. I started out writing an app that would help me write more. A notes app. I had this whole notion about being a startup person now. I had this whole plan of overhauling publishing. Right.

I lost focus. That's not who I am. 
I am a storyteller. And I need to make games.