self.liberate() – Writing a game in Python for Android was a liberating experience

You write code every day.

Whether you are a student or it is for your job or just for fun, most of the time you find yourself writing some code. Even when you are not writing code, you are thinking about it.

On your commute you are on HN or Reddit reading about latest and greatest. You are subscribed to many mailing lists and you read them all. You use Github search and sort by star count.

At least I do.

But then it happens. You get tired. You do not want to do it anymore. You question yourself. Your tools annoy you. Even the simplest tasks become a burden. You think about the days when you built some fun stuff.

Well don’t give up.

This is what happened to me and I guess you could call it “Programmer Burnout”. Although I prefer different kinds of burnouts.

The feeling really sucks, because you like your job and enjoy making stuff. In the end, that is why you are doing it in the first place.

Now to draw a nice parallel, I like cars almost as much I love computers. And car people always talk about tinkering and modifying and testing and doing all sorts of weird stuff to their cars during the weekends. I couldn’t remember when was the last time I just tinkered with anything software related on a weekend or whenever.

It wasn’t always like that though. When I was a student, rarely a weekend would go by without me checking out some some cool new framework or programming language. I never thought “well that’s cool but I will never use it so what’s the point”. I somehow felt I “lost my passion” and that was a pretty sad feeling.

So after I realized I needed a break I did what any rational person would do. I decided to make an Android game. In Python. In one day.

Now you may question my decisions but the fact is that my project manager, lead developer, lead designer, scrum master and lead evangelist block-chain machine learning architect all completely agreed with everything I said. (hehehe)

Let me tell how it is working on a fun side-project. It is nice!

There are no deadlines. There is no waiting around. You don’t care if it runs 100% all the time. Nobody calls you after hours. You don’t care if looks alright. Basically you are just having fun. And it is yours. It can be whatever you want. You make requests for yourself. And guess what: you can just say screw that, I am not doing it. And the best part of it all is that eventually you will convince your friends to try your stupid game and they will have fun seeing how terrible it is and you will know your project is a huge success. And no one can take that from you, because everything is yours.

Also, when a friend sends you a text in the middle of a night with “hey your game is cool and all but why don’t you add bombs to it”, you won’t think two seconds about it, you will add those freaking bombs and push a new release.

My game is probably dumb, and boring, and poor in quality. I didn’t test it. I didn’t think too much about everything. I have built it because it was fun, and because it was fun, it was well worth my time.

Now because you are reading this I guess we should cover the technicalities. Yes, I built a game with Kivy. Yes the UI isn’t made of native components. Do I care? No. Does it work? Yes. Does it have less than 300 lines of code? Probably. Was it easy? Yes. Did it really take one day? Sort of, not really, but who cares – time flies when you’re having fun.

On a side note, Kivy is really cool and you should give it a chance. Their buildozer build process is miles better than it used to be and it is really easy to setup everything. I will probably write about some smaller issues I had and how to solve them in the following weeks.

I hope you can go through your “burnout”. It’s a real thing but it is temporary and you will be back at it sooner than you think. The first step is the most difficult one. You know that programming is fun, you are an engineer and you make stuff you imagine in your head. It’s magic. Do it now!

And when you take a break, why not play Tet-10, an extremely beautiful, well-optimized and addicting puzzle game!

Top image by:


Now read this

Single Node OKD (OpenShift)

Everytime I get to use Red Hat’s Open Shift I think to myself: “I should use OpenShift more”. It is a really great tool not just for high availability clusters but for general software development also. Its Web interface is super... Continue →