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

Sunday 15 December 2013

Parking Games Duel - Total Parking vs. Kings of Parking 3D

By a coincidence, two very similar games were submitted for review before Christmas - almost at the same time. Both are 3D parking games: Kings of Parking 3D by Tiltgames and Total Parking by TeaPOT Games.

They are free to play and offer similar cars and experience and both use the Unity 3D engine. So which one is better and which one should you get? I played both and here are my thoughts.

Kings of Parking starts by giving you a bus. It has two modes of camera, but both of them can make it hard to see where you are sometimes. The controls here are a tad easier because you have a "reverse gas" pedal instead of a gear stick. In most of the levels you have a couple of checkpoints to reach before you can park your vehicle. The game is lenient to scratches here and there and you should have no problems reaching your destination in one piece. After the bus you get to drive a limo and a sports car. There's also a bonus car - an Android truck. That one feels most like an arcade car and is quite fun to drive around.

Read more »

Saturday 14 December 2013

Merry Christmas from Mr. Dandelion - Christmas Experiment

Christmas. It's an economic phenomenon more than anything else now. A bookstore near my home used to make about 10 times more money during December than it did any other month. The owner said that it's the only reason he keeps the store. 

The game industry is definitely influenced by Christmas as well. Just think how many people are going to find a new Android phone under the Christmas tree.

And here we are. Game developers who can make a use of it. As I have announced on Facebook, Google+ and both AndEngine and Libgdx forums, I was offering a Christmas promotion for all games that feature at least something Christmasy to see the Christmas effect. It even included a free 125x125 button ad on this page.

But nobody wanted to use this promo so I had to update my own game for Christmas. Mr. Dandelion is actually ideal for this, because it has flatlined. The installs and uninstalls are the same. Let's see how Christmas in Google Play Store change it.

Stay tuned for the results and Merry Christmas to you all from Mr. Dandelion!
Read more »

Sunday 8 December 2013

Fun, Challenging, Quality, Addictive, Unique and Nice Games

Warning: You won't actually find a list of fun, challenging, quality, addictive, unique and nice games here. This article is about the games submitted to me for review. And about how they fail to make a good first impression. Which is important to get the attention of potential gamers.

It's been three months since the first game submission for review. 28 games were submitted through the form and many other were submitted through email. I've asked everyone to answer these two questions:

  • What makes your game special?   
  • Why should people play it?

I look at the answers and if something gets my attention, I download and play the game. But more often then not, the answers are dull and not interesting at all. Especially those answers that can fit both questions. Few examples:

  • It's fun and interesting.
  • Challenging and unique gameplay.
  • Fun and challenging. 

I've picked six most frequently used adjectives in the answers and compared them to reality. The adjectives are: Fun, Challenging, Quality, Addictive, Unique and Nice.
Read more »

Tuesday 3 December 2013

How to Optimize Your Google Play Store Game Page

Many good games never get a chance to shine because nobody finds them. There are simply too many games in the Google Play store already. So how do you make your game visible?

I can recommend you thousands of links of mobile marketing companies and all of them will have some important information and interesting tips. But in fact it's not that hard. The most important way of discovery of games is searching the Play store.

First start by asking yourself a question: 

How would I search for my game if I'd like to play it?

So let's say you created a tower defense game with a fantasy theme. Obviously you are targeting tower defense games fans and people who like fantasy genre. So if I was searching for this game, I'd type: "Fantasy Tower Defense" or "Tower Defense Fantasy". And because people with Android phones prefer free games, I might also add "Free". Go ahead and do the search. Do you see any pattern?

Read more »

Monday 2 December 2013

Advanced AndEngine Examples - Render Texture and Fragment Shaders

First I have to warn you, the articles in the Advanced AndEngine Examples series are not step-by-step tutorials for beginners. These articles are meant for more advanced AndEngine users who already know how to use AndEngine.

AndEngine has a lot of advanced features. The more advanced something gets, the less tutorials there are and even less practical examples. Today I am going to show you two features that not many people know about and even less people use: rendering to a texture and fragment shaders.
Read more »

Saturday 30 November 2013

