Sunday, December 13, 2015

Apps World

At the end of November I went to Apps World in London to represent my (currently former) company - STX Next. There were presentations on various technical things (which I couldn't really attend, because of my stand duties), but also hundreds of exhibitors showing what they were working on. In my spare time I managed to walk around a bit and talk to the ones that seemed the most interesting. I took their cards as well, so I'll try to follow up with them and ask some questions. Expect new interviews on the blog soon.

As to my new job, I'd like to write more on it in the near future, but perhaps when I get a better grasp on what it's like in there.

Unfortunately, my Blobby Volley Unity remake got stuck because I don't have enough time for it. What I want to do first is update my Milan Metro app, because it brings in the most income and the map is getting more and more out of date. I'm also losing track of my earnings, so perhaps it's time I reviewed them and posted another income report.

I really need to find a way to work on my Android projects more, but I find it very difficult. It's not that I'm procrastinating or anything, but I want to be able to do non computer related stuff as well (like my Italian lessons or sports). I also travel a lot or visit my friends/family in the weekends quite often. This leaves me around 10h/week of available time, which is very little, and I'm usually almost too tired to think anyway. Perhaps I'm trying to do too many things at a time?

What's your view on it? How are you managing to squeeze in extra time for your own projects? Is it even possible with a full time job and extra activities? Should I give up on something? I don't know what to think any more...

Wednesday, August 5, 2015

Blobby Volley Unity remake part I

I invited over my friend who knows Unity and she helped me start out with my Blobby Volley remake. We worked for about 2h - me typing and her assisting me with stuff I didn't know how to do. In the end we managed to create a playable two-player prototype. I'm amazed at how easy it was and how much faster than with the other game engines I've worked with in the past (AndEngine and libGDX). Seriously, if you haven't tried Unity and are still using one of the low-level engines then make yourself a favor and give it a go.

You can download the current desktop version of the game here.

Friday, June 12, 2015

I'm not dead - just busy

There are periods in life which overwhelm you totally and do not leave you any space to breathe. That's what's been happening to me for the last three months. A new city, a new job, business trips, new freelance contracts, knee problems, a short sailing vacation, being a best man at a friend's wedding - that's just a short list of things circling over my head lately. But hopefully, this period is almost over and I'm ready to move on to new projects and challenges... But before I get to it, let me just mention some things I've been occupied with all this time.

Guys from Mobartis asked to me localize their game, Fruit Worm Bubble, that I've been working on, into seven more languages: French, German, Italian, Polish, Spanish, Portugese, and Chinese. Of course, I'm not doing the translations myself, but the task is still quite demanding. Text in different languages has different dimensions and often overlaps other UI elements, goes off screen or stops being centered correctly. The whole project grew in size as well, since there are several new textures to store and load. I'm quite happy with the result though. After some small improvements that I'm still working on, I hope you'll be able to judge the new game version yourselves soon.

Other than the game, I got a third-in-a-row Elance contract from an appreneur who wants to create an interesting productivity app. I probably shouldn't tell you too much about it, because of the NDA, but let me just mention that it's getting very close to a releasable version and I expect it to be published in the not-so-far future. In the meantime my Elance profile got richer in experience, earnings and reviews, which is always a great thing.

I had some time to work on my own apps as well. I created Rome Metro, which is basically a clone of Milan Metro, but for a different city. Well, guess why I'm mentioning it now and not earlier. The app is doing quite badly, with only around fifty active users three months after getting published. I still don't understand why one app can have above 15k active users and another almost none. Perhaps it's because I didn't have so many good reviews from the start or because I used new ad networks which required more permissions. We'll see, perhaps it will become more popular eventually.

But I started talking about ad networks... I integrated StartApp banners and Ogury interstitials into both my metro apps. I got fed up with stupid "virus found" banners offered by AdMob and others. StartApp was doing fine in the beginning, reaching the CPM of up to $0.60. Unfortunately, it started getting worse and worse, and now it oscilates around $0.10-$0.30, which is not even as good as AdMob was doing earlier. Ogury, on the other hand, has been a pleasant surprise. It has a guaranteed CPM of $15 to $25, which is great compared to other ad networks. It earned me almost $120 in the last 30 days and keeps going up. The bad thing is that it has rather low fill rates and that it works so well only in specific countries: Italy, France, and England. As my metro apps are mostly for Italians and the income is high despite the low fill rate, I'm certainly going to stick with Ogury for a longer period of time.

Before trying StartApp I wanted to implement Airpush banners. Unfortunately, they used to force a dialog asking users to accept an EULA, which made me change my mind. However, recently they've removed it, so I might switch to their services some time in the future. Their 360 banner looks very promising and I haven't had a chance to experiment with it yet.

To close up the subject, it's worth mentioning that a friend of mine recommended to me Chartboost. I read their informational materials and signed up for the newsletter, and I have to say that I'm pretty impressed. Too bad you can only use it in games...

Now a short show off break. I managed to complete a 10-week Machine Learning course on Coursera with a score of 100%. It might have been the most interesting course I've done on that e-learning site and perhaps also one of the most demanding. Definitely check it out if you're interested in how computers learn, self-driving cars, recommender systems (e.g. the one built by Netflix or YouTube), image processing, OCR (text recognition), etc.

Finally, let's talk about plans for the near future. I've finished one Unity tutorial so far: a 2D Roguelike game. I'm amazed by the engine's capabilities and ease of use. I'll try to learn more, perhaps by rewriting my Blobby Volley game and adding in some new features. Sadly, I can't spend as much time on this project as I'd like, but I'll try to squeeze in and hour or two here and there. I'll be also trying to post new updates on the blog at least once two or three weeks. I might even upload a playable version of the current state of the game with each update. Stay tuned and don't give up on me just yet.

Friday, March 6, 2015

What I've been up to lately

Hi! It's been a while since I posted something and I wanted to let you know what I've been doing throughout all this time and what my plans are for the near future.

First of all, the game I was working on, Fruit Worm Bubble, is already done and published on the Google Play Store. Although the idea wasn't mine and most of the code hasn't been written by me (I made it for an outside company - Mobartis), I'm still quite proud of it. It has great graphics, pleasant sounds and music, and some interesting gameplay mechanics. Make sure to check it out and if you're interested in more development details, take a look at my previous post about it.

I'm still cooperating on the game with Mobartis - fixing bugs and adding alternative ad networks and in-app payments. Later in the future I'm hoping to share with you some data concerning ad network efficiency and promotion techniques they used (of course if they let me do it...).

My second big project was Blinq. They hired me through TopTal to implement various animations, so now, when you open the app, the splash screen and the onboarding process have been brought to life by me. I was complaining earlier that TopTal wasn't really working that well since it was difficult to get a job there. Well, it turns out that it's possible, although I still claim that it isn't easy...

When it comes to the app itself, it provides users with information from social media about people they message with using Facebook Messenger, WhatsApp, Hangouts, Skype and SMS. Basically, whenever someone writes to you, you see a window showing what they've been posting on their Facebook, Twitter, LinkedIn, etc. This way you can stay in touch with the latest events concerning people you care about. Blinq has been featured by TechCrunch and Silicon Valley Business Journal and I suggest you give it a try as well.

Apart from the big projects, I've been working on smaller ones as well. I managed to get a couple of Elance jobs. I've done five of them so far and I have to say that I'm quite satisfied with the site overall. If you get some practice, it's not so hard to find there interesting work that pays relatively well.

To boast a little bit, here's my profile:
I've had three clients so far and they all gave me a five-star rating. I've earned $1,384 in total. Perhaps, if you have some Android work to do, you can consider hiring me as well, haha. I'm quite busy at the moment though.

If the above weren't enough, I moved to another city once again - Poznań - where I used to live before 2013. My girlfriend got a job here and after a long discussion we decided that we were ready to leave Cracow (after less than half a year of me living there). So I quit my job - Infusion - and found myself another one - STX Next - where I'm a full-time Android developer now. Time will tell how long we'll stay here...

Not to make this post unbearably long, I want to give you a sneak peak of what I'm planning to do next. First of all, I have another of my metro map apps almost ready to be published. It just needs some final corrections and Google Play Store graphics/screenshots. Other than that, I started using two new ad networks and I'm curious to find out how well they'll perform. I also want to experiment with CodeCanyon and see if I can make some money there. Finally, if I can find any more free time, I'd like to learn some Unity. Perhaps I could make a very simple game using it or rewrite my Blobby Volley.

Until next time. Don't forget to visit me again and see how I'm doing. Peace.

Monday, January 19, 2015

Android indie developer interview: Matey Nenov (2)

I'm not sure if you remember but back in November 2013 I interviewed an interesting developer - Matey Nenov. He had a blog on which he regularly reported his income and he was making around $300/month. Well, more than a year has passed since then. He's just released a brand new game, Follow the Line 2D Deluxe, and he made over $1500 just in the past December. I asked him to answer some questions regarding his recent work and he kindly agreed. I hope you'll enjoy what Matey says as much as I did.

Bartek: I played your new game and it looks amazng. Can you tell me something about it? Why did you decide to implement this specific idea? What tools were you using? Did you make the graphics yourself?

Matey: The game idea is old. I played a game like this in the nineties. I saw then the "original" Follow the Line. It was very popular but actually implemented pretty badly. There are lots of clones on Google Play, but they are even worse than the "original". The game looked simple enough, so I decided to implement it better.
I use Unity, so it is relatively easy to implement special effects. I did the graphics by myself and hired on Fiverr someone to do some of the audio effects (the female voice). I also hired someone for the video.
For the graphics I used Inkscape and Gimp, for the audio effects - Audicity.

Bartek: When did you switch from libGDX to Unity? Why did you do it? How long did it take you to learn it? Was it a good decision?

Matey: libGDX is a hobby tool. Unity is a professional game engine (2D and 3D). It is very easy to use and makes game development much much easier. Porting the game to different platforms is also very easy. I made my last 3 games with Unity and I will continue to do so. There are also lots of video tutorials on the Unity main page, so learning it is actually a matter of hours.

Bartek: How long did it take you to implement the game? Are you working on your projects full time now?

Matey: It took me 3 months of my spare time. I also have a family, so I don't really have much time for my projects. I have a regular job and mobile apps are still only a hobby... I live in Germany and my income from mobile apps is too low to make a living...

Bartek: Is your regular job Android related?

Matey: No, I am a Scrum Master in a JEE project. I don't develop software by myself anymore (only as a hobby).

Bartek: Did you port your game to other platforms as well?

Matey: Unity supports many platforms, so it is no problem to compile for any platform you desire. At the moment, I make games only for Android and iOS because they are the most used platforms. I was thinking of porting my games to Windows Phone as well, but the Windows Phone market is still to small to be relevant...

Bartek: What's the revenue share between the platforms? On which do you earn more?

Matey: I only have my last three games on iOS. Two of them don't earn much on Android or iOS. I plan to release a free version of Follow the Line on iOS in February, so for now Android makes almost all the money I earn. However, I sold over 100 copies of Follow the Line for iOS in December. I think that in the future (as I read on other developers' blogs) iOS will be more profitable.

