Wednesday, August 28, 2013

TexturePacker - The smart solution of Image Asset Management

No matter which programming languages or IDE you are using for creating Android games (in fact, not just Android game), handling images is always a nightmare if you are using a naive way. Even though a graphic non-intensive-game like Quoridor Board Game, a better approach of image asset management is necessary to ensure a consistently great performance and a developer friendly code maintenance. Here, the TexturePacker is highly recommended for the rescue.

Before mentioning about how the TexturePacker works, let's recall what is the underlying process if a naive way of handling image is used, aka treating each image separately and embedding them one by one in the code. With this, the GPU is heavily burdened as it has to load all the graphic assets naively to the primary memory. Here, the number of calls to load the images matters. The most ideal way is to have the call as less as possible. And a new concept is introduced - Sprite sheet.

To briefly describe, a sprite sheet consists of a big image containing numerous smaller images. Here's the example of my sprite sheet used in the Quoridor Board Game:

The idea is that, with only a single piece of image file, the overhead of asset loading is significantly reduced.

The next question is: How to construct such a big image file?
Having said that, TexturePacker is the smart solution for this. Here's a quick review of the TexturePacker UI (we will come back with more details in future)

There are a number of advantages of using TexturePacker:
  • Intuitive Image Assets handling - it features a drag and drop method. Adding or removing an image is very convenient.
  • User-friendly Interface - With a single publish button, you would be able to have your image ready for production within 5 minutes!
  • Customizable  options - Alright, not just Android games, it applies to almost ALL data format (AndEngine, LibGdx, Unity3D, etc) Pretty cool ar! 

  • To use a full-fledged TexturePacker, you need a license.
  • To obtain the license, you may purchase it, or request one from the owner Andreas through an email (terms and conditions)
  • I personally requested one from Andreas. He is really a nice samaritan offering me the priceless license. :)

Saturday, August 10, 2013

Quoridor Board Game is in the Google Play Store now

Yeah, after several weeks of hard work, I manage to come up with a unique Android game published in the Google Play Store - Quoridor Board Game.

Quoridor Board Game Icon

Quoridor is a turned-based strategy game. It can be played by 2 players or 4 players (However, I only enabled 2-player-mode at the moment). Let's briefly brush up the rules of this game:

a) The Quoridor board consists of 9 x 9 tiles (squares)
b) In the 2-player-mode, each player (represented by a pawn) is placed at the end (and center) of each side facing each other.
c) To win this game, you have to move your pawn to the either tile at the opposite site.
d) In each turn, you are allowed to move your pawn or to place a wall (in order to block your opponent or to block a potential block)
e) The pawn is only allowed to move 1 step, except when you are face to face with your opponent.
f) The wall is not allowed to cause a dead end to both players.

Feel free to enjoy the game and give comments~

  • An AI-mode is added into the game. At the moment, the computer AI (oops, is mobile device AI) is a bit dummy. I will further improve the game if there are more than 30 ratings. :)
  • To move a pawn or a wall, you have to TOUCH and DRAG at the same time.
  • To abandon moving a pawn, you can place the pawn back to the original location.
  • To abandon moving a wall, you can drag it to the drop zone on the right side.

Thursday, August 8, 2013

List of Google Play Store alternatives sorted by Alexa Ranking

Once you know the importance of the Google Play Store alternatives, you must be impatient to know what are the lists of the alternatives available. A quick search from the Google and Wiki could provide you the answers. Here are some of the app stores listed down according to the Alexa Traffic Ranking at the time of writing:

Index App Store Alexa Ranking
1 Amazon Appstore 6
2 Opera Mobile Store 1137
3 Appbrain 9861
4 Samsung App Store 24680
5 Getjar 27146
Baidu Store 5
Taobao Store 10
Appchina 7559
Wandoujia 7669
10  Tencent myapp 21495

  • The Alexa Traffic Ranking is assessed based on the 'domain name' instead of the App Store. Hence, the ranking of the already-popular sites such as Amazon, Opera, Baidu, etc might be a bit misleading. However, since they have a strong and resourceful background, their future prospect could be optimistic.
  • The market in China is potentially huge. If you are able to translate your games / apps into Mandarin, you might want to penetrate into the Chinese markets.
  • Here shows another clean list of the Google Play Store alternatives apart from the Wiki.

Why Google Play Store alternatives are important?

After having your android applications ready in the format of .apk extension, you are now ready to let your android games accessible by anyone around the world (or your preferred audience).