Dirt Rider Mayhem review - A fresh Dirt Bike game

A new addition to the family of dirt bike games was just released by nazgee. And it's awesome.

If you've thought that this genre has nothing more to offer, let this game prove you wrong. The simulation is not just very realistic but a lot of innovations were added to this game.

The game consists of 30 levels and some of them feel more like a puzzle game than just a riding one. The obstacles are well placed and sometimes you will have a difficulty getting over them. Read carefully the hints on screen!

Controls are standard, two pedals working as gas and break depending on the direction you are moving. The graphics are quite nice and the motorbike models look good too. But the strongest side of this game is definitely the gameplay.



The levels alternate between day and night. As you progress through them, more tricks are required to advance. And more and more special features are added. The physics simulation in this game is really used to a maximum. For example there are levels, where you have to ride a cart or a loose log! Reminds me of Yo Dawg meme...



Some levels also require to upgrade the bike. Dirt Rided Mayhem offers several types of bikes and plenty of upgrades including engines and tires.

And when you finish the level, either successfuly or with a crash the game takes a nice picture of you, that you can share with your friends. Here's me after a very bad crash! :)




The game is completely free, but if you'll feel like you want to advance faster or buy another bike right away, it offers you an in-app purchase of the game currency.

Conclusion

Dirt Rider Mayhem is the best dirt bike game I've played. It might not have the best visuals, but the gameplay will captivate you. There's plenty of levels offering hours of fun and another batch is coming soon. It's definitely a good choice for the fans of the genre and anyone else who wants a good game.

Get it on Google Play!
Read more »

Friday 29 November 2013

How to become a game developer

I was asked this question before. The obvious answer is "Go and make a game". But maybe it's not so obvious when people still have to ask...

Motivation

First,start with your motivation. Why do you want to make a game? If you want to make money, here's bad news: Majority of indie game developers won't make much. And those who work for big companies will tell you that their job is not much different from any other software developer or designer job and far from the fun they expected (there are exceptions...).

However if you simply want to make a game and you don't expect to make a lot of money, at least not from the beginning, then you are on the right track. Of course, you can still make money, just don't expect it to happen over night.

Read more »

Tuesday 26 November 2013

Kana Karate Review - Fun way to learn languages

Kana Karate from Aztecbyte is an educational game for people who want to learn English, Spanish, German, Portuguese, French, Italian vocabulary and especially the Japanese writing system. The system itself is complicated - there is Hiragana and Katakana (together called Kana) and Kanji. Learning it is all about drill. There's plenty of apps that can help you learn it, but I can say that this one is definitely the most fun!

Read more »

Sunday 10 November 2013

Fight Fight Zombanite review - Zombies vs. Survivors, new tactical action game!

FFZ is a new game by MojoBox Games that combines action and real-time strategy genres spiced with a little bit of RPG. It's about survival after a zombie apocalypse which sounds like yet-another-zombie game. But FFZ is different and worth playing.

In this game, you start with one survivor. More people will join your group after completing missions. There are many characters in the game and every one of them has a unique ability that can benefit the team in the current mission, or it can prove quite useless. Mixing the right team for the job is one of the things that make this game interesting.

And it's not just the team. Each individual has a basic set of skills and two special upgradeable abilities. Usually both of them are useful and you just have to choose based on your style.




There are resource missions where you gather supplies and there you need less firepower and more speed, defense missions where you need both firepower and mobility and hard-core survival missons where firepower is everything.




As you can see on the left, I wasn't doing very well in the survival. Not even with my awesome rockets... FFZ also offers car driving missions. I find them quite calming after the action in the field!

The gameplay is really good and engaging, the graphics are polished too and overall the game feels like a solid piece of work. Music perfectly adds to the atmosphere of a zombie apocalypse. The only thing I found a bit funny are the sound effects especially in the car driving mission.

I got a chance to play this game before the official release and I haven't finished playing it yet. But I can already say it's definitely worth playing and one of my favourite games I had reviewed. I will post the link to the store as soon as it is released.

Conclusion

MojoBox games are two students of game design who picked game making as their future profession. I think they started very well. Their zombie game is fresh, original and fun to play. Stay tuned for the release!

