Bigosaur blog

7DRL Challenge: accepted

I just joined the 7DRL Challenge. My game is called Tower of Tyrant. It's a mmo rpg. The goal of the game is to climb at the top of the Tower and kill the Tyrant (player currently on top). Then you have to survive as all the other players are climbing to the top.

And now the twist: once you pass each floor, you get to build a floor for other players. So, for example if 50 players play the game and they pass the first floor, there will be 51 designs for the first floor for 51-st player - and he gets one of those randomly. I'm writing to code from scratch, and I'm going to reuse some graphics from my Gods of Sparta game.

I plan to make the game easily extensible with your own monsters, weapons and magic items, and perhaps stuff like using JavaScript for you own custom AI.

Feedback & Share Milan Babuškov, 2014-03-09

Using Facebook Ads to reach Android Game players

Some time ago I decided to spend $100 on advertizing my Drone Invaders game on Facebook. Facebook ads have some really nice features, like picking only people from certain countries who like certain things. So I selected people from English speaking countries, who have an Android phone and like Space Invaders or Galaga.

The campaign ran for 18 days and got 839 clicks, which is around 46 clicks per day. On the other hand, I was monitoring players that played the game. Unlike Google Play which monitors installs, I'm monitoring how many people play the game and get to the Game Over screen. During the campaign I had about 40-45 new players coming in each day. Since the campaing has ended, I have about 10 new players coming in each day. So, the campaign effect was about 30 new players per day or 540 total. Thats 540 players for $100, or $0.185 per player. It's nice to know this figure before doing some ads, but spending $100 to learn this is also not a big deal. During this campaign the game earned about $25, so it's a net loss, but the game is not about making much money anyway. It's free to play with completely optional in-game purchases.

To conclude: I find Facebook ads useful and would use it in the future if I create some game that I feel can bring in some real money. Especially if I make a non-free game, this seems like a good way to attract more players. It's great that you can target people who like similar games and have a device it runs on.

Feedback & Share Milan Babuškov, 2013-11-29

Marketing your Android game - start early

Three weeks ago I released Drone Invaders. After the initial hype, the number of daily downloads has slowely but surely went down, and now sits stable at around 40 per day. But I want to talk about this initial hype in hope other beginner game developers might find it useful.

As I wrote before, I posted about my game to multiple sites. I posted daily updates to LudumDare, and important milestones to Java-gaming. I posted twice to HackerNews, and Reddit. I posted once or twice to other sites listed in the linked blog post above. In this case numbers speak more than words, so here are the top sources of traffic to my blog posts about Drone Invaders:

Top traffic sources for Android game blog

Conclusion: do not wait to market your game. The main site I missed is TIGSource. It's a high-traffic site with a lot of posts every day. If you just post when your game is completed, not many people would see your post. I wish I posted my progress daily, or at least as often as on Java-gaming. It would build more interest as the game was built, and surely would result in more installs after the release. If you know some more sites like those listed, where developers can post about the game development progress, please send me a tweet about it.

Feedback & Share Milan Babuškov, 2013-11-14

October Challenge Complete!

In the last two days, I got a couple of new orders for in-game coins, coming from Denmark, Australia and USA. Thank you.

That's $21.81 of income, of which about $5 was me testing if the payments work, and there's Google's cut as well. In the end, I earned about $11. Since October Challenge was to earn $1, I succeeded. However, I still have a net-loss of about $14, since I invested $25 in Google Play developer license.

Now that I see there is some interest in in-app currency, I'll try to do some paying forms of marketing, to see if that brings in some new players. When you publish an Android game, a lot of marketing companies e-mail you with their offers. I'm going to try some of those. I'll write about the results in a week or so, after I have some data.

Feedback & Share Milan Babuškov, 2013-11-04

Success or failure?