Bartek: Why did you decide to use Fiverr? Was it easy to find someone reliable? Did you try other freelancing portals as well?

Matey: It was very easy to use and there were people who offered exactly what I needed with examples that showed what the final product could look like. In the past I used Elance, but it seems to be for more complex stuff. I also used Odesk. It is comaparable to Elance.

Bartek: Do you have a paid license for Unity? Can you explain how its licensing works?

Matey: I use the free version. It has some limits, but for now it is sufficient. You can use the free version for any platform until your company makes $100k in one fiscal year, then you must switch to the paid version. Unfortunately, I am still far away from that point...

Bartek: Are you planning your next game?

Matey: I am already working on it, but it is too early to say anything else...

Bartek: What would you say was the most important factor that helped you get to the income level that you have reached?

Matey: Not giving up :) and trying to make every next game a little bit better.

Bartek: Were you considering making regular apps instead of just games?

Matey: I considered regular apps, but I have no ideas what to make and how to market it.

Bartek: Are you learning anything new right now or just using your current knowledge?

Matey: I'm always learning something new. I first decide what I want to do/achieve and then learn the needed skills to do it... At the moment, I'm mostly learning how to market games. To make the things more difficult, the Apple App Store and the Google Play work very differently and Android marketing strategies don't apply to the App Store. Now I have time until February to run a good marketing campaign. Nowadays good marketing is the difference between success and failure.