Update

The game is out now! Get it from Google Play store...


Read more »

Tuesday 5 November 2013

Android Game Development Tutorial in AndEngine - Part 5 - Resource Loading and Splash Screen


This part will show you how to load assets to memory and how to use them in a scene.

It's important to preload some resources, especially those that will be used all the time, but you can't load too many resources at once simply because you might run out of memory and the gamers could run out of patience waiting for everything to load. It is equally important to unload those resources that are no longer needed.

For the purpose of preloading resources a splash screen is usually displayed first. It is not necessary, but first you can show your brand or name and second it will give users something to look at while you are loading the resources in the background. You can also show some kind of progress bar, but splash works just fine.
Read more »

Sunday 3 November 2013

GDSE Game Jam - My First Game in HTML5 + Javascript

I've participated in Game Jam organized by Game Developement at Stack Exchange.

A game jam is a gathering of game developers for the purpose of planning, designing, and creating one or more games within a short span of time, usually ranging between 24 to 48 hours. Game developers are generally made up of programmers, game designers, artists, and others in game development-related fields. (Wikipedia)

The great thing about Game Jam is that it forces you to think and code quickly. The requirement was to make a game playable in browser. I was thinking of using libgdx, but ended up using Phaser, a Javascript/Typescript framework. It was a great learning experience.

I call the game TCOB1. Theme was "There can only be one" (sic) and the genre of my game ended up being "endless" space racing where players are eliminated by asteroids. The last player in the game wins.

It took me about 8 hours to finish the first prototype and another 8 hours to complete the game. Phaser development is really fast. My next step will be to get better in Javascript and make the game more portable - I want it to be playable in Android stock browser and mobile Chrome.

You can play the game in your browser. Instructions are on the page itself. Source code is available if you want to take a look. The Javascript code is not so nice - but not that bad considering I started learning Javascript on Friday night and submitted the game on Sunday night!

Simple screenshot from the game

Read more »

Tuesday 29 October 2013

Device art and assets for different screen sizes generators

If you need to generate some nice promotional pictures, it's good sometimes to put them into context of a real device. You can of course take a picture of your phone or tablet with your game, but I bet it won't look good enough.

Here are two tools that can help you generate the art and make it look more professional:

  1. Official Google Device Art Generator - which generates the art for Nexus Devices
  2. Android Asset Studio - free tool that offers few more devices
Read more »

Android Game Development Tutorial in AndEngine - Part 4 - Scenes and Scene Manager


In the third part we have created an empty activity. We have set the engine to show "null" as our scene in onCreateScene method. If you check the examples, there is always a real scene created in this method. But we want to have multiple scenes and therefore we need a mechanism how to switch between them.

Also we will need a mechanism to pass important objects to each scene. We can do it when constructing scenes. Or we can use another class called ResourceManager.

Resource manager

This class will be used for our resources like textures, sounds and music. Because all of our scenes will be using it extensively, we will also put some important objects there. Loading the textures etc will be described in the next parts, I will be adding them as they will be needed. For now, create a really simple Resource Manager that looks like this:



package is.kul.squongtutorial.resources;

import is.kul.squongtutorial.GameActivity;

import org.andengine.engine.Engine;
import org.andengine.engine.camera.Camera;
import org.andengine.opengl.vbo.VertexBufferObjectManager;

public class ResourceManager {
  private static final ResourceManager INSTANCE = new ResourceManager();
  
  //common objects
  public GameActivity activity;
  public Engine engine;
  public Camera camera;
  public VertexBufferObjectManager vbom;
  
  private ResourceManager() {}
  
  public static ResourceManager getInstance() {
    return INSTANCE;
  }
  
  public void init(GameActivity activity) {
    this.activity = activity;
    this.engine = activity.getEngine();
    this.camera = engine.getCamera();
    this.vbom = engine.getVertexBufferObjectManager();
  }
}


Update the GameActivity to instantiate the ResourceManager:


  @Override
  public void onCreateResources(
      OnCreateResourcesCallback pOnCreateResourcesCallback)
      throws IOException {
    ResourceManager.getInstance().init(this);
    pOnCreateResourcesCallback.onCreateResourcesFinished();
  }