I released my game Drone Invaders about a week ago. It's a free to play shooter game for Android with optional in-app purchases. I did successful promotion on LudumDare, Java-gaming and HN websites, which got me to about 1000 installs so far. I'll soon post more stats about user retention, games played, etc.

I also posted in Shoot 'em up forums, TIG forums, IndieGameMag and added info to IndieDB. All those did not bring in much interest. Judging from player feedback, the main source of interest was HN post, where some people were more excited that I created the game in just 23 days, than in the game itself.

All this got me $0.69 profit so far (if you ignore the $25 fee to open a developer account on Google Play) as one person bought one in-game pack of coins. LudumDare challenge is to earn $1, so I need only one more purchase. But, it seems that will be a huge challenge to get it.

I also tried promoting the game on Twitter, but from my 200 followers I had prior to launching, only 3 tried the game. I guess you really have to engage daily with a lot of people to even get them to read your tweets. After the launch I got about 180 new followers. BTW, using bit.ly to track how many clicks came from which source (Twitter, forums, etc.) is a great idea, I'm sorry I did not apply it everywhere.

I posted several posts on Reddit and I noticed someone from HN crowd also posted. While mine posts to /r/gaming, /r/gamedev were barely voted up, that other one in /r/Android got some +187 votes and got some attention.

I wrote an e-mail to eleven journalists who do cover mobile games and I thought would be interested about the game. No reviews came out of that. In fact, nobody replied except for one guy who was decent enough to tell me that he thinks that the game is not worth covering on his main website, but I could try the forums. I guess it's hard to get through with retro graphics.

To be honest, I'm a little bit tired of banging my head against the wall with the marketing. The user reviews on Google Play are great, but the game is not very attractive when you look at screenshots or video, it only shines when you play it yourself. I have no idea how to get some journalist that covers Android to try the game?

Feedback & Share Milan Babuškov, 2013-10-31

Day 23: Release!

My game is ready and available for download on Google Play:

https://play.google.com/store/apps/details?id=com.bigosaur.backyardpanic

Please try it out, let me know if you find any bugs. The game is free, but if you like it, please tell your friends to try it and rate it in the Google Play. Hopefully, someone would like it enough to buy some in-game coins and I'll complete the $1 challenge :)

Even if you're not going to buy anything, please tweet about the game to your followers on Twitter. Thanks.

Feedback & Share Milan Babuškov, 2013-10-22

Day 22: Sound effects

Although I have a wast library of wav sfx files I accumulated over the years, I've seen other game devs use Bfxr to create their own effects, so I decided to give it a try.

This is nice, because you own the effect 100% and you don't need to prove where did you get the audio file. Some of the sites I used to download my sfx in the past are no longer online, and tracking people who made those is impossible. For example, my favorite mod music is Aspirating Milk which I found on modarchive. I tried to contact the author via e-mail in the tracker file, but got no reply. It was probably his address at university or something.

Bfxr requires Windows or Mac, while I prefer doing my development on Linux. I thought about running it on Wine, but didn't even bother to try because I found this:

http://www.superflashbros.net/as3sfxr/

It's a super easy to use and simple Flash app you can run in your browser. I highly recommend it.

These sfx programs produce various simple sound effects. Some complex sound effect can be created by mixing a couple of simple effects in a program like Audacity. I used it to create sfx for Atomic Bomb powerup:

Mixing sound effects from as3sfxr in Audacity

BTW, I basically completed the game, I'm now testing on various Android devices. I'll probably do the release on Google Play store tomorrow.

Feedback & Share Milan Babuškov, 2013-10-21

Day 21: Monetization of Android game

I'm making this game as an experiment, so I don't expect to earn much money. This game is going to be free to play, with option to buy coins in the game if you want. I like the way it's done in games like Pudding Monsters where players can play everything without paying at all. Drone Invaders will be completely playable without paying a dime, so it is not a kind of "pay to win" types. However, I still want to enable players who can't wait to have fully powered up weapons right away.

Buy coins for Android game