Bartek: How do you promote your games? Why do you think marketing Android games is different than marketing iOS games?

Matey: Because the stores function very differently. On the Play Store the first 30 days are very important to kick start the app as are all the ratings (from the beginning). You can update your app very quickly, so you need to monitor how the apps perform and how people react and make changes/fixes accordingly as fast as possible.
On the other hand, the App Store functions very differently. You can't make quick changes, because there is at least a one week wating period for an app to be aproved by Apple. I also read that not all reviews are being taken into account for the final rating. If you fix a problem the negative reviews caused by the bug will not affect the ratings as much as on Android... There is also no "new" section for apps less than 30 days old, so you can market whenever you want... although I am not entirely sure about all this. That's why I am trying now to gather as much information on the subject as possible, e.g. the Android paid version was number 1 in the top new casual paid games and I was getting about 3 to 5 sells a day. After 30 days the sells dropped to around 3 per week. On iOS I am still getting around 3 sells a day... and I didn't do any marketing there...

Bartek: So you just try to fix any bugs that arise and reply to comments? Do you do anything else?

Matey: I did CPI campaign in the first 30 days. Now I'm just fixing bugs and replying to comments. For iOS I'm planning to do something like this as well, although I am still not sure what it will be.

Bartek: So how much did you pay for such a campaign and was it really worth it?

