Thursday, November 28, 2013

Android indie developer interview: Matey Nenov

In this week's interview I'm proud to introduce to you Matey Nenov, who's achieved quite a lot in his year-and-a-half long Android career, producing 11 apps and making up to $500 a month in revenue. On his blog, he reveals all his income stats as well as thoughts on the app development business. Today, he's going to share some of his experience with us.



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

Matey: I'm Matey, I'm 35 and I live in Stuttgart, Germany with my wife and my daughter. I'm originally from Bulgaria and came here 15 years ago. I studied computer science and physics here and now I work for a big car manufacturing company. I used to work as a software developer, but now I just oversee other developers.

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

Matey: My Android adventure started last year. I had an Android phone, I wanted for a long time to create something for it and finally I got the time to do it. My first app was Tetricorn, a game I developed as a Java Applet and then ported to Android. It felt pretty good to finish the app and publish it to the Play Store, so I decided to do more apps.

Bartek: How did you learn how to create apps?

Matey: As an experienced Java developer, it was pretty easy to start with the Android SDK. At the beginning I used almost only the main android developer page: http://developer.android.com.

Bartek: What libraries/frameworks do you use? Why did you choose them?

Matey: I made my first projects with the standard Android SDK, no extra libraries or frameworks. Then I switched to LibGDX. LibGDX is very powerful and gives you the freedom to do whatever you like. The biggest advantage is that the LibGDX apps can be run and debugged directly on the PC, no emulator or mobile device needed.
I started to create my new game with Unity 3D. My first impressions are very positive and also the ability to publish to different platforms is a big plus. I will comment further on this topic on my blog, when my new game is finished.

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

Matey: It is very different. Sometimes I just have a great idea, sometimes I just see an app and I come up with an idea how to create a similar app but with some upgrades. And sometimes I just make a remake of a game I liked as a kid.
I have absolutely no idea if a game or an app will be successful. If I knew it, I would make only successful apps ;). Although with time and apps I create I can see some tendencies.

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

Matey: I create most of the graphics by myself.
Sounds are one of my big weaknesses. I download most of the sounds from www.freesound.org but mostly I am not really happy with the result.
Until now I never used music in my games.

Bartek: What other programming tools do you use?

Matey: I use git.

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

Matey: From a couple of days to a couple of months. I don't have much time for my private projects, so I try to make only small projects that I can finish in a foreseeable time.

Bartek: How much are you making on your apps?

Matey: I have a very detailed monthly report on my blog (http://www.nenoff.com). [around $300/month]

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

Matey: I like to experiment to see what works and what doesn't work. I don't have any prejudices about what is good and what a developer shouldn't use. If something is working, it's good, period. As I said I use all kinds of ads:
Banner ads - I use AdMob, MobFox and Millenial Media.
AdMob worked fine in the past, now the income is very low. They have a very good fill rate, so I am still using them for ads when MobFox can't serve.
MobFox on the other hand is pretty stable, so this is my primary banner ad provider.
Millenial Media was good only for one month, now this is worse than AdMob, so I am keeping them for only two of my apps and only when no other ad network can serve an ad.
Push notification and icon ads. The major app stores banned this type of ads, so I don't use them anymore, although they were very lucrative. For live wallpapers this was the only option to make some money! Here I used two networks: AirPush and Leadbolt. Both of them were good, so I can't decide which was better.
Interstitial ads - after the push and icon ads were banned I switched all of my apps to this ad type. The only thing that I regret is that I didn't do this earlier. This type of ads are very lucrative, with some apps they are much better than the push ads! I am using here also AirPush and Leadbolt. For now there is no favorite, although I think Leadbolt is a little bit better.
I have also paid versions of my apps, but the sells revenue is not comparable with the ads revenue.

Bartek: Can you reveal the CPMs you're getting?

Matey: First of all I think that the CPMs from the different ad networks, ad types and apps must be enjoyed with care. Ad type, position and refresh rate have the biggest impact on the CTR. For example you can achieve very good results with high refresh rates for a banner ad on some networks with a good fill rate but have very bad CTR (due to the high refresh rate). Furthermore the CTR can change from one day to another, depending on the ad campaigns that are available...
With all this said here are the numbers from the last 30 days (or the number ranges, because it is very different for different apps):
AdMob: from 0.10€ to 0.59€
MobFox: from $0.11 to $1.14
Airpush: from $0.06 to $1.76
Leadbolt: from $0.04 to $3.39
As you can see the ranges are very wide and can change very often.

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

Matey: My biggest success is the Fart Revolver app and I don't know why. The biggest disappointment is actually my first app Tetricorn. This is not my worst performing app, but I had too high expectations for it. I thing Tetricorn is too complex and most of the people don't get it.

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

Matey: Not really, all I do is optimize the app title and description.

Bartek: What are your favorite Android games/apps?

Matey: My apps of course ;)

