The main purpose of this website is to support Android indie game developers with tutorials, reviews and promotion of their games. The main difficulty for the developers is not to make the game, but to get exposure. To get it out there. If you find anything useful here, please spread the word. Like my page on Facebook, follow me on Google+ or Twitter. Thank you!

Google+ Facebook Twitter

× close

Saturday, 28 September 2013

Mr. Dandelion's Adventures - Last Big Update

After much thought, I have decided to stop working on Mr. Dandelion. It was a great learning experience, but I have missed many important points when I released it and now it's too late to fix the mistakes. I like the game and I think it's not bad, but I simply did not know how to get it out there and it shows. I will summarize what I have learned in a series of tutorials I want to write.

Even though Giftiz featuring temporarily brought some players to the game, it's not enough. I have finished 3/4 of the levels I wanted. Summer, Autumn and Winter seasons are done. I only finished it because some people actually asked for it on Facebook :)

I will focus on other games now and possible on other frameworks. AndEngine is not bad for a start, but it is not very well maintained and hardly updated nowadays. I will create one more game in AndEngine just because I have an idea that I want to make it quickly, but after that I will move to other libraries. There's plenty of them to choose from...

Link to Google Play Store

Some screenshots from the winter level:

Read more »

FIFA 14 review - Future of Mobile Gaming?

If you have ever doubted that the future of gaming is mobile, another argument was just released to Google Play store (and Apple App Store too).

FIFA video games series started in 1993 and since then EA is releasing a new version every year. If footbal (or soccer if you wish) is one of the most popluar sports of the planet, FIFA from EA is equally popular among the video games - it's one of the best selling titles out there and sells every year.

I was never a big fan of sport games, unless it's something really special, but when I saw the screenshots from FIFA 14, I just had to try. The visuals are simply stunning. I only played it on my phone's 4.55" screen but it looks awesome. This game gets maximum out of the mobile hardware. And it's not just graphics - the animation looks very realistic too.

I could hardly believe this is just a mobile game and it can be downloaded for free. Of course to play tournaments or leagues, or to become the manager, you have to use in-game purchase to unlock these modes. But even for free this game rocks. It's simply the best looking mobile game, I've ever played.

Downside of this are the hardware requirements - it's not only the best looking but also the most demanding game out there.

But look at the level of detail and you will understand why.

The menu interface of the game is very nice too, makes the best use of the touch screen I've seen so far. The touch controls are a bit inconvenient on harder difficulties, but there's still option to use the classic on screen buttons. Music is great too, EA always licenses contemporary pop/rock music for the game. And traditionally the game contains high quality live commentary.


There are millions of other features like social networking, trading, etc. that I will never use, but they can make the game certainly more interesting. For me the quick games like Games of Week which feature the real matches of the current week (including some of the real events from the games!) are enough and they make this game worth it, despite the humongous download size (1.5GB).

Download from Google Play Store
Read more »

Tuesday, 24 September 2013

Giftiz Review - App Discovery with Gifts, Worth for Indie Developers? Part 1 - Updated

Giftiz is an app discovery service for Android. They offer real gifts for playing games. People are motivated by the gifts to download a game, play it for a while to complete a "mission" and earn XP points that can be spent on the gifts. This article is a review of the Giftiz service from the perspective of the game developers.

So what's in it for the developers? Giftiz has quite a large number of "players" that use the Giftiz app. Your game will be offered through this app and you can be sure the players will play it for about 5 minutes - that is the requirement of the mission. What exactly is a mission is upto you.

What's the catch?

What is the costs of this publicity? Well of course it's not for free. At least most of the time. Giftiz is a paid service for developers. Developers pay for each install coming from Giftiz. If it is worth or not depends on the deal you can get from them. But of course to create a successful game, you need to get as much publicity as you can in the first month in the store...

My story

The company behind Giftiz contacted me  first with another offer - their mobile ads AdBudiz. But I was not really interested. It was shortly after the release of Mr. Dandelion and I made a joke that the only thing I need is some publicity and they actually offered me Giftiz. For free. Since Mr. Dandelion is my research project, I said why not?

