Monday 11 July 2011

Graphical Content for Android Games

When you play a game on your favourite platform, it is easy to believe that the creation of the graphical content is purely ingenious or that it must require expertise within a team of staff to create such a thing. While this may be true for cutting edge games performing on powerful hardware, just like many industries, it depends purely on the content one wishes to create. In this way, Android offers itself to small development teams, even consisting of 1 or 2 members since mobile games are so compact compared to other platforms such as the PlayStation 3 or Xbox 360. For instance for the game Alkaline Labs has in production at this time one graphic artist will suffice, even though there are many units, models and maps etc to be created.

If you are starting out in the android game/app development world you should ask yourself some questions regarding the graphical content:

2D or 3D
Unless you have created a new dimension, your game will operate on either a 2 dimensional or 3 dimensional field. 2D graphics correlate with x and y coordinates (up and down to simplify), while 3D graphics include an additional z coordinate which deals with "depth" to create a virtual world, arguably with the same visual rules as the Universe we live in. Below is an example of a 2D game, the now classic "Angry Birds", followed by a 3D game for named "Light Racer 3D". Both were developed for Android, amongst other Operating Systems too.
"Angry Birds" by Rovio Mobile.
"Light Racer 3D" by Battery Powered Games.


Detail
Since we're working on mobile phones and tablets, the level of detail can be compromised greatly in comparison with platforms which use larger screens. This is incorporated into the hardware of these devices anyway and therefore a very high level of detail in your graphics will only cause performance problems (which are a huge no no). Games like Angry Birds are highly detailed, incorporating several layers of backgrounds and scenery around the already detailed playable areas. The developer operates on this level of detail since the game lends itself to small maps which keep the game's process concise. They also offer reduced scenery and sound disabling features on the game for less powerful phones.


Total Production Time
Another aspect you must consider is how long you are willing to spend developing said app/game. While one graphics artist may suffice in terms of the skill set required, whether that's you or someone else, you need to consider how long is the task is estimated to take. If time is not much of an issue, or if your game does not have a large demand for graphical content you may stick with one artist, but two or more for larger projects. This of course may not be possible for the vast majority of people, unless you are working in an established team.


 I will only touch upon the 2D graphical specifics from this point onwards as there is simply to much information to engage into with 3D within this post.

Android engineers have derived what are called APIs (Application Programming Interface) to give developers all they need to create their applications/games. Naturally these offer different means of managing your graphical content. Android specifically has a handful of graphics APIs, "Canvas" and "OpenGL ES" being the main two in terms of use and features in the development community. Canvas is appropriate for less demanding graphics in general, while OpenGL ES being the power house which you can rely on for graphically intense applications/games. Games are the main users of OpenGL ES as they often require significant power, while Canvas and other APIs of this nature suit applications which are generally not demanding at all.

Android accepts JPEG and PNG formats for graphical content with the option of 8, 16, 24 and 32 bits for the color storage information. If this sounds like gibberish then I suggest reading up elsewhere on this as it is basic knowledge which is most definitely required. It should be noted that JPEGs are are compression format, and PNGs are a lossless format and therefore it is justified to offer them both to developers. Unless you want to strain your users eyes, I would personally recommend PNGs every time as JPEGs tend to pixelate greatly, which is highly undesirable for games, while not such an issue for general applications. Another benefit of PNGs is that they store the alpha values of pixels in the image file which can be invaluable to overlay graphics over others. JPEGs do not store the alpha values and so only decrease their usefulness.

If you are using OpenGL ES for your graphical needs, you will have to provide it with graphic files with power of 2 dimensions, e.g. 256x128, 1024x512, all in pixels, notably. This is a technical issue and is not a real problem. You do not by any means have to fill the image file with data that you will use, for example you could place 3 maps within the file and specify alpha values of 0 for any unused sections of the file, although since you will not be asking OpenGL ES to render this unused data, you can simply leave it as it if by default. It is a good idea to keep relevant images in these "Texture Atlases" as they are called, for organization and also optimization in your game.
For now, that is all.

Thursday 7 July 2011

A Note On The Android Operating System

For anyone out there who is unaware of, or is simply looking for a good insight as to what Android is with respects to developing in some detail, here is some interesting information regarding it.

"Android" is the name of a Smart-Phone Operating System created by Google, which was derived from the PC Operating System: "Linux". This is a very broad statement, in that the details regarding this matter are somewhat technical and I am aiming to simply attend to the most useful information to the most readers. Launched in mid 2008 on the G1 (Google 1 [it is known by a few other names too]), Android is a versatile and deeply customisable operating system which can cater to the needs of a huge variety of users without compromise. It is available openly to all phone manufacturers, but requires their product's hardware passes a series of technical tests (around 20,000 individual tests.) This ensures consistency throughout the handsets, quality in the components within them and also makes the development of "applications" far easier.

Much like Apple's iPhone, Android has an "online" marketplace where all users can download various "apps", or "applications", ranging from games, utilities, entertainment and so on. These "apps" are all developed separately from Google (bar "Maps", "Gmail" and "Market") and in many cases are produced by small development teams, or even 1 single developer. Unlike Apple however, Android is completely open to the developer industry, with a much smaller license fee (around $30) and instant publishings of the developer's applications. While many will argue that this causes the market to be filled with content that is of poor build or even malicious, it allows the market to grow quickly and for the developers to reach their users without any fuss.

Although Android development is intended for the Java coding language, it is highly adaptable to other languages such as C and C++ with integration, not to mention the powerful IDEs (Integrated Development Environment) such as Eclipse to work within.

Google has announced that Android is running on over 100 Million devices to date, with over 500,000 new devices being activated across the globe with each passing day. Android is currently the top dog in the Smart Phone market, beating Apple, Blackberry and others such as the Windows Phone. It is also only demonstrating that it will remain the leader from years to come. If you have an interest in getting involved with Android then hop on over to http://developer.android.com and see how to get started. There is a huge amount of support whether you know zilch or even if you are an experienced developer, in one way or another you will be able to get your hands dirty in no time at all!

Monday 4 July 2011

First Android Game in Production

Welcome to the first ever blog post by yours truly. To cut it short - Alkaline Labs is a game development establishment for Google's Android Operating System on Smart Phones. The first game is well under way as this is written, although one shall refrain from divulging into too much about said game. It fits well into the "Tower Defence" genre and will hopefully bring a new experience to the playing field on the Android market. Current stages of development suggest there will be a Free Version with limited features and some ad-support, along with the Full Version, which naturally will be fully-featured and contain no ads whatsoever. Although nothing is certain and it is necessary to say that any view expressed here is subject to change, the full version will probably cost less than £1.


The game will feature graphical content created by Frodey Meredith and is running on LibGDX, which is a renowned framework engine for Android and other Operating systems. Estimated release of the game is between August and September 2011, although this is also subject to change. 
For frequent updates on the game's development and other issues relating to Android Game Development and Alkaline Labs itself, follow us on twitter https://twitter.com/AlkalineLabs