Bartek: What Android devices do you own?

Matey: Samsung Galaxy S2c, Samsung Galaxy Note, Samsung Galaxy S4.
Unity can build for IOS, so I bought recently a Mac Mini and an iPad Air (with the money I earned with my android apps ;))

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

Matey: Your blog :). When I have problem with something I just search the net, so there is no specific site I use.

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

Matey: I will concentrate on making better 3D games. Maybe in the future I will hire some people to help me do some ambitious projects.

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

Matey: Don't give up, don't stop trying. As Einstein once said: “It's not that I'm so smart, it's just that I stay with problems longer”. If something isn't working - change it and keep trying...

Bartek: Where can people find you on the Internet?

Matey: blog: http://www.nenoff.com/
Facebook: https://www.facebook.com/nenoffAndroid
Twitter: https://twitter.com/mnenoff
Play Store: https://play.google.com/store/apps/developer?id=nenoff

Tuesday, November 26, 2013

Creative, Serious and Playful Science of Android Apps

Just a quick announcement for all those who want to learn Android programming in a fun way. A new Coursera course - Creative, Serious and Playful Science of Android Apps starts December 2nd (Monday). It's totally free and doesn't require any previous programming knowledge. I've already signed up, even though I don't expect to learn a lot, since I know all the basic stuff. I just want to meet new people interested in Android development and have a nice time coding something in my spare time. Check out the introduction video below, to get a better idea, what it is.


For all those who don't know Coursera yet, it's an online learning platform with amazing courses prepared by the best universities in the world. See my previous post about it or just visit their site to find out by yourself. I've recently finished two more courses organized by them: Creativity, Innovation, and Change and General Game Playing. They were both very interesting and professional.

So, anyone else wants to sign up, study and have fun with me? Let me know.

P.S. If this course seems too easy for you, take a look at other ones. If I had more time, I'd probably be watching the lessons most of the day... perhaps only taking breaks for TED :P


Sunday, November 24, 2013

Blobby Volley for Android: Progress Report 5

Last week brought some pretty unexpected events - this time positive ones though. I was working on blob and ball shadows, as well as controller buttons and I had to add a lot more textures to my game. Using TexturePacker, it was quite easy, but I noticed that the free version I was using wouldn't let me change the layout algorithm, resulting in very suboptimal layouts (see the images below). Also, the texture produced this way was much larger than it could be. This, and the fact that I couldn't change the package name in the generated Java file so I had to correct it by hand every time I modified something, convinced me that I needed a full version. The bad news was it cost $40 and I wasn't sure if I was ready to spend so much on my game. I started desperately looking for a way to get it for free... and I found it. I'm not talking here about some black hat method involving key generators, torrents, etc. It's totally legal. The only condition is having a blog about game/software/web development. If you meet this condition, go to the Request a free license section of the Code'n'Web site and apply. It's that easy. You can also request PhysicsEditor, which comes in handy when you create Box2D physic connectors for sprites. I wanted both, and I got them the next day. Yuppie!

