Greetings!

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

Monday, 9 September 2013

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!

Conclusion

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.




Stables

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).

Races 


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.

Conclusion

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, 
    this.getVertexBufferObjectManager()
  );
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));

scene.attachChild(particleSystem);

  • 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> {
  
  @Override
  public void onInitializeParticle(Particle<T> pParticle) {

      pParticle.getEntity().registerEntityModifier(
           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;
  }
...

  @Override
  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:

 
particleSystem.addParticleInitializer(
  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: http://8biticon.com/

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.


Conclusion

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 »

Monday, 2 September 2013

Your Ad Here - publicity matters

Would you like to have your ad on this website? If yes, contact me on my email or comment on this article. There are two ad spaces available - the small ads on the right (free, 125x125) and the big banner (960x256).

Small Ads

The small ads are suitable for a game or an app. Right now I only use it for my game and to get some color to the greyish theme of the whole site. I might figure out some rotation later if needed. These will be free unless you of course want to give me money - I wouldn't object! You can use the same email address android@kul.is to send any donations to paypal ;)

But if you simply like my facebook, +1 this blog, follow it's Google+ page, or make more people come here it will be appreciated as well. If you are interested, simply send me an email with your 125x125 PNG.


Big Banners


I will use the big banners to promote my games/apps and things I consider interesting or helping me in any way. If you would like to advertise there, you can contact me with your offer too. But we will talk first :)
Read more »

100% Indie - A better way to publish at Samsung Apps

Have you ever heard of 100% Indie? Until last month, I have not. But exactly at the same time I was exploring the option of publishing at Samsung Apps Market, I got contacted by Yumi from 100% Indie and she really made me speed up the process.

So let's start why you should consider Samsung Apps in the first place. Well, Samsung is now making more money from Android than anyone else. They already sold so many phones that each citizen of South Korea could get a handful. It only makes sense for them to have their own market with quality assurance that Google lacks. If you have ever tried publishing at Samsung Apps, you probably know that their QA takes quite some time and it is very detailed. And each Samsung device has the Samsung Apps market app preinstalled - so you can be sure your app or game can get there. Moreover it's completely free!

The only thing Samsung doesn't have yet is the majority of developers publishing there. And here's when 100% Indie comes in - getting the niche game developers to join. Basically it's a deal that Chillingo - already an established game publisher - made with Samsung to bring more Indies to Samsung apps. They give you a really sweet deal (100% revenue) for limited time and you do what you should be doing anyway - publishing to Samsung apps. They also try to search for suitable games and help the indie devs with promotion - Indies can really use that. I will write about that after some time with them.



There's no catch, just the revenue share deal does adjust over time. Here are the exact dates and revenue shares:
  • 100% of the net revenue until 3 September 2013 (this one is already gone)
  • 90% from 4 September 2013 – 3 March 2014 (6months)
  • 80% from 4 March 2014 – 3 March 2015 (12 months)
  • 70% After 4 March 2015 (Samsung's standard revenue share)
But you don't lose anything since you can still publish anywhere else.

I was very flattered when Yumi found my game - I was considering to publish there maybe September or October when I finish the rest of levels in Mr. Dandelion, but she made me change my mind :) Yumi said I can join a lucky draw with a chance to win Samsung Galaxy S4 if I make my game go live in August - I just had to make it! And I did!

Samsung doesn't want you to publish games with any Google services (Duh...) so I couldn't just throw in my version with AdMob. Yumi told me about AdHub - ad solution from Samsung, but I did not have time for that. So I stripped my game of ads and published a $1 version - a good experiment as well. Let's see if I can get any sales - 100% indie also promises to promote your game. Of course I am planning to release AdHub supported version too, when I finally get some time to finish my game.

It took me just one and half hours to prepare version for Samsung. The QA process took around a week. Wish me luck for the lucky draw and stay tuned for next part of this article.

If you want to get more info, watch the trailer video, or visit 100% Indie web - about page.
Read more »

Kata Ball - Satu bahasa tidak pernah cukup!

This is the very first review of a game submitted through the form in the header. This game is probably not for everyone. It is meant mainly for Indonesian children to learn English and Bahasa spelling and vocabulary. Living in Malaysia, I can actually play and learn something as well.

It looks like a simple casual word game - read the word and catch balls with correct letters into a basket. But it gets really challenging along the way when the words get longer. To make it easier, game offers a lot of bonuses. These can be bought for coins obtained by completing levels.

The graphics of the game are realy nice. There is not much to be done about the balls or the basket, but everything else is thought through - the game offers many details everywhere. And it's not just graphics, the music is nice, controls can be customized and you can play both English and Indonesian word game. Every level also add new features that change the balls movement and so on. I wish I had so many ideas for my game!


The game was made by PJ Game Studio which is actually a developer and three testers: his wife and two kids :) A perfect example how to leverage the resources you have. It's PJ Game Studio's first app, but it looks promising - there's certainly a huge market for localized games in Indonesia and elsewhere.

If you would like to play, give it a try - it's available for free in Google Play Store. No Indonesian language skills are required and you might as well learn a word or two!
Read more »