This class follows what we call Singleton pattern. It means there can be only one instance in the whole program. That's why there is the private constructor, nobody else can create a new instance. It is important to have only single resource manager because due to the limitations of the hardware, you really want to keep only one instance of assets in memory.

For now, we will only use it to have a simple reference to activity, engine, camera and vertex buffer object manager.

Vertex Buffer Object is part of OpenGL. It provides methods to render vertex data. AndEngine does great job of hiding this from you. Simply use the VBO Manager all the time, at least for your first game.

Scene is basically a set of entities that are being currently displayed. You typically want to have completely different entities in menu and in the game. And that's why you create menu scene and game scene.
Read more »

Sunday 27 October 2013

AndEngine Tutorial - Dealing with screen sizes and ratios, Resolution Policy explained

Android platform suffers from variety of different screen sizes and ratios. AndEngine tries to deal with this by letting you specify one resolution and then scaling the resulting picture to any device.

You don't need to care whether the screen size of the phone is bigger than your desired resolution  (AndEngine can enlarge your scene) or smaller (AndEngine can shrink your scene). You place your sprites at coordinates in your resolution. However you still have to hint AndEngine how should the resulting picture be scaled (if at all). And that's what Resolution Policy is for.

You might want to have multiple sets of textures for let's say two or three typical resolutions. For example low-res, normal and HD textures. But that is a more advanced topic.
Read more »

Friday 25 October 2013

Giftiz Review Part II - A month after, good way to promote your app?


So here I am, a month after Giftiz featuring promotion started. The question is now, does Giftiz significantly increase you downloads? The answer is: yes, if your download numbers were very small.

I believe you can make decent money from ad supported game when you reach about 100.000 downloads in the first month based on other people's experience and my own humble beginnings. Giftiz gave me approximately 2300 downloads in a month - 2000 in the first five days.

This might be enough to generate initial interest. A spike in your downloads that will make Google Play store algorithm to notice you and show your game in the Top New Free games. Moreover 20% of these installs come from France. Giftiz is a French company after all. This will give you significant boost in French store.

But it's not good for anything else. The people coming from Giftiz might be able to generate about $10 - $20 revenue on AdMob. They install your game, play until they finish the mission and leave immediately afterwards.

Read more »

Thursday 24 October 2013

Defense Line Review - Hard Core Tower Defense

Defense Line is a classic game of tower defense genre made by Sergey Semenov. It is set in near future and you are fighting both current and futuristic units.The game features very detailed graphics and a plethora of different towers. And this is probably the greatest strength of this game.

Combining different towers here is very challenging but a lot of fun. There are many towers that simply cause damage to enemy units, but there are also towers that cause splash damage, area damage or have special abilities.

 Moreover the basic strategy here is spiced by the need of using towers against both ground and ait units. And air units of course follow straight path to the target. Building both your ground and air defense on the limited space you have available can be tough!

Defense line contains two modes: Campaign and Survival. The former is pretty much a standard progression from one map to another. In survival you play a single map as long as you can. This mode is my favourite. Especial the first level which doesn't have any roads or any limitation for the enemy units - you have to build everything using your towers.
Read more »

Wednesday 23 October 2013

Shake Freeze - auto-rotate lock with a twist (and shake)

My first app (as in "not a game") that will be soon published to the Google Play Store. A simple tool to toggle auto-rotate screen and in case the screen is locked, shake to rotate the screen to desired orientation.

I created the app to learn more about programming for Android. My intention was to learn about the accelerometer, notofications and background services and this is an app that combines all three.


It's still in beta test phase but if you want, you can help testing it.
Read more »

Tuesday 22 October 2013

Tutorial - How to dim the software buttons

Many Android 4 phones nowadays have only software buttons (back, home, menu). Unlike hardware buttons they take up space on screen and also don't look very good in games. You might have noticed that it's not possible to hide the button bar completely.

You can hide the system bar using the following:
  1. Root the phone and force the system bar to hide - obviously you can't do this for every one of your players
  2. Hide buttons temporarily - they show again as soon as you touch the screen
  3. Dim buttons - this is called low profile mode