Matey: Yes it was worth it. I am not an expert and it was the first time I made a campaign. My plan was to concentrate on a small region and try to push the game there to the top new lists and I succeeded. I invested around $850 and I already got it all back (as you can see in my income report for December).

Bartek: Do you use any analytics in your games?

Matey: I always implement Google Analytics in my games.

Bartek: What are you measuring? Have you tried other analytics libraries as well? I find Google Analytics a bit confusing.

Matey: I find it very easy to use and very useful. It is integrated in the Google Play Services, so you don't need any extra libraries. The official Google Play Services Unity plugin has analytics integrated...

Bartek: How are you monetizing your games?

Matey: For monetization I mostly use interstitial ads. In my new game I also have banners, but they are not very effective. I don't use AdMob any more. I started using StartApp.

Bartek: Why? Is their CPM better?

Matey: Yes.

Bartek: What CPMs are you getting?

Matey: $2.8 to $4.

Bartek: How many installs and active installs does your game have right now?

Matey: Now my game has around 60k installs, 20k active installs, and around 8 minutes of average session length. I think this is also a very important metric.

Bartek: When are you showing the ads? Have you tried video ads?

Matey: I show interstitial ads after the game is over (but not every time) and banner ads on pause. I have video ads in my other games and they are very effective, but I don't think that they are well suited for this game (play time is probably too short to show long video ads).

Bartek: Are you planning on outsourcing more of your work in the future (like graphics, music, and perhaps even programming)?

Matey: I want to, but it is hard to imagine how to outsource game programming... Graphics and music are probably easier...

Bartek: Where did you get the music from for the Follow the Line 2D Deluxe game?

Matey: I got the music from incompetech. They have lots of great stuff with the CC license.

Bartek: How many different obstacle types are there in the game?

Matey: The obstacles are divided into two categories: moving and static. The moving ones are mostly rotational, but there are also some with other kinds of movement. I created around 30 different obstacle types. The game starts with just one and then every level another one is unlocked.

Unfortunately, the interview ended here, because Matey had to go feed one of his kids. Nevertheless, he managed to share a lot of extremely useful information. I hope you found it as inspiring as I did. If you'd like to ask him something else, let me know or just ping him on his blog:

Thursday, January 1, 2015

Beginner Android developer interview: Gianluca from Frank Games

A month ago I got a mysterious email from a novice Android developer trying to promote his game - WHIZZY. I quite liked his first creation and I decided to ask him some questions about his programming experience, going back to my somewhat neglected tradition of publishing interviews. I was thinking that it could give you some inspiration for 2015. What struck me the most in Gianluca's answers was how little it requires to create a fairly decent game. I hope it'll give you some food for thought as well.

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

Gianluca: My name is Gianluca. I'm 23. I live in Sardinia (Italy). At the moment, excluding programming, I'm not doing anything special.

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

Gianluca: My adventure as an Android programmer began by accident a short time ago. My goal was to create programs for Windows, but, talking with friends, I realized that at the present time the future of applications concerns the world of smartphones. Although, in my opinion, the applications for smartphones are no longer the future but the present. If we want to look even more forward in time, I believe that in the future programs for robots and modern devices like Google Glass will become very important . In any case I started Android programming for fun.

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

Gianluca: As the first point, I learnt to program in C++ thanks to the book by Stroustrup, various programming tutorials online and websites. When it comes to video game programming, I usually do not study all functions. I try to understand how the framework works and learn only the functions I need.

Bartek: Did you study something computer-related?