I was told that Giftiz discovers suitable Indie games and offers them Giftiz deal for free. I bet it's profitable for them, because they need to keep the players engaged. And of course the paying customers need this too - to be discovered from more places. Pyramid Mover is another example of a game that got this deal.

Implementing Giftiz was very simple. They have a SDK that does everything for you and useful example projects. A Giftiz representative just checked if everyting works and that was it. I spent less than an hour adding it to my game plus some time mailing with Giftiz.

Yesterday was the first day of "featuring" of my game - which means yesterday the people can start playing my game to complete a mission. In my case it's completing first three levels. The featuring came quite late and won't help me to get to Top New category - simply because I am already past the 30 days of being new. Giftiz said that the paying customers have priority over free deals.


My game has been in the store for about 2 months now and the number of new installs was slowly dropping. After the Giftiz featuring, I immediately got cca thousand new installs on the first day. I can summarize the effect of Giftiz in 6 weeks when my featuring ends. I am going to post another article about it. Right now I believe this service has a potential to help you to get you to the Top New category. It all depends on the timing and the cost.

Here's the same graph after 4 days of featuring. About 1600 new downloads from Giftiz. I will try to get the real numbers from them for the second part of the article.

UPDATE: Graph after two weeks with Giftiz:

I am not affiliated with Giftiz and I am not getting anything extra from them for writing this.

Continue to part 2...

Read more »

Saturday, 21 September 2013

Sony Xperia ZR wifi problem - update

IMPORTANT! If you had the same problem as described here, please leave a comment with specifics of your problem! If you share the article, please share publicly to appear in the list of the comments. A lot of people are reading this article, so please add any information that can help future readers. THANKS! 

Finally, Sony made a phone that is exactly what I always wanted. 720p HD resolution on 4.5" screen, enough memory, big battery, good camera and dust and water proof. You can read positive reviews all over the web, so I won't bother adding another one.