Low profile mode is very useful for games. It looks like this; left picture normal mode, right picture low profile:


This is how to safely implement it. We make sure that the method will be executed only on ICS and higher:

  @SuppressLint("NewApi")
  private void dimSoftButtonsIfPossible() {
    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentapiVersion >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
    } 
  }

Note: I am not sure what it does on phones with hardware buttons. If anyone could try and leave a comment - highly appreciated :)

And this is a good way how to use it in AndEngine:

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
      // do whatever you need here
      
      dimSoftButtonsIfPossible();
    }
    return false;
  }
  
  @Override
  public void onPopulateScene(Scene pScene,
      OnPopulateSceneCallback pOnPopulateSceneCallback)
      throws IOException {
    // do whatever you need here
    
    runOnUiThread(new Runnable() {
      
      @Override
      public void run() {
        dimSoftButtonsIfPossible();
      }
    });
    pOnPopulateSceneCallback.onPopulateSceneFinished();
  }
  
  @Override
  public synchronized void onResumeGame() {
    super.onResumeGame();
    // do whatever you need here
        
    runOnUiThread(new Runnable() {
      
      @Override
      public void run() {
        dimSoftButtonsIfPossible();
      }
    });

  }
  

Read more »

Android Game Development Tutorial in AndEngine - Part 3 - Game Activity

From now on, the coding starts. At the end of each part, you should have an app that you can run on your phone.

First, you need to setup your environment. For the purpose of this tutorial I expect you already have Eclipse and AndEngine libraries. If not, you can check my Getting Started with AndEngine tutorial.

It doesn't matter if you download zipped versions or use the GitHub tutorial to get the AndEngine sources.

Note: I use GLES2-AnchorCenter branch of AndEngine for this tutorial.

In this part I will show you the basic activity that I am going to use. The activity class should take care of initializing the game engine and managers. You can see plenty of examples where the activity takes care of the game too. But try to separate functionality - rule of thumb: You should be able to describe the class responsibility by one sentence. If you need to use more than one, it's time to split the class.

Now go ahead and create new Android Application Project (Eclipse -> New).
Read more »

Thursday 17 October 2013

Pirates Vs. Zombies review - Mix of Three Most Popular Ingredients

Pirates Vs. Zombies is another game in a nowadays very popular genre that could be defined as an off-shoot of artillery games - the slingshot games. It all started long time ago and people will argue with what game, but everyone agrees that the most popular game of the genre is Angry Birds.

So what does this game bring new to the genre? First of all it changes the scenery to a tropical region where pirates are looking for burried treasure only to find the islands infested with zombies. Everybody seems to like pirates, zombies and shooting stuff, and that's a good reason to put them in one game together!

But Pirates Vs. Zombies has more to offer. While the gameplay is pretty much standard in this genre, the range of weapons at your disposal is quite innovative. Apart from traditional and advanced projectiles shot from a cannon on a ballistic trajecory, you can use a remote controlled parrot or shoot the zombies from a rifle or shotgun by commanding one of the pirates on the ship. It of course depends on what weapons you have in each level.
Read more »

Wednesday 16 October 2013

Android Game Development Tutorial in AndEngine - Part 2 - Concept

Before you start coding, you have to already know how is your game going to look like. Not in all details, but at least a high level view - a concept. It sounds like an obvious fact, but a lot of people will start making a game only to find later that their idea won't work.

You don't need any special tools to create a concept. For a simple game, you can simply think it through. But at least put your thoughts on paper or create a short document.

Creating a concept will help you figure out the basic requirements for your game and having requirements can help you estimate the time and resources needed to finish your game. To be less theoretical, let's look at example.

Squong Game Concept

First, I had an idea to create a pong game for this tutorial. But then I wanted to make the game a bit more complex and I was thinking what can I add or change. First I just thought of making the pong game with more freedom of movement - like a pong where you can move you paddle not just left/right but also up/down. I already thought of using Box2D physics - it is not really neccessary, but good for the purpose of the tutorial. And there was the idea - paddles could collide if they are both on one side of the court. Like in Squash.