Usually, most of the Android games developers would consider Google Play Store as the main market to reach the public. It is undoubtedly to say that, indeed, Google Play Store is the most gigantic market on Earth due to its high availability. Its existence in the Western countries and the Europe is simply dominating. Except China (at the time writing), the Play Store really achieves a remarkable result in other developed countries in Asia (Japan, Korea, Southeast Asia, etc). Android games developers love Google Play Store not only because of the 'Google' brand, but also the 'smart' business model. From time to time, the Google Play Store keeps coming out with the helpful tools and services which boost the game development process (eg: Google Play Game Services, Google+ Circles, Cloud Saves, etc).

However, despite the outstanding performance from the Google Play Store, it is also important for the Android Games developers to be aware of other alternatives. The reasons are shown below:

1. Diversification

Different app stores might have different audience. Although the other app stores may only occupy around 20% - 30% of the total players that download in the Google Play Store, the fact is, the more the merrier. The higher number of the audience being exposed means a higher number of games downloads. The revenue is proportional to the number of the game downloads. You do the math.

2. Avoid plagarism

This is a critical point. For those who have been all the while ONLY considering Google Play Store as the silver bullet but not the alternatives, this is a reminder, as it happens to some of my fellow games developers. The thing is, if you do not perform the diversification (as in the 1st point) yourself, the stealthy spammers will do on behalf of you. It means that, people could easily have your .apk file from the Google Play Store. Then, with some trivial efforts of registration on the other app stores, they could have your games up serving for their purposes (by uploading your apk files). This situation is indeed quite rampant. For example, go to 1mobile, do you see your own apk up there? Oops. Or you could easily search for others' apk file and 're-publish' on the other app stores (it is illegal and could face lawsuits).

3. Monetization

If you are doing Android Apps / Games for a living, monetization could be a crucial factor. Unfortunately, Google Play Store only allows the games developers from certain countries to sell apps and in-app products. Fret not, the Google Play Store alternatives (such as Amazon app store and Opera app store) do not have such a discrimination. If you are confident about your games value and they deserve a purchase before the players can enjoy the premium edition, you may attempt to publish a Pro version of the game on the alternatives while a Lite one in the Google Play Store.

In a nutshell, it is important for the apps / games developers to realize the impacts if they do / do not publish their apps on the Google Play Store alternatives.

Saturday, August 3, 2013

How to create Android Games?

The increasing availability and the accessibility of the mobile devices (such as iOS and Android tablets and smartphones) in the market have made the games industry much more thriving and competitive than ever. Even Windows (and now Firefox OS as well), realizing the tremendous potential of the mobile games industry, come into play to grab some pieces of the cake.

Here, at the time of writing, the popular game platforms are iOS or Android. Specifically, I would focus on Android Games in this blog. Feel free to leave comments if you find there is any typo.

Right, back to the question: How to create Android Games?

Precisely, it is to ask:
Q1. How to create a game which operates in Android OS?
Q2. And then how to publish in the market?

This post would answer the 1st question first. We will come back afterwards.

There are a number of approaches to develop Android Games. Overall, it will add an advantage if you have some programming background. If you don't, no worry as it won't be difficult to pick up. At below I would list down (some of) the "Programming Languages", "Framework", "IDE (Integrated Development Tools)"  required. Most of them have Free trial or Basic Edition for you to have a taste of their tools before you really get your hands wet into it.

Index Programming Language Framework IDE
1 Java Native / LibGDX / AndEngine Eclipse* / Intellij
2 C++ Unity3D / BatteryTech UnIDE
3 Actionscript 3 FlashPunk / Flixel / Starling Adobe CS6 Professional / Flash Builder / Flash Develop
4 Lua Corona LuaGlider / Sublime Text
5 No Programming required - Construct 2(Scirra) / Stencyl / GameMaker
6 HTML5, javascript Intel XDK Modern Browser (eg: Chrome)

  • If you are looking for FREE solutions, creating games in Java would be your first priority. The asterisk (*) shows that the link comes with both Android SDK and the IDE. The framework Libgdx and AndEngine are the open-source projects maintained by passionate developers.

  • However, the paid choices like C++, Actionscript and Lua (paid in terms of the Framework or the IDE) come with more powerful and more stable framework and magics which would facilitate your programming significantly. Moreover, the paid services usually have helpful forums and support to your need whenever necessary. 
Give me a note if you have found something else and i will add it accordingly.