TexturePacker's basic layout algorithm
TexturePacker's MaxRects layout algorithm - not available in the free version
The second unexpected thing happened when I was talking on Skype with my friend Justyna, who makes T-shirt designs. You can check out her Facebook profile. She's done some drawing for me in the past, so I was hoping she could help me this time as well. It turned out she's a little busy right now, but her brother, who is an awesome artist as well (take a look at his gallery), is much less occupied. In fact, he owes me a favor after I helped him with a college programming assignment some time ago (I almost forgot about it). I haven't talked to him, because he was finishing a project of his, but I'm planning to make a list of every piece of graphics I can possibly need in the game and ask him what he can do.

Apart from the exciting stuff, I worked hard for another 12h on the following things:
  • I added ball and blob shadows
  • I'm showing an indicator when the ball is outside of the screen
  • I made the movement controls look nicer and behave like buttons (highlight when pressed)
  • I moved all physical objects' definitions from code to PhysicsEditor - now I can easily change the bodies without thinking too much about coordinates and writing lengthy methods initializing all the necessary connections
I also read a couple of pages from AndEngine for Game Development Cookbook. Not too many though. I'll try to read more next time.

Take a look at the screenshot below to get a grasp of the current game state. You can also download the latest apk.


This coming week, I'll probably have less time to code, due to my Italian exam (yes, I'm studying the language of Dante), and my friend's visit (he's staying for a couple of days). Nonetheless, I'll try to complete the following:
  • limit the number of legal ball hits (perhaps also parametrize it)
  • start working on a simple AI
  • talk to my graphic designer and decide on what I need and what he can actually deliver

While I spoke with Justyna, she was trying to persuade me to release the game before Christmas, because that's when people download the most apps. I think it's a good idea, so I'll try to finish the basic stuff (namely options, AI and graphics) until then. I'm pretty sure I can make it. I'll leave multiplayer and other more complex features (achievements, advanced game modes, animated backgrounds, etc.) for later. If I get a lot of downloads, it'll give me additional motivation to work. If not, I might just abandon the project and start something else. I believe that the black scenario will not happen though.

I hope you like where the game is going. Feel free to share with me any thoughts you might have. I'll read and consider all of them.

For those who are waiting for another interview, I have a couple of them accumulated and I'll be releasing them every week around Wednesday/Thursday. Come back then to get a new portion of stories, tips and advice from other developers. 


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

Sunday, November 17, 2013

Blobby Volley for Android: Progress Report 4

This week was super productive. I worked for 20h and I managed to read 136 pages of AndEngine for Game Development Cookbook. I feel like my game is getting more and more fun to play. Check out the screenshot below or download the latest apk.



Here's what I spent my time on:

  • Instead of relying on my own scaling mechanism, I started using one of those built into AndEngine. This way everything might be a little distorted, but it saves me a lot of work and puts more order into the code.
  • I refactored everything once again to be compliant with what they say in the book. You can't see any direct results of this, but believe me, navigating through the code now is much more pleasant.
  • I tried playing the existing Android Blobby Volley clone via WiFi and Bluetooth. The former didn't work at all, the latter crashed for the first time and started running when I created the game once again. You can see that there's plenty of room for improvement. Perhaps my app can do it better.
  • I fixed a couple of small bugs, one of which allowed blobs to move a couple of pixels inside the net or too far out of the screen.
  • I implemented variable height jumping. I followed the instructions from a thread on Stack Exchange, particularly the example code on JSFiddle mentioned there.
  • I added blob animations. Now, when they walk or jump, they change their shape a little. I used the AndEngine's EntityModifier functionality. Unfortunately, you can't see it in the screenshot. You have to install the game from the apk file.
  • What you can see, is another movement controller. The red button moves the blobs left and the green one right. You can choose which one you want to use and on which side you want it to be (left or right). Too bad, you can only do it from the code right now.
  • I parametrized a lot of stuff, so it's easy to change gravity, blob walking speed, blob jumping height, player names and move/jump controller types and sides.