After a week of being a happy Sony Xperia ZR owner, my wifi stopped connecting to networks. I can't connect to any network I have tried, but the list of networks is ok. It stopped working suddenly. My previously used networks are all marked as "Saved", but when I try to connect the following happens:

  1. Saved (doesn't even change when tapped)
  2. Connecting -> Saved
  3. Connecting -> Authentication problem -> Saved

This is what I have tried to fix it:

  1. Restart phone
  2. Restart phone, take out battery, SD card and SIM card
  3. Restart wi-fi router
  4. Connect to another network (sometimes works with some networks)
  5. Forget network -> Type password again
  6. Connect another Android device to the same network
  7. Connect another non-android device to the same network
  8. Change the router wireless settings to WEP, WPA and unsecured
  9. Factory reset of the router
  10. Sony Companion -> Repair
  11. Factory reset of the phone

And nothing worked. I packed the phone into the box ready to go to service centre and went to cook a delicious stew which took about 3 hours and filled my apartment with heavenly smelling goodness. I came back to check whether there are any data in the phone and it started to work again. Just like that. I did not do anything.

But my joy lasted only for a while, because after the phone lost the wifi connection, it didn't connect again. I took the phone to work to try more wifi access points. I have tried about 10 of them on the way there and three more in the office. Same result. I tried to dig deeper and this is what I found in LogCat:

09-18 09:10:12.130: W/wpa_supplicant(3838): wlan0: Failed to initiate AP scan
09-18 09:10:12.811: I/wpa_supplicant(3838): wlan0: Trying to associate with (here is the router MAC) (SSID='smartus@unifi' freq=2427 MHz)
09-18 09:10:14.023: I/wpa_supplicant(3838): wlan0: CTRL-EVENT-ASSOC-REJECT bssid=(here is my router MAC) status_code=1
09-18 09:10:19.088: I/WifiManager(2391): Process ndroid.settings requested an active scan
09-18 09:10:22.812: I/wpa_supplicant(3838): wlan0: Authentication with (here is the router MAC)

Same thing for every router. Sometimes the connection went through and then I would connect for a while. CTRL-EVENT-ASSOC-REJECT should only happen when the network is too busy and the AP rejects your connection attempt. I think the phone simply started to misinterpret signals from the router.

I took the phone the service centre, where they tried to flash upgraded ROM, but it did not help and the case was closed with the conclusion "faulty hardware".

I hope nobody will ever need to read this article. But if you are reading it, because you have the same problem, it might be hardware issue.


The phone body was replaced. Wi-fi works very well now, but will wait for two weeks to make the final conclusion!

Update 2

The phone seems to work after another two weeks. No issues with wi-fi. Hopefully it's gonna stay this way. Also this article made it to TOP 5 articles this month. Looks like this is pretty common issue.

Update 3

Xperia user Emmanuel suggested that it might be a software issue caused maybe by a faulty hardware. The wi-fi region code gets set to wrong value or unset. If you have a rooted phone, you can try fixing it by this software:

My phone however didn't have a problem with wi-fi since they replaced the body.

Update 4

Update to Android 4.3 Jelly Bean has been released recently. Try it as an option too.

Funny note

Anybody noticed that all new Sony Xperia phones pictures have the same screen? It always says Thursday January 3, 10:35. Somebody was very lazy... Just for comparison, Xperia Z and Xperia ZR. But you will see it on pictures of all Xperias from this year.

Read more »

Thursday, 12 September 2013

Wingsuit Review - Adrenaline in Your Droid

If you've ever wanted to fly like a bird, sugar glider or Batman, now you can thanks to this awesome game from Swipe Entertainment. At least virtually on the screen of your Droid.

Wingsuit is a flying suit that adds surface between legs and under arms to create more lift. Sugar gliders, flying dragons (they are real btw) and some dinosaurs use the same technique. Not T-Rex - too short arms to add sufficient surface there. Humans usually carry a parachute as well to reduce the risk of injury. A wingsuit pilot jumps from a point that can provide sufficient altitude for flight like a cliff or an air plane and lands wherever he or she can land with a parachute.

Back to the game! The idea is pretty simple. Get ready to fly, setup your pilot and you are already standing at the edge of a cliff. It takes only one tap to jump...

... much easier than in real life!

The controls are very simple and intuitive. Tilt your phone to fly up and down and rotate to turn left and right. The game also let's you calibrate the neutral position. Can't be any simpler than that.

Wingsuit is a 3D game. The graphics and environment are pretty basic, but it doesn't matter. The game does such a good job to make you feel you are really there, you won't even notice the carton trees. You score points by flying near the rock or the ground and the shaking and sound of the wind feels as natural as flying on a phone can be. If you successfuly fly through the whole level, parachute will automatically appear and you'll safely drop to the valley. And if you crash you die (in most of the cases). And that realistic too since you typically fly over 150 kph.

Flying the wingsuit is hard. And the game isn't easy neither. To score enough stars to get to the next level, you have to fly like a pro. Which reminds me... Wingsuit comes in two versions, lite and pro. Lite version contains only two levels, but the game is so difficult and fun at the same time that it will take many hours until you reach the level two, and you'll never stop trying. When you'll feel you want to give up, check out this video how to score 30,000 points!

Interview with the indies!

Swipe Entertainment are three indie game developers - two programmers and one artist and I had a chance to do a short interview with Toby, the lead programmer.

Anyone in your team tried wingsuit in real life?

No, I've done a tandem skydive and some paragliding. But would LOVE to wingsuit. It's on my list of things to do before I die. We were really inspired by Dream Lines by Jokke Sommer, the man is a legend.

Did you have any wingsuit pilots consulting the game?

We had feedback from some wingsuit pilots in the early demo days who seemed to really like it. We spent a lot of time studying videos. We are aware the physics are on the arcady side rather than the simulation side, we set out to make a fun experience for mobile gamers that captures the feeling of flying.

How did you capture the movements of the pilot?

We have a great artist (Jason) who did all our animations, modelling and texturing. He really knows his stuff, all the animations were hand animated.

How long did it take you to make this game?

It's been a long development process, we are a small independent developer. The three of us also had other jobs during development. It's been in development for about a year in total , but that was not solid development time.

How many people were injured during making this game?

All three of us have permenant mental scars :)


I love this game. I've never tried the real wingsuit myself, but now I certainly want to.