Gianluca: Depends what you mean. I never did a computer science school. I'm self-taught, but I believe that the Internet offers enough content on the subject. Without doubt my training is not comparable to that of a computer engineer, especially when it comes to knowledge of programming languages such as C/C++. I do have a small base on low-level network programming using sockets though. It was very nice to start with these programming languages because they make you understand how a computer works, which does not happen with higher level languages. As a next educational goal I wanted to learn a high-level programming language. I was undecided between Java and Python.
Bartek: What libraries/frameworks do you use if any?

Gianluca: I use the win32 api for Wwindows and Cocos2d-x framework for Android.

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

Gianluca: I usually try to invent something different. Even if my ideas are always influenced by the ideas of others. It's normal and it works well for everyone. Up to now I've made just one game. It's not anything special. I created it while learning Cocos2d-x. I saw that there are other games similar to mine, perhaps because it is a type of game easy to make for a beginner. During the creation of my game I have not copied from anyone. In fact, I think it is similar to others but not equal.

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

Gianluca: Unfortunately, as you can notice, I'm not much of a designer. I work alone. I learnt the basics of Photoshop. Regarding the sound I try to take resources not protected by copyright, so from YouTube or specialized sites.

Bartek: Could you give some examples of sites that you take your graphic resources from? Also, what did you mean by writing that you were taking them from YouTube? How can you do that?

Gianluca: From YouTube I take only the audio resources. I download a music video or a sound that I like and I convert it to mp3 or ogg. As for the graphic resources, at the moment I create them with Photoshop. I'm not very experienced with it. I only know how to create basic shapes - spheres or cubes with light and shadow.

Bartek: Do you use any other programming tools?

Gianluca: In general, I use Code::Blocks, Notepad, and Visual Studio. When I program for Windows and with Cocos2d-x, I use Visual Studio. When I use Ubuntu, I program with Code::Blocks as well.

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

Gianluca: It took me two months to create my first app, but that's because I was good at programming with the console. Included in these two months are also all the days I was learning Cocos2d-x. If I had to recreate a similar game with the present knowledge, it would take a few days.

Bartek: How many hours a week (on average) were you working on the game?

Gianluca: Sometimes I stayed at the PC all day, sometimes for only three hours. If I'm inspired to create something, time limits don't exist for me. In general, I'm at the computer for a long time even though I'm not planning to.

Bartek: How do you test your apps? What devices/tools do you use for it?

Gianluca: I test my apps in BlueStacks emulator and on Android devices.

Bartek: How much are you making on your apps?

Gianluca: A few pennies. I've just started. Before I can earn some money, I should at least make people understand that I exist, I should also create a more diverse portfolio of video games.

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

Gianluca: I've been monetizing my game through ads, but I have not yet found a decent ad network.

Bartek: What ad networks have you been using? Why do you think that you haven't found a decent one yet?

Gianluca: For a short period I was using RevMob. Its banners were beautiful and full-screen, but their size was too big. They were slowing down the execution of the game and they were appearing too late - often in a wrong moment. Currently, I'm using Millennial Media. The loading speed is fine, but the banner quality is bad and it's not full-screen. I don't know if it's my fault or theirs. I'll try other networks in the future, but I am in no hurry at the moment, because I don't generate many ad requests anyway.

Bartek: What do you think has been the most/least successful aspect of your game?

Gianluca: It's too early to talk about these things.  With the first and only application that I created, my expectations weren't very high. It was made for the purpose of learning. With time I'm hoping to improve my skills. Meanwhile, I'm working on another game that should be more innovative and have lower hardware requirements.

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

Gianluca: Not for now. Just a bit of promotion among friends and on forums.

Bartek: What are your favourite Android games/apps?

Gianluca: I really enjoyed Geometry Dash.

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

Gianluca: None. I read a bit everywhere, but can't remember the name of a particular site.

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

Gianluca: I am creating a new game. It seems to me there are no similar ones on Google Play yet, so it should be quite innovative. I hope not to be wrong, although sometimes, because there are so many games on the Play Store, you realize only later that your idea was not so unique. But one thing is sure. I'm not creating the game trying to emulate someone else's. I'm modeling my way, with my way of thinking. It's important to me that my work is not a copy of another game.

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

Gianluca: I can recommend to follow this profession only if you have passion. If you believe in getting rich, you'll probably lose time. Few developers earn money with applications when compared to the number of them publishing on Google Play. I think that things need to be done only if you enjoy doing them.

Bartek: Where can people find you on the Internet?

Gianluca: Now only via email: Twitter and Facebook will come with time.