If you can figure a name for your game at this stage, good. But don't spend too much time thinking about a cool title. Simply call your game "First Game".

Second, I came up with basic entities in the game. Entity is any object that you will add to the game.
  • A paddle - one player, one opponent
  • Ball
  • Court - and the court consists of
    • Walls

Next I tried to think of all possible situations that can happen in Squong. Players must change possession of the ball. That can happen when the ball hits the top wall. But then player could go close to the wall, hit the ball and disallow the opponent to play. So I had to change the possession a little bit further from the top wall. Also the bottom wall should actually be the same as in pong - when the ball exits the court there, player loses:

  • Court - and the court consists of
    • Walls - top, left and right
    • Center line
    • Bottom line

And that's it. There's not going to be anything else in the game. Few more thoughts:

  • When ball stops, player in possession loses
  • When paddle crosses the center line, the owner of the paddle loses

Now I have pretty much what I need to make a game.

Squong Game Requirements

I've already decided that I will use AndEngine. Now let's give a quick thought to the architecture of the game. We are going to need:

  • Graphics - paddles, ball - this should be pretty straightforward
  • Sounds - ball hits paddle, wall, sound for score or foul. Maybe for change of possession.
  • Music - not really needed, but could be nice to have background music in menu (at least for the purpose of a tutorial)
  • Physics - paddle, ball, line and wall collisions
  •  
This gives us basic idea of what are we going to use from AndEngine.

At this point you can start drawing your entities or thinking where you get them. But don't get stuck. If you don't have them, simply use some mock pictures. A paddle can simply be a rectangle, ball is a circle. You can start looking for sounds and music, but that is a very low priority now.

Scenes

A scene is exactly what the words means. If you look at games, they usually consist of some initial loading scene, that we call Splash. Then you go to Menu scene (a Tap-To-ontinue scene is sometimes present). There can be a Settings scene if you can't fit everything in Menu scene. Then a one of more Game Scenes. Maybe a Credits Scene, Achievments Scene etc. In Squong we are going to use the following. See the flow diagram to understand how the scenes change.


The Info scene will simply be a link to this tutorial. Note that concept of "Exit Game" is a bit complicated in Android, we will get to it later.

This all might seem like a waste of time. You want to be coding already! But trust me. Having these will be very useful later especially in bigger games.

Next part

In the next chapter, we finally start coding!

Further reading

Here's my book about AndEngine and you can see the list of books about Android Game Development for further reading, not just about AndEngine but game development in general.

Note: I had to take a break from writing this tutorial. The game is published in Google Play store now. You can still get the full source code of the final game for 99¢. Available on Sellfy, pay by PayPal:
buy

Also here's one Box2D physics problem that is directly related to the Squong game. If you find a solution, let me know! 
Read more »

Tuesday 15 October 2013

Promote your Android Game for Free

Because Kulíš is in fact a bird, it's only natural that it tweets! I am only now discovering Twitter, but with the help of Jason Mayes and his awesome Twitter Fetcher, I was able to add a nice and lightweight Twitter feed to the right sidebar.

Since adding new tweets is so easy, having a Twitter widget gives me an opportunity to tweet about interesting small indie games from everywhere, anytime. I am slowly getting more and more readers and now I can use that to promote your games. If you are interested to have a mention about your game here on the site for a while, read on!

How is it going to work

  1. Follow my Twitter, Google+ or like my Facebook. This is required to get more readers. We have this nice proverb in Czech: "Not even a chicken rakes for free", which loosely translates as "There's nothing as free lunch"
  2. Tweet about your game with a mention of my Twitter @KulisAndroid, or post it on my Facebook, or Google+. Twitter is preferred, because it is the easiest, but I undertand that not everyone has a Twitter account. Alternatively send it to my mail android@kul.is.
  3. I will read your tweet/post and if it is a real tweet about a game, I will retweet it or tweet it myself
  4. It will immediately appear on this site and stay until I tweet N more times, where N = 5 right now.

Requiremerents for a game to be tweeted