Since Wingsuit was published in Google Play store, it has been already downloaded over 1.5 million times - great success for independent developers who worked on the game in their free time and excellent motivation for other indies!

If you want to try it, the Lite version is free, supported with few ads. And if you like it, definitely get the Pro version! 

Links to Google Play Store:

Read more »

Monday, 9 September 2013

Pixel Prospector - A really useful website for Indie Game Developers

During the development of Mr. Dandelion I came across a lot of pages with useful resources. Sprites to download, music and information about marketing your game.

As a total n00b in game industry, I enjoyed working on my game until I realized how hard it is to get it out there. One of the pages I found helped me a lot because it offers big lists (literaly) of articles and sources useful for developers of every game genre and platform out there.

I can highly recommend going through the big lists at Pixel Prospector. They don't list that many resources for Android Game Development nor for AndEngine, but a lot of articles are applicable generaly.
Read more »

Sugar Monster - Hop, Eat 'n' Play - Gaming console in one app

"Sugar Monster - Hop, Eat 'n' Play" is not just a game. It's actually 8 games in one. Few years back, this would be sold as a whole game system or a console. Now you can have it in your phone. For free.

Nino is a cute sugar monster, but don't let the looks fool you - it's a real challenge! The main game is a bouncy jumping game, with a puzzle element. There are four different and colourful worlds each related to different sweets. The cartoon visuals are very pretty and the music fits the setting well.

The game is very intuitive and it starts with a tutorial - you will quickly get the basics. But mastering the game is quite another story. The level design reminds me of the Super Mario games. Each time you fail somewhere, you learn from the mistake and try again until you automate the moves. And the game really makes you try again each time.

And if you get frustrated too much, you can always play the mini games to wind down and earn in-game currency to buy power-ups for the main game. The concept is very smart. The game keeps you engaged and after you make enough coins, you can upgrade Nino and try the main game again. Most of the games nowadays would probably offer you these upgrades for real money using in-app purchases, but Nino just wants you to play more!

I asked Elie a.k.a. epollomes, an Indie game developer, graphic designer and composer, how did he get the idea with the mini games:

I needed a monetization system that doesn't involve real money and I wanted the people to play the game without spending a single dime. The mini games were a perfect solution. It was a challenge to develop algorithms for each mini game while keeping it based around everything that is sweet and sugary!

I believe each of the mini games would do well on their own too. They are all sweet versions of already existing games like Mastermind or Space Invaders.

The best part is that you can earn game currency in each of the games, but you don't have to play them at all. I like the car jumping and sweet Mastermind but I have no patience to play the electric wire and always earn just one coin. But it was explained to me that there are people (including the author) who actually spent money and queued for hours just to be able to play this at a fair or "kermesse" :)

Here's a couple of tips & tricks for Sugar Monster that I got right from the author:

  • In the running game, follow the flamenco rhythm of the music...
  • Ask Fast & Furious movie fans, when to use the nitro before the bridge to own the car jumping game.
If you have more tips, please comment on the article. Especially if you can tell me what the hint from Fast & Furious means!


Sugar Monster is a really nice game for gamers of all ages with cute cartoon visuals and music that goes very well with the overall feel. The game is free and brings hours of fun. And if you get stuck, just play a mini game - there's enough of them for everyone. Since I played this game for the first time, epollomes already added another mini game (the helicopter). He might even surprise us with more!

Download the game from Google Play store.
Read more »

Sunday, 8 September 2013

AndEngine Tutorial - Extensions and Examples

This tutorial is part of AndEngine basics.

<< List of all tutorials

AndEngine has no documentation - that's a fact. However Nicolas Gramlich created an AndEngine application covering most of the AndEngine features and extensions as well. You can check the app in Google Play store to see the capabilities right now. And you can also download source codes of this app from Nicolas' GitHub. If it won't be enough, this book about AndEngine covers all of the basics as well.

To compile and run the examples yourself, you need to download and setup the extensions referenced in the examples. Notice that there are more extensions than those referenced by examples and also Nicolas' GitHub contains more of his projects that relate to AndEngine. To make it easier, let's work only with the extensions needed for AndEngine examples project.

