Tuesday, October 8, 2013

Android developer interview: Jörg Winterstein

I'm happy to bring to you another interview from the series, this time with Jörg Winterstein - a successful indie developer with an interesting story. He's sharing great tips about game engines/frameworks, ad networks and tools that he uses. Without further ado, here it goes.



Bartek: Tell us something about yourself. Who are you? Where do you live? What do you do in life?

Jörg: Hi, my name is Jörg. I am 32 and live with my wife and my two year old son (more are on the way!) in a small village in south Germany. I have always been working in the video-gaming industry. Two years ago, I founded my own company and am working there on mobile games of all sorts.

Bartek: When did your Android adventure start and how? Why did you decide to do it?

Jörg: When the last company I was working for went bankrupt because our investor lost faith in us, I decided to try it all by myself. I started my company and did what I can do best: make games. I wanted to prove myself that I can do it if I am on my own, and if I am responsible for all the business decisions.

Bartek: How did you learn how to create apps?

Jörg: I have been programming since I was a kid, so I only had to "adopt" to a new syntax everytime I change the programming language.

Bartek: What libraries/frameworks do you use?

Jörg: I created my older apps with the Corona SDK. It's great to see fast results, since you only have to deal with "high-level" coding. All engine stuff is done by the framework, and you have your first app up and running in minutes. I then chose to abandon Corona and to try the quite unknown language - Monkey. It gives me more freedom on using 3rd party libs and implementing my own hardware specific code. The downside is that it takes more time to develop stuff with it. I will eventually switch to Unity once my current app is finished.

Bartek: I'd like to know more about your switch between CoronaMonkey and Unity - why did you choose them and why did you decide to abandon them? What do you think their advantages and disadvantages are?

Jörg: Corona was great for me in the first place because you are able to see results very fast. The engine provides a lot of stuff that is already very "high-level", like a GUI system with buttons and sliders, image loading and rendering with rotation, scaling, changing color, grouping objects together and stuff like that. That helped me create my first apps very fast. But the more I wanted to do, the more I was limited by Corona.  It helps you get a lot of stuff done, but once you need something that corona does NOT offer, like a different advertising network or using the Android hardware keyboard, you would need to get the quite expensive (from an indie-developer point of view) enterprise edition. Plus, Corona is limited to iOS and Android platforms at the moment. And in my opinion, it is very important to cover all possible platforms with your game.

With Monkey, you have full control over everything and can write your own 3rd party libraries for only a fractional amount of Corona's enterprise license cost. You can also build for many more platforms than with Corona. The downside is that you do NOT have e.g. a GUI-System. I had to implement one my own. You don't have different rendering layers, so grouping objects is not possible without extra code. Another downside is the fact that Monkey is more or less developed by one single person. There are frequent updates, but not always for the features that you are in need of right now.

Unity will be my next "big step". The great plus of Unity is that it is "established". It has been used over the years by hundreds (if not thousands) of people, and it has evolved into one of the most comprehensive engines available (for a reasonable price). It also covers ALL major and medium platforms you can think of, and you can be sure that it WILL support future gaming consoles and mobile devices faster than any other framework. Plus, it has a killer set of tools and an editor that even non-programming-people can use and get results with.

Bartek: Where do you take game ideas from?

Jörg: I have been playing videogames for all my life. You can find resemblances to other games in all of my work. Nowadays, living the life of a husband and father, I do not have that much time to play videogames anymore, but of course I still do... late at night, when everyone is sleeping (and I should sleep as well...). But that is the reason why most of my ideas come from older games from the homecomputer, 8-bit and 16-bit era of videogames. But I also get ideas from movies, books, comics and music. I love horror, mystery, sci-fi and fantasy stuff, no matter what mediaform, and they are always a neverending inspiration for me.

Bartek: Where do you get resources from (graphics, sounds, music)?

Jörg: I do all the stuff on my own at the moment. Once my company gets larger and I start making bigger games, I will need some more artists. Since there was no Internet when I started making games, I HAD to do everything on my own. So I started pixeling graphics and making chiptune sounds. That helps me today to be as independent as it gets.

Bartek: Do you really make EVERYTHING yourself or do you use some resources (free or paid) made by other people?

Jörg: At the moment, I really do. I started making games back in school. There was no internet, there were no other people interested in doing the same thing, so I HAD to do all stuff myself. That way, I learned to pixel graphics and make music. I did this by paying close attention to the work of other people (== playing a lot of games). I analyzed pixel art and animation in my favorite games. I had a look at what colors people used to create shadows and lighting effects in sprites, I count the number of frames a running animation has and so on. That way, I more or less learned by "copying" stuff from other games. Today, I still look up pixelart from 8-bit and 16-bit games I remember to get inspiration for the colors to use, the size of characters and tiles and so on.

With music, it was all the same. Back in the 90s, it was common to use "modules" for sampled PC-music. Think of it as sort of a digital sheet of music that uses small wave files that represent single instruments. A base drum, a snare drum, a bass note etc. The music was then played more or less "live". There were programs called "trackers" that were used to create those modules. So I was able to load songs from other musicians and have a look at how they composed the song. I could look up the notes and melodies, mute some channels and find out why it sounded how it sounded. It is all just about analyzing and understanding how things work.

Bartek: What other programming tools do you use?

Jörg: I use Dropbox :) I have used revision control tools like Subversion in the past, put since I currently work alone, Dropbox is absolutely sufficient. I use Renoise to create my music and GIMP to make my graphics.

Bartek: How long does is take you to make a single app?

Jörg: It depends. I created some of my kids apps in 4-6 weeks, but my current app Bloo Kid 2 is being developed for several months now.