This coming week I want to do the following.

  • Add blob and ball shadows, so that they look more natural.
  • Show an indicator pointing at the ball, when it's outside of the screen.
  • Make the movement controls look nicer.
  • If it's not too hard, make it possible to control blobs by tilting the device.
  • Start some simple AI.
  • Read another 100 pages of AndEngine for Game Development Cookbook.
  • Watch some videos/read tutorials about Google Play Services. They might come in handy when it comes to achievements and multiplayer.
Once again, feel free to download and play the game. If you have any remarks or suggestions, leave me a comment below. I will certainly read it and I'll try to put it into practice.

If you like reading my interviews, a brand new one is going to show up in the middle of the week. Don't miss it. As to another progress report, wait for it at the end of the next weekend.

Thursday, November 14, 2013

Android indie developer interview: Gabriele Ferreri

Today, you'll have a chance to meet the founder of Tech Cookies and a hobby Android developer from Italy. He actually does other kind of programming, but he decided to give mobile a shot and publish a popular puzzle game. How successful was he? Find out for yourself.


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

Gabriele: I’m an Italian ASP.NET C# Developer. I’m 35 years old and I like to play soccer and watch movies (SciFi).
I worked for a long time in southern Italy (where I was born) and then after 2 years in Milan and one in UK I’m currently working remotely for a UK company.
I like to write about my interests and I have had a few articles published on codeproject.com about ASP.NET (C#), Ajax, Javascript, Silverlight and Sql Server.
I also have my website at www.techcookies.net talking about Android apps, games and tricks.

Bartek: I like your site (Tech Cookies). What made you start it?

Gabriele: I started it mainly to improve my English skills and because I like to test unusual apps and games. I don't have much free time and I normally post one article/review each day. I actually have between 300 and 500 visitors each day but for some special tips and tricks articles I get even more than 6000 visitors a day.

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

Gabriele: About 2 years ago I received my first Android phone (LG Optimus Me) and I started to think about creating my first app or game. When I was a child I remember a very popular game in Italy called Fifteen Puzzle (the plastic one) and I decided to create a reproduction of that game. I was not sure it could be successful.

Bartek: How did you learn how to create apps? What resources were you using?

Gabriele: I mostly learned using online tutorials/videos. I don't remember all of them. I think the most important ones are:
http://developer.android.com/index.html
http://libgdx.badlogicgames.com/

Then I search on Google to spot tutorials/solutions for any issue I get.

I don't read the same websites but I normally use Google+, Facebook and reddit to get the articles I want to read.

Bartek: What libraries/frameworks did you use and why did you choose them?

Gabriele: I used libGDX because it's a very powerful library to create games. The key feature for me is the possibility to test games on a desktop with any screen size you like and the internal algorithm that automatically adapts a game to any screen resolution.
Bartek: Where did you get your resources from (graphics, sounds, music)?

Gabriele: I learned a 3D tool called Blender and I used a 3D renderer called YafaRay. I used them to create my resources.

Bartek: Did you use any other programming tools?

Gabriele: I just used Eclipse and libGDX.

Bartek: How long did it take you to make the Fifteen Puzzle X?

Gabriele: I made it during my free time and I probably spent one hour a day. It took me two months to create the basic version and lots more to continue with improvements and bug fixes.

Bartek: How do you monetize it? How much income does it generate?

Gabriele: I don't make much money from this game because I don't like to be very intrusive with ads. I have one banner at the top of the game and an interstitial on a back button. I probably got enough to buy a Nexus 5.
I'm using AdMob for the banner and AppBrain for the interstitial.
Bartek: Do you use any marketing techniques or ASO to promote it?

Gabriele: I didn't use any marketing techniques. I just shared it on Facebook/Google+ and asked for a review on websites.

Bartek: What are your favourite Android games/apps?

Gabriele: Real Racing 3, but I normally like puzzle games in general.

Bartek: What Android devices do you own?

Gabriele: Now, I have a Galaxy Nexus but my first device was an LG P350.

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

Gabriele: I read Android Central.

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

Gabriele: I don't have any big plans because this is just a hobby and it's difficult to get free time over my main work but I'm working on a new app.

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

Gabriele: If you plan to make an app or a game don't publish it until the basics are ready or you'll get bad ratings. When you are ready to publish try to share as much as you can because the first 30 days Google will give you a better ranking.

Bartek: Where can people find you on the Internet?



P.S. For those who follow my Blobby Volley progress reports, this week is going to be waaay more productive.

Monday, November 11, 2013

Blobby Volley for Android: Progress Report 3

This week was definitely not a productive one. Neither was it very lucky. But let's start from the beginning.

I only worked for about 3h. I was really busy with other duties and I went for a trip during the weekend. I'm not very proud of this number, but it didn't happen because of my laziness - I honestly had other things to occupy myself with.

Nonetheless, I was able to create a menu screen and an options screen. I also started using the HUD class to display points and FPS. All of those things I learned through the AndEngine Tutorials site. You can take a look at the screenshots below to get a grasp of what I'm talking about or just download the current game apk file.




I'm not very happy with what the menu looks like right now, but it'll do for a while, until I design a better one. You may notice that the FPS rate is quite high and on my Nexus 4 phone it stays close to 60 all the time.

Unfortunately, I won't be able to use the resources from the original game. I found a StackOverflow thread about using GPL-licensed images in your projects that said that it's not legal to do so. However, it also said that I might try to ask the author for permission. So I did, but I got the following answer:
I'm sorry to tell you that we have an Android app of Blobby Volley 2
already in incubation (.etatest) which will be released soon:
http://blobby.sourceforge.net/ 30. November ;)
The images and sounds are not OpenSource. So I'm sorry to tell you
that you can't use them. But feel free to use the GPL code for your
stuff under the terms of the GPL.
So not only can't I use the resources, but also they're writing their own Android version of the game. If fact, they've practically finished it. You can imagine that it didn't make me very happy, but after giving it some thought I decided to finish my game anyway. It's a great learning experience and I think it can still be successful. Especially if I make it better or just different from other existing ones. I'll probably be needing a designer though and I'm still not sure how I'm going to find one and how much I'll be willing to pay him.

Other than HUD, menus and legal issues, I was able to enhance the physics a little. Even though I didn't have time to code everything, I'm pretty sure I have it well thought over. If you're observant, you may notice that the ball doesn't influence the blobs' speed anymore (although it was an interesting effect). I transformed the blobs into kinematic bodies and I have a nice plan how to code the rest of the bounce mechanism.

Here's what I want to do in the next 7 days:
  • finish up the game physics so it behaves pretty much like the original game
  • enable the controls to be on both sides of the net (for left handed people and for those who prefer it this way)
  • add other control mechanisms - left/right buttons and possibly gyroscope
  • start working on blob animations
  • perhaps code a very basic AI
This week made me realize why documentation is important and why good code examples are not enough. AndEngine is lacking a manual and JavaDocs and without those two, you have to come up with your own design patterns and good practices. That's why I decided to get the AndEngine for Android Game Development Cookbook. I haven't started reading it yet, but I'll definitely share my impressions of it later. Also, besides regular progress reports, I'll be telling you, how far through the book I managed to get.


As a post scriptum, I want to thank Jeremiah McLeod from XdebugX Games for giving me a tip concerning TexturePacker. He wrote me a comment on the last progress report, indicating that libGDX has it's own TexturePacker which can be used for free, if my trial period expires and it leaves me with insufficient functionality. I didn't have to add any new textures last week, but I'll remember this piece of advice when I have another sprite to add. If you happen to possess a piece of information that might help me with my struggle, please share it as well.


Oh, and one more thing, a lot of people have answered my interview request lately, so you can expect weekly Q&A sessions with various developers. If you have something interesting to say, you can contact me as well at bartas.wesolowski [at] gmail.com... and if you just want to read and learn, come back in a couple of days or even better, sign up for email or RSS updates.