Read more »

Friday, 6 September 2013

Hooves Reloaded - Massively Multiplayer Online Horse Racing

Join thousands of mighty horses in an online world of hooves, brushes, and limitless horse racing. Explore good, fast, heavy and dead tracks. Bet on your favourites; battle in epic races. The ultimate trophies await. Enter Hooves Reloaded. 

This is how it could have been, if Hooves Reloaded was made by a different company. But nonetheless Rubber Duck Software did a great job to bring an addictive horse racing game to your Android.

Hooves Reloaded is based on Rubber Duck Software previous flash game Hooves on Fire. Both games are about everything horse racing. In fact everything is about horses, because the game setting is actually a world populated only by horses. The racing is something like our athletic events. Even the shopkeeper is a horse. And when you are going to breed a horse? Ooh la la, this game is certainly racy!

You can breed or buy a new horse, train it, enlist it in races. You can bet on horses in each race. There’s plenty of upgrades and equipment you can buy for your racing horses and even a science lab with some cutting-edge upgrades like surgeries.

The interface is very clean and well designed. The two black bars you see on the screenshots on the left and right are a typical problem when dealing with all those resolutions of Android devices, so I will pretend they are not there. Everything is easily accessible and it takes just a few taps to get from one screen to another. Two most important options, stables and races, are always accessible.


You will be spending some time with your horses in the stables. Feeding, brushing and training them. Or simply have a nice talk with your stallions and mares. Yup, that's another thing - the lingo. You will have to pick it up quickly. If you are a fan of horse racing or horses in general, it'll be a breeze for you. But for me, I certainly did not know what kind of a track is a dead track and I had no idea what is betting on place or show.

In the stables you can also equip your horses with specialized horse shoes, give them treats and also let them free when they are getting old. Or geld your stallions (no comment).


The most entertaining screen is of course the Races. Hooves Reloaded captured the thrill of (virtual) horse racing very well. I was never a fan, but I got hooked! Especially when my horses were racing!

Here they are, my two beautiful beasts. Damp Lion and Spicy Bun. Not far from the real names of race horses by the way - I remember a horse in Hong Kong named "I can make it"...

And this is how a typical race looks like. You enlist your horse in a race and then wait for the start. You can bet on any horse in the race, even your own. You don't do anything during the race itself. Just watch. The race visuals could certainly use some improvement, but overal it's quite functional and it doesn't matter that much.

You can see in this race, Spicy Bun did not have really a chance.

But she fought bravely...

...for about the first 1000 meters.

In the end not bad for a new horse. But sadly they don't win any money for fourth places...

But to be fair, my horses won a good amount of other races. It all depends on the track, how you train them and how well you equip them for the race. Sometimes they even surprise you! By scoring in races, you earn more money, buy better equipment, train more over time and win more races in the end.

Going social and buying your way up

Hooves Reloaded is a social network game. Other players can help you with your horses and you can even trade your trained mares and stallions, or offer them for breeding. And of course other players can join the same races as you!

You can buy tokens or horse dollars for real money to make your life easier. This of course brings certain imbalance to the game, but the developers have to make money too. And you can always choose not to and simply enjoy the thrills of virtual horseracing for free.


Hooves Reloaded is very addictive multiplayer virtual horse racing game in a funny setting. It's free to play with in-app purchases for those who want to get better quickly. If you want to try how it feels to own a race horse give it a try. Android version is available in Google Play store.
Read more »

Tutorial - How to create falling snow in AndEngine

The obvious way how to create snow fall is to use Particle System. With the correct parameters, it will create an illusion of real snow falling. Adding wind in one direction is also not a problem. But for my game, I needed a cartoonish looking snow falling in nice swinging motion. This is how I did it.

Start with a simple particle system. You will need a sprite representing a single snow flake. The screen is 800x480 pixels.

