Wednesday, November 20, 2013

Android indie developer interview: Marcin Mikosik

In this week's interview, I'm excited to introduce to you Marcin Mikosik, not only because he's Polish like me, but also because he manages to make a living from his apps/games. He does everything by himself, from coding, through graphic resources up to sound effects. Today, you'll have a chance to learn a few tricks from him and take a look at what he's done so far. Marcin is very professional in his work and uses a bunch of interesting tools. Perhaps they'll turn out useful for you as well...


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

Marcin: I'm Polish and live in a small town in the center of Poland. I have my own, one-man company Perun Labs. I develop games for the Android platform.

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

Marcin: It happened 3 years ago when I decided to change the way I lived and worked. I quit my job and moved back to my home town together with my wife. At that time I knew very little about Android and much less about creating games but I was convinced that Android would be a good choice as a platform for my future games. Time has shown it was a right decision.

Bartek: How did you learn how to create apps?

Marcin: Concerning the Android platform I found most things I needed at http://developer.android.com/. In more problematic cases I usually found answers to my problems at StackOverflow or simply by using google search.

Considering game creation, I truly recommend The Art of Game Design: A book of lenses. It doesn't touch any technological stuff. It just explains why humans like playing games. Why some games can engross their players for hours when some are boring after a few minutes of play. Developers usually focus on technical aspects of game creation while there are other equally important. This book explains all of them in details.

Bartek: What libraries/frameworks do you use?

Marcin: I do not use framework like libGDX or AndEngine. I built my own, but it's rather a set of libraries than a rigid framework. I have already released one part of it as https://github.com/mikosik/jvalues.

Bartek: Where do you take app/game ideas from? How do you know if they have a chance to be successful?

Marcin: This is the hardest question for every game creator. I guess most of my ideas are just mixes of games I played before. Predicting success of one game is even harder. I frankly say I'm quite bad at it. In most cases so far I usually underestimated games that were actually successful and overestimate games that didn't bring much revenue. Generally speaking I'm not the best person to give you advice on that one. ;)

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

Marcin: I created all graphics for my games myself. That's actually one single thing that I'm most proud of as I had never done any computer graphics before. I decided to go this way for a couple of reasons. First of all I wanted to limit the amount of money I spent on each game. I wanted to try creating graphics myself so I could better understand that process. As it is usually hard for me to decide what graphics should look like up front and at the same time it is helpful to have some graphics at the beginning of development. I usually redesign graphics assets a few times during development of every single game. It would be much harder (and  more expensive) to do it if I had to coordinate it each time with a professional graphic designer.

Concerning sounds and music I was less ambitious. Initially I bought a few songs from Premiumbeat.com. Later I switched to royalty free songs available at incompetech.com. Sounds are pretty tricky to get right so you have to either buy all of them from a single place, so they play nice together, or create all of them yourself. Recently I've been using as3sfxr. It's great retro sound generator. It seems a bit hard to create something you need at first but once you get used to it you can very quickly create a whole set of sounds for your game.

Bartek: What other programming tools do you use?