Bartek: How much are you making on your apps?

Jörg: If I add all stuff together (money from sales, advertising, affiliate marketing) I end up with way more money than I had when I was employed. You can also check out my blog to see my monthly reports.

Bartek: Could you describe how you're making money on affiliate marketing?

Jörg: Affiliate linking, in short, works like this: I send my app users to the appstore. To another one of my apps, to my app portfolio or whatever. If that users then buy something in the appstore (apps, music, movies etc.) I get a provision for that. So basically, if I make someone buy something in the appstore, apple rewards me for that.
Now the problem is that there are affiliate programs for the appstore for many different countries, and I would have to lookup the geo-IP address of my users and then pick the corresponding program. This is where a service called GeoRiot comes into play. They do all the geo-IP-resolving for me (and therefore take 15% off the revenue I make). But I think it's a great deal, since it makes things a lot easier for me.

Bartek: How do you monetize your apps? Do you have any advice on it for others?

Jörg: My kids apps are downloadable for free, but not all content is available. You can then "unlock" the whole content with a single inapp purchase. I find it fair that people get the chance to try the product before buying it. My game Bloo Kid is making revenue with advertising. As long as you get enough downloads, this can work very well, too. My advice would be to try out different monetization techniques. Find what fits your app best.

Bartek: Could you briefly describe the ad networks that you use.

Jörg: At the moment, I mainly use Vungle, which is an ad network serving 15-second fullscreen videos ads that can be configured so that you MUST watch them (which I hate) or that you can skip them after 3 seconds. But I am currently thinking of switching back to Inneractive, which is an "ad mediation service", meaning that it bundles many different advertising networks together that can be used by implementing only one SDK. In my Corona apps, I also use RevMob, a service that shows fullscreen (== interstitial) ads asking you to download a free game. Once the users downloads and plays such a game, I earn money. The RevMob ad is shown if Vungle has no impression to show at the moment. Using both Vungle and RevMob required me to have extra code for both networks. With inneractive, I could make the "switch" without extra code.

Bartek: Which ones of your apps were the biggest success and which ones were below expectations? Why?

Jörg: My kids app Animal Puzzle for Toddlers is very successful. I think it comes from the name. Everyone who searches a "puzzle" with "animals" will type exactly those two words into the search field. That way, my app is very "visible" in the store. The opposite goes for Knight's Castle for Kids. While the "conversation" rate is as high as the one from the animal puzzle (meaning the percentage of the people unlocking the app after downloading it) is the same for both apps, Animal Puzzle got way more downloads. I think people search for "animal" and "puzzle" way more than for "knight" and "castle".

Bartek: Do you use any marketing techniques or SEO?

Jörg: I try to optimize my keywords and I started to add localized descriptions to my apps. As I said, it is very important that people searching for a specific app will find yours.

Bartek: What are your favourite Android games?

Jörg: I really love (most of) the games from OrangePixel. They have a retro look but still a modern overall feeling.

Bartek: What Android devices do you own?

Jörg: I have a Samsung Galaxy S1 and an Nexus 7 tablet.

Bartek: What Android blogs/sites do you read regularly?

Jörg: AndroidPIT and xda-developers, but I also read the indiegames.com weblog.

Bartek: What are your plans for the future? What do you want to create/achieve?

Jörg: I want to be able to make bigger games, with a greater team. Maybe release games on consoles in the future. I have also always wanted to "touch" people with my work. Like I was touched back in the days when playing games on my Commodore 64.

Bartek: What advice would you give to other developers (something that you wish you had known before yourself)?

Jörg: Don't set your goals too high. Start with something simple and try to complete it. I know so many people that start great things but get lost halfway through. A small but finished product is worth way more than an unfinished opus magnus. Like everything in life, you will grow with what you do.

Bartek: Where can people find you on the Internet?

Jörg:
http://www.indie-story.com/
https://twitter.com/Eiswuxe
http://www.eiswuxe.de/
https://www.facebook.com/pages/Bloo-Kid/123783531046269
https://www.facebook.com/pages/Eiswuxe/143467645725161
http://www.winterworks.de/


I really appreciate that Jörg commited his time to share his experience with us. Jörg, if you're reading this, good luck with your apps and let us know if you come up with something cool.

10 comments:

  1. Replies
    1. Thank you. It's always nice to hear such words. There are more interviews on the way and a complete new series... as soon as I cope with the cold that I caught a couple days ago. Stay tuned.

      Delete
  2. Nice Interview. It was a good read . All the best you guys :)

    ReplyDelete
    Replies
    1. Thank you Kesari. I appreciate it. I'll do my best to keep posting interesting things in the future as well. There's going to be more interviews and a brand new project pretty soon.

      Delete
  3. I am developing android app from last one year, but most of the described terms are new for me. Thank's man it's really great to read such blogs.

    ReplyDelete
    Replies
    1. I'm glad you like it. Make sure to check out other interviews as well. They contain lots of useful links, tools and techniques.

      Delete
  4. Did you get that job ? Sorry for curiosity :D

    ReplyDelete
    Replies
    1. I'm sorry, but I don't understand your question. Do you mean me or Jörg? Which job are we talking about?

      Delete
  5. this post is telling an interview, and as I known the interviewee is Jörg, I mean: did he get a good result after this interview :D. I'm work as a fresher in game programmer, this article is really helpful to me.

    ReplyDelete
    Replies
    1. As far as I know Jörg is doing quite well. Check out his latest income report for details:
      http://www.indie-story.com/monthly-report-november-2013/

      Delete