final BatchedPseudoSpriteParticleSystem particleSystem = new BatchedPseudoSpriteParticleSystem(
    new RectangleParticleEmitter(CAMERA_WIDTH / 2, CAMERA_HEIGHT, CAMERA_WIDTH, 1),
    2, 5, 100, mSnowParticleRegion, 
particleSystem.setBlendFunction(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE);
particleSystem.addParticleInitializer(new VelocityParticleInitializer<Entity>(-3, 3, -20, -40));
particleSystem.addParticleInitializer(new AccelerationParticleInitializer<Entity>(-3, 3, -3, -5));
particleSystem.addParticleInitializer(new RotationParticleInitializer<Entity>(0.0f, 360.0f));
particleSystem.addParticleInitializer(new ExpireParticleInitializer<Entity>(10f));
particleSystem.addParticleInitializer(new ScaleParticleInitializer<Entity>(0.2f, 0.5f));

particleSystem.addParticleModifier(new AlphaParticleModifier<Entity>(6f, 10f, 1.0f, 0.0f));


  • VelocityParticleInitializer - tells the particle system to shoot particles softly to left and right (-3 and 3 is "speed") and a bit faster down
  • AccelerationParticleInitializer - similar to velocity, giving them acceleration (they will accelerate a little over time)
  • RotationParticleInitializer - rotate each snow flake randomly (my particle is almost a circle, so it doesn't make much sense)
  • ExpireParticleInitializer - it will take 10 seconds for the particle to expire (dissapear), this is about the time the fastest reaches the bottom of the screen
  • ScaleParticleInitializer - particles will be scaled from 20% to 50% of the original sprite
  • AlphaParticleModifier - the only modifier here, after 6 seconds, start fading out the snow flake
If you use this, you will get quite a nice snowfall, but all the particles will move almost on a straight line. You can simply write some random particle modifier that will push the particle left or right to give it a bit of realism.  But if you want to add a swinging motion, you are in trouble. Notice that we are creating only one Modifier object for all particles. Modifiers do not have state - they are staless. They can work with the current particle and the particle has a state. It hold a reference to the Entity, i.e. the Sprite. So you have access to all it's properties.

It's quite easy to create swinging motion, but not without a state. We need at least the starting X coordinate. So how do you make a swinging motion? You add a new modifier to EACH particle. This is how:

First create a particle initializer, that will add a modifier to each particle.

public class YourEntityModifierParticleInitializer<T extends IEntity> implements
    IParticleInitializer<T> {
  public void onInitializeParticle(Particle<T> pParticle) {

           new YourEntityModifier());


And then add this to initializers:

particleSystem.addParticleInitializer(new YourEntityModifierParticleInitializer());

Then you can pass any information to the initializer. Or simply get the information from the entity in the initializer. Now how would a swinging motion entity modifier look like? This is my modifier that uses a growing sine wave to create a swinging motion. Only the important part is shown:


public class PositionXSwingModifier extends SingleValueSpanEntityModifier {
  public PositionXSwingModifier(float pDuration, float pFromValue, float pToValue,
        float pFromMagnitude, float pToMagnitude) {
    // fromValue is usually 0
    // toValue means how many times will the sine wave oscillate
    // every 2pi is full sin wave
    super(pDuration, pFromValue, pToValue);
    mFromMagnitude = pFromMagnitude;
    mToMagnitude = pToMagnitude;

  protected void onSetValue(IEntity pItem, float pPercentageDone, float pValue) {
    // current magnitude based on percentage
    float currentMagnitude = mFromMagnitude + (mToMagnitude - mFromMagnitude) * pPercentageDone;
    // current sine wave value
    float currentSinValue = (float) Math.sin(pValue);
    // change the x position of the flake
    pItem.setX(mInitialX + currentMagnitude * currentSinValue);


I have created my own initializer that adds this modifier to each particle with some randomization of the parameters. And this is how I initialize it:

  new RegisterXSwingEntityModifierInitializer(
    10f, 0f, (float) Math.PI * 8, 3f, 25f, true));

Here's the full eclipse project with source code (includes the particle texture) and the apk for download:

Download Project
Download APK
Read more »

Wednesday, 4 September 2013

Tutorial - Cartoon Tree for 2D Platformer

The image on the left is a tree for winter season of my game, Mr. Dandelion's Adventures.

I know it would be better to use Adobe Illustrator or Inkscape. But I only know how to properly use Photoshop.

I have already created trees for Summer and Autumn levels and they are both almost the same, just with different colours. For winter season, I wanted to create a cartoon coniferous tree. If it's a pine, spruce of fir, I don't know. Something like a big Christmas tree.

Basic shape of trunk

For my game, I create trees 256 pixels wide and 512 pixels tall. Start with creating new image, 256x512, transparent background. Drag a few guides to the middle of the picture just to get a better perspective of the size of the tree (not neccessary).

The easiest way to create the shape is using Pen Tool. Click the icon  or press (P) to activate it. If you don't know, how to use Pen Tool, learn it. It's priceless for cartoon graphics!

Draw a path that has a "trunk" shape. Conifers have thin trunks. Don't worry about the shape too much, just something like you see on the picture on the right. Also it's your game and you can always call it "stylized".

When you create the path, right click on it in the path tab. You have two options: Stroke Path and Fill Path. Create two empty layers. Select first one (on top), then switch to path tab and select Fill Path - this will fill it with foreground color. I used #826665 for the the fill (Gray with a little bit of red). Select the second layer and select Brush Tool (B) and choose 7px wide brush. Click on the brush settings and select minimum diameter 50%. I used #473636 color (brownish). Don't forget to save colours that you are using often to the swatches.

Now switch to Path tab again and right-click on the trunk path. Select Stroke Path and check "Simulate pressure". This is good for us amateur artists without tablets (the thing you use to draw, not Android tablets or iPads...). It will create a stroke that looks like hand-drawn. I select 50% minimum diameter - without that the stroke would start with 0% width.

Trunk features

You can make the trunk to look a bit 3D, give it depth, by selecting Blending Options and turning on the Bevel and Emboss with the following settings. Don't worry about the top and bottom of the trunk, you can hide it simply by moving the whole trunk and the top will be covered by green.

This is how the trunk should look now. Later we move the trunk down and put the green top on it, so the ugly part of 3D-ish feature won't be visible.

Tree top

This is how I create a simple tree top. First make a single level of "branches". Again, use Pen Tool to create a Path.

Use the same trick as with the trunk to stroke the border, use darker green, and fill the path with ligher green to get a single level of the tree top. Then duplicate it three or four times, each time making it maybe 10-20% less wide. Also you can horizontally flip each other level. This is what you should get:

For greater variety, you can create more trees, different sizes, different numbers of tree top levels and change the shades of green. Also for my game, I add a little bit of snow here and there as you can see in the top most picture.

This is it. It should not take you too long to create a tree. I doubt it's that pretty you would really like to use it, but if you want, you can download the full PSD - licensed under WTFPL.
Read more »

8-bit Avatar Maker - Create your 8-bit self

Ever wanted to create an avatar picture for forums, Facebook or other social media with 8-bit look? There are many options available and now there's one more for Android so you can create your avatar directly on your phone. 8-bit Avatar Maker by Tokuloko Games is a free app with very functional design. It was inspired by a website that creates similar avatars:

There are over 40 million combinations available but setting the desired look is simple. It works in a similar way as assembling a police portrait. There's not much to it, but it does exactly what it is suppossed to do.

The app creator is very responsible to requests - the early version allowed only to create images randomly - not so much of an avatar creator - but after users complained, the creator swiftly came with a new version with all the customizations.

Also on my tablet the game looked very bad. Notice the filtering that makes the image blurry and totally not 8-bit like on the left picture. It took the author only a day to give me a special version to test and after I confirmed the picture is now correct, it went straight to Google Play (new version, picture on the right).

 The first image in this article is my attempt to create my 8-bit avatar ;) If you'd like to create your own, check this app in Google Play Store!
Read more »

Tuesday, 3 September 2013

Tutorial - How to create a tileset with no experience

First I wanted to create a real tutorial on how to create a tilesest, but I realized that I am most likely doing it wrong :) Therefore this article is not very detailed, it's more a blog entry than a tutorial. If you want to know how to do this or that in detail, please comment on the article and I will try to explain more.

I am self taught. I never read any tutorials on creating tilesets. I am pretty sure there's plenty of better ways how to make a tileset for your game. But this is my way and it kind of "works".
Mr. Dandelion is a 2D kind of a platformer, but not really. You don't jump or run. You fly around. Nevertheless I needed a 2D platformer tileset. I decided to create it on my own. I am using TMX map file format to store my tileset, because AndEngine has an extension that can read TMX file format. It's a little bit limited but good enough for my needs. There is also a really good editor that can work with TMX maps called Tiled.

For Mr. Dandelion, I am creating four seasons - summer, autumn, winter and spring. Summer was my first tileset ever and the result looks like that. But in the game it actually looks better than autumn. That is because I was running out of inspiration for autumn. This tutorial is about creating a tileset for winter season.

How do I get started

I draw a piece of map on paper and divide the areas by squares. I identify patterns in the map that can be assembled from pieces. But the best way would probably be to get an already existing tileset and simply recreate the pieces from the artwork. This is how my early draft looks like:

I do not use pen and paper too much and when I get the idea in my head. I go straight to Photoshop. For my game, I decided to go for HD graphics right away and I am using tiles 128x128px big. It's a bit overkill, but it looks good on tablets.

I start with counting how many tiles I will need and creating an emtpy workspace. I cut the image to 128x128px by using guides. On the right, you can see my swatches palette - these are the only colours I use for the cartoon graphics. The last 7 colours are winter colours - snow, ice and sky.

I am sure that the tileset would be better as square. It would also fit into 1024x1024 texture. But I like to work with this kind of rectangle in the Tiled editor. For winter, I decided to have snow and soil ground. Snow will be dangerous for Mr. Dandelion and soil will be fine to land on. Also I want to have icy water lakes. I need three snow tiles (left cliff, middle and right cliff) and three soil tiles (left transition from snow, right transition from snow and middle - no cliffs; cliffs will always be covered by snow).

Another way would be to create soil patch or snow patch object and place it later as an object over the terrain. Let's see how it will look when I have those 6 pieces of terrain first. For terrain variability, I add one more snow tile, that makes 7 in total. There are 9 columns. You will see later why.

Basic terrain

The tile "surface" is the top border. I start by using the Pen Tool (P) and draw a path that will be the snow. I add one more guide in the first row. This is important, because the snow line must pass from one line to another at the same height. Also the control lines of the spline must be parallel to this guide - this will make the transition from one tile to another look good. I add one more guide to the left and right "cliff tiles". This creates approx. 20 pixels wide columns. Using the Pen Tool,  I create two paths, one for the upper, light snow, and one for the lower darker snow. I just make it look like icying on a cake. I stroke the path with darker color and then fill it with lighter color. One path is visible as a thin black line, the other as a marquee.

Similarly I create the rock. Just make a path that creates the "jagged" edge of a rock:

You can see I created the rock border in the 20px wide columns. Also I create the rock dark blue to fit the scene. Now I will just add some features to the rock. Like some different coloured stones - I have a problem with this because I really don't know how it should look like :)

You can see there are a lot of tiles that are not needed - just use the space to create any tiles you want. I have decided to have frozen water tiles and caves in winter season. This is what I added:

Now I just flatten the whole image, cut some pieces and create:
  • water edges - simply take a cliff and put ice and water tiles behind it
  • cave insides (now I have cave roof) - simply take cliff tile and put cave behind it
  • tiles with transition from one height level to another - simply by taking cliff top and putting rock under it 

Dealing with mistakes

After this I realized I need more tiles! What a terrible planning:

See, I have 2 free tiles to work with and I need at least 3 more :) I had to extend the canvas and create an extra column. But I actually decided to create a whole extra row for possible future expansion. This allowed me to create an extra three snow flat surface and add an extra melted snow surface - this adds to variety of the game as well. This is the result. Notice the empty tiles. These can be always added later - it's important that their index in the TMX will stay the same.


I had to fix some minor issues, pixel here, pixel there. But this is how the levels will look like when using this tileset in Tiled. Notice that there are some mistakes I still have to correct. Pixel here, pixel there...Also some texture must be added to the rock, because the solid blue looks too plain.

If I ever make a game like this, I am hiring an artist!
Read more »