It should be an indie game and it should be interesting. It doesn't have to be complete. I will tweet about interesting projects as well. Your tweet should contain a link to the game in Google Play store or your website with further info. Link to a forum post where you have information about the game is fine as long as it is descriptive.

If I like your game a lot, it might be reviewed as well, but I prefer if you submit the game for review separately. Games that are reviewed will be automatically tweeted.
Read more »

Sunday 13 October 2013

Android Game Development Tutorial in AndEngine - Part 1 - Introduction

Articles in this series of tutorials are intended for anyone who wants to make a game. I picked Android because it is quickly taking over the mobile market and it is by far the easiest platform to start making games.

This tutorial requires that you already have basic knowledge of Java up to a level when you are able to write, compile and run your own application.

You are reading this page because you want to make a game. Chances are you have already done your research and picked AndEngine, but let's start from the beginning.

How do I make a game? What is the best way to make a game?

This is probably the question that you already asked. Making a game (any game for any platform) requires a lot of work, patience and perseverance. It's certainly not easy! There is no simple answer to this question.

There are many ways how to make a game, and this tutorial shows you one way. The best way to make a game is to pick a game that you can finish and simply do it.

How long does it take to make a game?

I bet you have asked this one too. But again, a question without answer - it can take days in case of a very simple game, or years.

Why AndEngine?

AndEngine is one of the easiest engines to make a game with while giving you plenty freedom to use any resource that Android and Java offer. There are frameworks that give you even more freedom but you need to put more effort into the game developmnet, for example libgdx. And there are game-maker programmes that restrict your freedom, but making games is very simple. AndEngine is the happy medium.

So how do I start?

Start small! Even if you have a great idea for a game, and this is your first attempt, leave it for later. First take something really simple and try to make it into a game. Or make a clone of a classic game like Tic-Tac-Toe, Pong or Space Invader. Make something you can finish in few weeks.

Introducing Squong

We are going to make a variant of a classic game Pong. I call it Squong because it's a mix of Pong and Squash. I will guide you through the whole development process from making the idea, designing the game, writing the code, testing and publishing the game. I will also cover basics of promoting your game.

The game is already published, but only as beta version. If you want to follow this tutorial and see the game, you can join the beta test. I will explain later what are the benefits of the beta test phase.

Later I will publish the complete source code of the game and you will be permitted to use any part of the code in your games if you comply to its license.

First you need to join the following Google+ community. It's public, so anyone can join:
https://plus.google.com/communities/117947815780337015177

Next, visit the following link a click on Become A Tester button:
https://play.google.com/apps/testing/is.kul.squong

Afterwards you can proceed to download the game. When logged with the Google account you have used to sing up for beta test, you will see it in Play Store as if it was publicly available:
https://play.google.com/store/apps/details?id=is.kul.squong

Next part

In the next part I will cover the concept of Squong. How did I get the idea and how did I started.

Further reading

I wrote a book about AndEngine. You can also see the list of books about Android Game Development for further reading.

Note: I had to take a break from writing this tutorial. The game is published in Google Play store now. You can still get the full source code of the final game for 99¢. Available on Sellfy, pay by PayPal:
buy

Also here's one Box2D physics problem that is directly related to the Squong game. If you find a solution, let me know! 
Read more »

Sunday 6 October 2013

AndEngine Tutorial - Using Git and GitHub

This tutorial is part of AndEngine basics.


<< List of all tutorials

Using GitHub is simple, but can be intimidating if you've never worked with version control before. If you did, you probably don't need this tutorial. I will cover the simplest case: Cloning the repositories from GitHub to your local machine. This replaces the steps in previous tutorials: Getting Started and Extensions and Examples.

What is Git anyway? 

It's a version control tool. Basically a storage for source codes (and other files) that saves the initial commit and then incremental changes.  Imagine you have a file that contains string: "Hello". You commit this file to Git and it will be saved as "Hello". When you make a change on your PC to "Hello World" and commit, the change will be saved as "Hello" > "Hello World" and the number of the line where this change occured. This way you can roll back to older version and track changes.

It also helps collaboration, creating forks of the projects etc, but again, if you need to do that, then you should not need this tutorial!

What is GitHub?

A free Git hosting for Open Source public repositories and paid service for private repositories.