I opened the Google Play account without problems. It was $25, which is fine. I just read some blog post where a solution to saturation of Google Play was suggested - it proposed to have $5000 registration fee, so only developers who are serious would apply. I'm not sure if I would apply for $5000, it seems so me that only big studios who are already making money on other platforms would participate.

However, opening a Google Merchant Account is mission impossible from my country. So, what are the options. Well, you can still add payments with services like Fortumo or Centili, but this has two problems: 1. it goes against Google Play terms of use, so you either risk getting your account suspended or you only publish to other Android app stores (there are some 30+ as far as I can tell, and some stats say they make up about 30% of the market, although this seems too high to me). 2. to enable payment via SMS, your game needs to ask for two system permissions which users probably won't like: send and receive SMS. Although this is the only way to enable monetization in some countries, if you aim for US market, it's a bad idea.

Third option is to start a company in USA and register account that way. This is of course the right thing to do if you expect to earn some substantial amount of money from your game, but having an US company brings in some costs. There are specialized agencies that can register you a company in Delaware. Delaware is a USA state and a tax-haven. Of course, you can always tranfer the earned money from there to yourself, and then pay the taxes locally on that transfer. I'm not ready for this step yet, as this is my first game and I have no clue if I will make any money of it.

Luckily, I have a friend who lives in US, so we opened an account under his name, and the game will be released under that account. At least merchant account is available for US individuals. I still don't understand why Google won't allow merchant accounts from my country, when I'm receiving money from their AdSense directly, without any problems. I guess not all departments of Google have the same policy.

Feedback & Share Milan Babuškov, 2013-10-20

Day 20: Weekly challenge. Persistent player data. Java date woes.

Weekly challenge will be to collect some amount of stars during a week and get some nice reward, like 8 atomic bombs, 5 shields or similar. I made a nice gold star in Gimp. I tried different particle effects on it and also some diffused star-light, but it did not look really good. So I went back to the particle effect used for powerups and tweaked that until I got something distinct for the star. Stars show up on their own pacing, so you can have both a star and a powerup on the screen at the same time.

Weekly Challenge

I also worked on loading and saving player data. It was much easier than I expected. I expected to have to learn some Android data storage API, but for simple key-value storage, libGDX provides the Preferences class. Just init with:

Preferences prefs = Gdx.app.getPreferences("DroneInvaders");

and then use get("key", defaultValute) and set(key, value) to read and write the values.

The only thing I had problems with are the dates. To keep track of daily and weekly challenges, the game stores the date of last play. When player launches the game, it compares that and resets some counters. Theoretically, I could prevent players from changing the system's calendar to past date, but I don't want to. What I am doing, is setting new set of daily and weekly challenges when day rolls over and resetting the counters for number of stars and letters picked up.

To make that work, I had to get the day difference between the previous play and current date. It matters whether it's the same day, exactly one day apart or more than one day. Googling got me to various websites and StackOverflow questions. Answers are funny. Many programmers simply calculate difference in seconds and then divide by 60 * 60 * 24 to get the days, completely ignorant about issues with daylight savings and leap seconds. One could argue that it does not matter that much for a game, but still getting many bug reports twice a year doesn't sound like fun to me. Some other guys simply count the days by adding one-by-one from start until they reach the end. While those loops might look correct, they still miss sometimes as they do not take the time out of the calculation. If one object stored 01.Jan at 5am, and you calculate it vs 02.Jan at 23pm, adding one day to first object is still less than the second, so they add two and get 2 day difference.

One of the tricks I use in this situation is to always set the time of the earlier Date to be something like 10am, and set the time for the later Date object to 5pm. Since daylight changes always happen at night, this is safe. And we also have 7 hours in between, just in case someone in future decides to do daylight saving changes in the middle of the day.

Feedback & Share Milan Babuškov, 2013-10-19

Past blog entries

Bigosaur.com Website Home Page Blog main page Twitter account