Marcin: That's a lot of stuff to cover so let me enumerate only the most important and skip obvious ones (like Eclipse, linux distro, JVM, etc).

  • Smooth-build - that's the build tool I've just created (it's in early 0.4 version). I'm migrating all my projects to it as I'm sick and tired of Ant, Maven and Gradle. If you want to try in any open source project as an early adopter I'm eager to write build scripts for you,
  • git - that's the only reasonable choice nowadays,
  • ProGuard - java byte code shrinker that makes you bytecode small,
  • Tiled Map Editor - an awesome level editor. I wonder how I could develop my first games without it. I'm convinced that a good level editor is so crucial for success of your game that I dropped a few game ideas just because design would be to complicated to create within Tiled,
  • Inkscape - all my graphics are svgs. They are converted to png format during build time. When I started creating graphics I considered raster graphic formats at first but after some experiments I noticed that I could create better quality stuff with vector graphics. Inkscape can be hard to grasp at first. If you find yourself a little lost initially I recommend The book of Inkscape: The Definitive Guide to the Free Graphics Editor. It explains a lot of stuff that happens in inkscape under the hood which helps you understand this tool better even though UI can be sometimes misleading,
  • OptiPNG - png file shrinker - makes you png files as small as possible without losing any quality
  • and finally basic set of java libraries: JUnit, mockito, testory, jvalues, assertj, guava, guice.

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

Marcin: I always strive to implement the whole game within 4 weeks of time (I work 8h per day, 5 days a week). This way each feature I want to add to the game has to be carefully analyzed concerning its time requirements. There's nothing worse than spending weeks perfecting your game and finding in the end that it is not so popular as you expect. As I read in some book: "Your first 50 games will be ugly so make them out quickly". Another advantage is that I never develop a game long enough to get bored with it. Four weeks is a tight deadline so I seldom manage to keep it but it is a good rule of thumb. For my latest games the numbers are the following:
Worm Plex - 9 weeks
Slide - 4 weeks
Pac Maze (with first set of 52 levels) - 8 weeks
Sokoban - 2 weeks
Rings - 8 weeks
Maze - 2 weeks

Bartek: How much are you making on your apps?

Marcin: Just enough to make both ends meet. It's much less than I would earn working for somebody else but on the other hand my games bring me revenue even when I sleep so I treat it more as an investment.

Bartek: How do you monetize your apps? What ad networks do you use if any? Do you have any advice on it for others?

Marcin: AdMob is my main source of income. It brings almost 95% of my revenue. The rest comes from IAP and ad-free version of my games. I haven't done much experiments in this area so far. I'm planning to try interstitial ads soon.

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

Marcin: The biggest (and most unexpected) success was my Pac Maze game. I thought that game with so simple graphic and so old idea of eating dots in a maze couldn't be a big success but it turned out it got many positive reviews. Gamers seemed to focus more on playability than graphical effects. The biggest disappointment to me so far was Worm Plex. Especially it is the one I'm most proud of. What I can say from my experience so far is that niche games like Worm Plex (which is strictly puzzle/logical type) are more difficult to find their audience than traditional casual/arcade games.

Bartek: Do you use any marketing techniques or ASO to promote your apps?

Marcin: Nothing extraordinary that wouldn't be known by almost everybody.

Bartek: What are your favourite Android games/apps?

Marcin: Mini Quests - isometric adventure with ultra low resolution. I always preferred games that required some thinking. This game shows that you don't need to use mind blowing graphic effects to create an interesting game.

Bartek: What Android devices do you own?

Marcin: Nexus 1, Nexus 7, Samsung Galaxy Tab.

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

Marcin: Apart from Android developers blog I do not have any other Android specific blogs in my RSS reader.

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

Marcin: Currently I'm working on smooth build so it can reach version 1.0 soon. It would have all the features required from a full fledged Java build tool. It's hard to say what will be the next thing as I do not like to decide on such things in advance. Landscape changes too quickly to make long-term plans. I have a few things on the radar though: porting my games to OUYA, porting my games to html5, adding an in-game level editor to Pac Maze, and a few ideas for new games.

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

Marcin: Reduce the number of features in each game to minimum. Release as many games as possible. The more games you release the biggest chance that you make a game that is a big success even though it has many parts missing. You will fix them once you know which of your games is that one. Note that spending a lot of time on a single game has a drawback of being bored with it. Just be quick with releasing your games.

Bartek: Where can people find you on the Internet?

Marcin: my blog: http://developing-android-games.perunlabs.com/
Google+ https://plus.google.com/108838636104991588862/posts
Facebook: https://www.facebook.com/PerunLabs
game/apps in Google Play: https://play.google.com/store/apps/developer?id=Perun+Labs
GitHub: https://github.com/mikosik


Marcin doesn't post on his blog very often - usually just once or twice a month, but some of his posts can be very helpful. I particularly liked his articles about the best app stores to publish on, creating app icons, useful development tools and the video below.



For all those who follow my Blobby Volley progress reports, there were a couple very exciting things happening this week. I can't wait to tell you about them at the end of this weekend. As a sneek peek, I can tell you, that I found someone to do the graphics for me for free (!) and that I managed to get TexturePacker and PhysicsEditor licenses also without spending a buck (and without violating any copyrights). You want to know how I did it? Read the next post :P

No comments:

Post a Comment