So how do I use it?

First you need to install Git client. Because you are most likely using Eclipse IDE (or Google's ADT which is Eclipse), the easiest way is to grab the Eclipse Git plugin.

Go to Help -> Install new software.



Click Add to add a new plugin repository and use this URL as location: http://download.eclipse.org/egit/updates


Click OK and Select All.


Then simply click Next and accept all licenses until you can press Finish. If you are asked to restart ADT (Eclipse), do it.

Clone the repository from GitHub to Desktop

Cloning in Git means making a copy from the repository into local machine. That is an exact copy that can be synchronized with the repository. As opposed to fork, which is a new copy... But don't worry about forks now.

In Eclipse, go to File -> Import and select Git -> Projects from Git


And then from the options select "Clone URI". Enter the repository of your choice as URI and the rest will be filled in by Eclipse:



To get the Git repository URI  e.g. https://github.com/sm4/AndEngine and copy the URL of the Git repository from this box:


On the next screen select only the branch that you are going to use. Branch is a separate version of the project - using the GLES2-AnchorCenter is recommended.






Then select local directory, I highly recommend using the workspace folder.


Wait for Eclipse to download the project and last step, select "Import Existing Projects"


Click Next, and then Finish and you have successfuly cloned Git repository to your desktop. Do this with any repository you need.

Conclusion

Having the cloned repository is useful, because you can then easily get latest changes without downloading everything again. But if this is easier than the download-zip method, I leave up to you!
Read more »

Construction City Review - Heavy Equipment Playground

It's hard to believe that Mathew - one of the most influential persons in AndEngine - never released any games. Until last week. Long awaited Construction City was finally published to Google Play store. And it was worth the wait.

Construction City is a 2D puzzle game that lets you sit behind the wheel and controls of the most popular heavy equipment machines. You can experience driving and controlling cranes, excavators, trucks, tractors, helicopters and forklifts. Every machine has customized and precise controls. Sometimes it's just forwards and backwards when you drive trucks, but controlling a mobile crane is a different story. You control the car movement, arm position and extension of the grapling hook. In most levels you also have to controls more than one machine and switch between them at the right time.

The game allows you to fully customize the on-screen controls and that makes the game playable on both small and big screens.

All machines are well modelled and the graphics are amazing. You can see the tiniest details - and the machines behave almost like their real life counterparts. As far as 2D allows...





In total, there are five different stages with 21 levels each and one extra bonus level. Each level presents a different puzzle with increasing complexity and difficulty. And in case you finish everything, Construction city has one big surprise for you...



Level Editor

Level editor is something unheard of on this platform. And not only allows you to create your own levels but also play levels created by the community. While there are other similar games to Construction City, level editor gives this game the edge over the others. It will certainly appeal to creative players. I found the editor a little bit hard to use on the phone, but I can imagine it works very well on a tablet.



Conclusion

Construction city is a very well made game. You can tell that the author paid a lot of attention to details and made sure all machines behave as they should. Neat 2D gaphics, good sound effects and a level editor packed in a game that is completely free. If you like this kind of puzzle games or heavy equipment, you won't be dissapointed.

Install it for free from Google Play
Read more »

Tuesday 1 October 2013

Mathician - Social math

This "game" is actually an educational app. It helps you practice your math skills. The gameplay is really simple. You will be guided through many levels doing harder and harder additions, subtractions, multiplications and divisions. Each level presents you with equations to solve and a keypad. You earn stars for avoiding mistakes and calculating the problems fast...

But that is not all. The thing that makes this app different from the other math apps is the social aspect. The author who goes by the name of TwZ added achievments, leaderboards and even an option to challenge real players, including your friends from contact list.

Without the social part, this game would probably be boring as math can be sometimes. But the option to compare yourself to the world and especially to your friends keeps you engaged.




If you are a competetive person, you will probably find yourself coming back to this game. And in the meantime you will practice your brain which is never a bad idea.

Conclusion

There's not much to say about this game - it's really just a simple math skills practicing app with social aspect. But if you like challenge and/or math and have a group of similar minded friends, give it a shot!

Read more »

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 »