Tuesday, August 28, 2007

Glimpses of Aranmula Boat Race 2007

A few snaps from the spectacular Aranmula Boat Race, 2007. There is something charming about this race which takes place every year on the Pamba river in central Kerala (aka God's Own Country).

What is interesting is the role of team play in winning a race (or even moving the snake boat an inch forward). There are so many people involved on a snake boat that unless there is a good co-ordination and understanding among them all - from the guy who makes the drum beats to the oarsmen - it ain't as easy as it looks.

Thursday, August 23, 2007

Adding Voice to SMS

The telecom revolution is sweeping the world at a scorching pace. Nothing has changed the way people interact and transact as the humble mobile phone has. For the first time, an Information Technology device has become accessible to even the less privileged in developing countries. SMS has today become an integral part of inter-personal communication. Consider this: worldwide, 620 billion SMS messages were exchanged just in Q1 2007!

Unfortunately there is a vast community for whom SMS does not hold relevance- the visually challenged. Trust me, they DO use their mobile phones extensively and it IS a great blessing for them even if it just provides them a means to attend or make calls.

Back in 2003, we at Tinfo Mobile had realized this and did whatever little we could. We made a Java based application for Reliance India Mobile users. Most of the Reliance handsets being very limited B&W ones at that time, we made a lightweight client app that resided on the phone with the bulk of processing handled by on the server-side.

The idea was simple:
a. The client app would retrieve the SMS text and send it to the server.
b. The server would use a TTS (Text to Speech) engine and convert it into an audio stream.
c. The client app would play-back this audio stream.

We were able to create a working prototype which won us a Special Award. We also made a lightweight application that was client only which would read out just the missed / dialed /received calls. This app was named 'Call History' and was launched by them.

A few other softwares are also available:

1. TALKS. The most notable among them is TALKS for Symbian mobiles from Nuance. The only problem is - its limited to a slightly high end mobile phone category - Smartphones running on Symbian OS. Nevertheless its a great piece of software.

2. Mobilespeak. Developed by Code Factory, mobile speak has a braille hardware support option also.

3. Pocket HAL. Developed by Dolphin Computer Accessories, Pocket HAL supports Windows Mobile PDAs.

I wanted to provide more options if I could and thats when a new product idea struck. Most mobile phones (even the relatively cheap ones) support bluetooth, infra-red or cable connectivity. Quite a few visually impaired people (though I admit, only a small percentage) have access to a computer either at home or office and PC IR/ BT dongles and cables are pretty cheap nowadays.

The result is SMS Talkz - an advanced voice enabled SMS management software for plain old PCs supporting most handsets with bluetooth, infra-red or cable. A software that resides completely on the PC requiring nothing to be installed on the phone and still reads out your SMS in voice. (Its also designed to be a good companion to those blessed with a good vision too)

The first Release Candidate is being readied at the moment and we require people to use, test and report bugs. So, those who have a little time to spare, please pitch in by downloading the beta from the SMS Talkz site. Serious bug finders will be rewarded by serious discounts too (do sign up at the forum with valid email address for that) :)

Also, do help spread the word on the product by including any one of the following banner images on your blogs / sites:

Banner Code (copy paste to your page, replace IMAGE_URL):

Box banner 320 x 265:

Leaderboard: 750 x 80

Banner small: 505 x 70

In case you want to provide just a text link, please use the following code:

Thanks! Your help is appreciated.

Wednesday, August 22, 2007

Presenting the iPhone Shuffle :-)

(File under - LOL :-) )

Found this link on the inimitable David Pogue's page on the NYT.


I want to make a mobile game! - Part II

Continuing from where we'd left. Its time to get into the typical process of mobile game development - lets call it 'Life of a mobile game'.

Day 0 - A game idea is born!

The starting point

Keeping all the things mentioned in Part I in mind, the starting point for a game is – your mind. The whole cycle begins from an idea that you get (while you were perhaps taking bath in cold water on a chilly Monday morning ;-). The first step would be to document this into a form that even a layman could understand and appreciate. If possible (if you can draw decently well), add mock up-screen shots as well.

Remember, a sketch is sometimes better than a thousand words. Present your concept to your colleagues/ friends and get their feedback on it. Obviously, one attitude a game designer must have is to be very open to criticism.

Documenting the concept

So now your concept document is ready. It’s time then to create the design document. The design document essentially connects the concept to the intended game play and takes into account the constraints that might be imposed by the target handsets. The design document should be treated as the main reference material for your game project. It would be a living document which grows with your project. The design document should capture the aim of the game; describe the characters, friendly objects, enemies, platforms, levels and how each of these
elements would interact with each other in simple words. It could also specify which keys are supposed to do what function in the game, the target handsets and the audience.

End of Month 1, still doesn't say ‘mama’


As a part of the design process, you must have also come up with a list of graphics assets that will be required in the game. The artwork is the skin and clothes for your game. It is what will be visible to the rest of the world. Make your artwork as snazzy as possible. The specialized art-form for mobile games is called pixel art. (It is a specialization skill in itself – google it out to know its wonders).

There are a few game components that every game developer must be familiar with. The first among them is a Pixel. A pixel is simply the smallest distinguishable unit of a screen display. Currently there are no direct techniques to draw less than one pixel on the mobile screen.

The second is a Sprite. (No, its not the green bottle of carbonated 'all taste, no gyan' that I am talking about :-) ). A sprite is a transparent image, usually depicting a character or an object in a game. Every character in a game therefore has its set of sprites for each action that is involved. The image containing the set of sprites is usually referred to as the sprite-sheet. The following is a selection of sprites for the the protagonist 'Ramson', from the game Ramson's Quest.

© Tinfo Mobile 2006

The next component is called a Tile. A tile is conceptually similar to the mosaic or ceramic tiles that might have been used on the floor of your house. A tile is a rectangular (mostly square) piece of the background of a game screen. In other words, a set of tiles arranged as rows and columns make up the background layers of a game. Why use tiles? Why not have a large image that could be drawn on a screen? Consider a platform adventure game like Ramson's Quest, where the hero has to move across platforms (which are pretty long) to reach some destination point. Assume that the level is currently 100 tiles wide and 15 tiles high. If each tile is 16 x 16 pixel square in size, that translates to an area of 100 x 15 x 16 x 16 = 384000 pixel square. Since every pixel of image space costs two bytes space, this translates to a whopping 750 KB just for the background image! This is simply not feasible due to the following reasons:

1. Most devices have a hard limit on the maximum image dimensions. Though there is no hard and fast rule, it would be a safe bet to limit any image within 255 x 255 pixel square size.

2. Most devices do not have a separate image memory and the heap in most devices is restricted to 200 KB (again, this could vary, but 200 KB limit is the safe limit, 512 KB is quite usual on most MIDP 2.0 phones).

3. Such a large image will take a lot of space in the jar file. (A Java application is packaged as a Java Archive file- the same as a compressed zip file and has an extension .jar). The safe limit for the jar size is very low. On some devices, as low as 64KB.

4. A game involves a fair amount of interaction between the background and the characters. Having a big image will necessitate getting the pixel data at a given position. For example, Ramson can stand on grass but has to be hurt by a water-fall. If the image is single piece, the only way to do this would be to get the pixel data at the location where Ramson is situated. But this, is not directly possible at least in MIDP 1.

5. Certain regions in the background need to be animated, for example the waterfall in Ramson's Quest is animated, to make it appear as if its flowing. This is not again not possible with a single background image.

All these reasons effectively rule out the possibility of using a single background image for the entire level. Now let us see how tiles help.

Below is a small section of a game level from Ramson's Quest 2 (a 1200 x 200 image scaled down to fit blog):

© Tinfo Mobile 2006

This 'big' image can be drawn using just a handful of 'small' tiles (just around 12 of them)!

To map which tile gets drawn where on the screen, we have a Tile-Map. A tile map is a two (or one) dimensional array which says which tile is to be drawn at the given location of a map.

The tile-map for the layer above may look something like:






(Assume, waterfall tile numbers are 1,2. Blank tiles are 0 and 4 is the wall tile)
I hope you get the picture.

As to how exactly a tile-map and a tile-sheet (an image containing the set of tiles) can be used to render a background and thus design game levels is something we will investigate in the next article.

As an exercise, google out the terms mentioned in bold in this article and know more about them. For the more enterprising readers, do go ahead and make a tile drawing algorithm! And do post a comment if you need any help.

Monday, August 20, 2007

I want to make a mobile game! - Part I

(Or, how do I get started on a mobile game development career?)


Mobile game development is an art. As with most other forms of art, it demands two attributes from its practitioners and practitioners-to-be: aptitude and attitude. While attitude can be built up, aptitude is something that is inherent (or conditioned over time). A better term to use would be – talent. The only point I would like to stress here is that though it is by no means a rocket-science, one just cannot expect everyone with a degree in computer science to be good mobile game developers by default. So if you really want to be in the games development industry you should have by now at least tried to have made your own game – at least a tic-tac-toe! Whenever you've played Roadrash on your PC, you should have pondered and thought over how you could do something like it yourself! If you think you're on the right track- read on :).

This article is intended to provide you a general backgrounder on mobile games development and the industry so that you could take informed decisions on whether this is what you might want to chose as your career (or you just want to kill some of your time, reading though something interesting ;-).

As for me, my initiation to this enchanting word was perchance (providential). I just happened to be put on a mobile game project half a decade back with nothing more than a web browser to rely on. So, most of the things I learnt - I learnt the hard way (Which is kinda good, since you know how exactly things should not be done). Anyways that brings us to the all important question:

Why mobile?

Thats a 'Yeh PSPO nahin jaanta? (an ancient Indian television saying ;) )' kind of statement. Anyways, it makes sense to know why anybody (people like us) would want to bother about making games and applications for mobile phones in the first place!

1. The mobile handsets today are essentially programmable / re-programmable devices.

More than 90% of the handsets being shipped nowadays have some programming interface. Java is one of the most popular options today but not the only one.

2. They are connected devices. Connectivity is a built in feature of the mobile handset. Assuming that you have signed up for data services, the mobile phone is now a device that is capable of sending and receiving data over the Internet.

3. The mobile phone is clearly the most popular digital device in the whole wide world. Just look around and count. The number of mobile handsets you see will outstrip the number of the other digital devices that are around you. And this represents enormous opportunities. In India, there are almost 200 million mobile subscribers! And that my friends is the basic reason for the existence of the mobile entertainment industry. Even if the revenues might not be initially attractive, the customer base is.

4. Mobile game development is cool! Game development in itself is considered the cutting edge of programming. While most software engineers will end up in typical software services firms; only a chosen few will get to be in this industry. For the moment – this IS niche :-).

It might also be helpful at this juncture to have an overview on mobile network technologies prevalent today. GSM and CDMA. This does not have a direct relation to the gaming world except for the fact that most CDMA handsets use BREW, while most GSM handsets use Java.

GSM stands for Global System for Mobile communications. This clearly is the more popular sibling.

Usually Narrowband TDMA, 8 calls on one freq.
1 billion + subscribers (2004 statistic).
India 2007 August: 135 million

CDMA (Code Division Multiple Access). Based on a declassified US Defence encoding technology to which Qualcomm Inc. holds the patent (So for every CDMA handset sold anywhere on the globe they get a royalty!) Supposed to be more spectrally efficient than CDMA and is completely digital.

Based on spread spectrum modulation.
Roughly 25% market.
India 2006 August: ~40 million

Mobile games are different

Since I belong to the mobile entertainment industry, this article will be based on the mobile platform. Mobile games are different from games on other computing platforms due to following reasons:

1. Too many constraints. Everything is limited and in short supply including screen-size, memory and customer's patience. So mobile game programming is all about writing the most optimized codes and designing optimal graphics and putting it all together in the smallest package.

2. Shorter development cycles. While game or console titles' development typically spans over a year, a mobile game takes a few months to develop. Therefore, while a full scale title on a PC would cost billions of dollars nowadays, a mobile game would cost only its fraction.

3. Mobile users are spread out among all socio-economical classifications and therefore a major chunk of the users comprises of casual gamers or first time gamers. The primary function of a mobile phone is not gaming and this must be kept in mind while designing the game. A gaming console on the other hand is designed from the ground-up for gaming and for gamers. The games there would be a bit more mature in nature and might not be as generalized as a mobile game might be. Another important statistic now available says that there are almost as many female mobile entertainment users as there are male.

4. You must keep in mind that the mobile games market is already crowded. Make sure what you develop is something that is clearly different from what is already available.

Assuming that you are by now convinced about the size and scope of the task at hand (and are still interested), lets carry on.

In Part II, we will move on to the actual process followed in developing a mobile game.

Saturday, August 18, 2007

ARPUs don't lie

This post is a part of my research into the Indian mobile content market - a general 'state of affairs' estimation relying on ARPU figures.

Disclaimer: All calculations here represent my personal estimation based on plain high school maths, figures available on the net (as in Q1 2007) and certain assumptions, which may NOT be accurate :)

VAS: Value Added Services
ARPU: Average Revenue Per User (per month)
COAI: Cellular Operators Association of India
IAMAI: Internet and Mobile Association of India

Starting Assumptions

Indian GSM subscriber base
= 135 million (COAI)

ARPU, Avg. Rev. Per User
= Rs. 300 (rounded)

%, VAS Revenues
= 10 (IAMAI)

%, SMS contributing VAS Revenues
= 55 (so remaining 45% has ringtones, CRBT, wallpapers, games, apps, mms...)

%, Games and data contribution to VAS Revenues
= 7

%, VAS operator rev. share
= 60 (remaining split between developer and aggregator)

%, Revenue share, developer (from what an aggregator gets)
= 40

%, Postpaid of subscriber base
= 20 (IAMAI)

%, Postpaid customers revenue contribution
= 80

Calculations, Non SMS VAS ARPU


= (10% x Rs.300)
= Rs. 30

= (45% x Rs.30)
= Rs. 13.5

Calculations Non SMS VAS Revenues


VAS 'Market' including telcos share
= (Subscribers x VAS ARPU)
= Rs. 4.95 billion

VAS Aggregator Revenues,
= (Subscribers x Non-SMS ARPU x Aggregators Rev Share)
= Rs. 891 million a month
= Rs. 89 crore (1068 crore annual)

VAS Developers' Revenues,
= 40% x Aggregator revenues
= Rs. 356 million
= Rs. 35.6 crore (427 crore annual)

Game developers' Revenues,
= (15.5 % x VAS Developers' Revenues)
= Rs. 55.8 million
= Rs. 5.58 crore (67 crore annual)

Twisted Analysis

1. How much does an Indian mobile consumer actually spend?

Assuming that post and pre-paid spending ratio applies to VAS as well,
(Since 20% post-paid subscribers make 80% of revenues)
33 million subscribers contribute Rs. 3.96 billion VAS revenues per month

Excluding SMS share,
33 million subscribers spend Rs. 1.78 billion a month
Therefore, on an average, a post-paid user spends Rs. 54 a month on VAS excluding SMS.

There is one catch though! all these services require GPRS and it would not be fair to assume that all the post-paid subscribers would also be GPRS subscribers.

Assuming that only 20% of the post-paid subscribers are active GPRS users,
6.6 million post-paid GPRS subscribers spend Rs. 1.78 billion on VAS per month.
Therefore, an active GPRS user spends Rs. 270 per month on VAS.

Now, there is another caveat, GPRS by itself attracts a 'fee' for most subscribers, a few operators do provide pay-per-KB data transfer plan. (Airtel, for instance has a Rs.250 per month plan and a Rs.1500 per year plan) Still, I think it would be safe to assume that 40% of this customer spend goes towards paying for 'data' and that leaves an actual spend of close to Rs. 165 on actual 'buying' digital content per month?

2. Where is the moolah flowing?

Riding on the sheer volume of users, the telecos are building up their kitty by the virtue of owning the pipe and controlling the gates.
The next in line are the aggregators. India has the following major aggregators, there might be a few more:

IMI Mobile - Good operator tie-ups
OnMobile - IVRS leaders
Mauj - Good portfolio
Indiagames - Relatively recent shift of focus on aggregation
Indiatimes - Portal.

They'd make 60% of VAS Aggregator Revenues (after paying out developers/ rights owners). Put together, their revenues would be close to Rs. 50 crore a month.

Now come the developers, ringtone, wallpaper, game, app providers put together. Logically they'd get as their share whatever is left after the operator and aggregator takes, which would be 40% of VAS Aggregator Revenues close to Rs. 35 crore a month.

The only problem is, there are hundreds of fingers in this pie. A cursory glance at the portals will give a good picture at the enormous selection of content available. While a good percentage of such content comprises of scaled down bollywood/hollywood posters, trailers, screenshots and ringtones, the next major set of content providers are global studios. Then come relatively obscure studios, including many Indian content developers.

The pan-Indian mobile content shelf:
Item: Tones | Images | Games Apps
Share: 78% | 7% | 15%
Rev: 27.3 cr | 2.45 cr | 5.25 cr

Active: 5000 | 2000 | 500

Avg revenue per item for a developer
= Rs. 5,460
= Rs 12, 250
Game and app
= Rs. 1,05,000

However, an 'average' can be misleading, since what really happens is that the downloads are heavily skewed in the favor of top 10 to 20 content items, the rest of the items together might constitute just 10% of the total downloads.

3. Is developing content really worth the time and effort?

To get a perspective on these figures, let me take the case of games and apps since these would be the most resource intensive. A good 'visible' game or app could thus make $2,500 or close to $6,000 over its Indian shelf-life. So, for an developer investing at least four months worth of team effort in developing an international class product exclusively for the Indian market, is a high risk. The other alternative is to make a lot of low-quality quick games - one might just about break even with such glut!

The only reason why someone would consider this market is its sheer size and 'potential'. So those with deep pockets spend to build the brand and be ready 'when the time comes'. Also, most content items have a global appeal. India can just be one of the many spokes in the developer's distribution wheel.

Another word of caution: These figures lead me to believe that there is a 'revenue leak' somewhere in the chain. The 'numbers' passed down to the content developers rarely come even close to our estimates. Perhaps some members of the Content Providers community could comment on this?

Also, I might have made mistakes, logical or arithmetic in my calculations - please point them out. Baseline- ARPUs dont lie!

Tuesday, August 14, 2007

Blast from the past

(File under: Non-tech) Last year about this time, I went back to my old high school- St. Thomas Residential. While I was walking from the junior section to the senior section, I found this drum set lying in a heap by the corner - junked.

I was shocked and excited at the same time, since I had quite a few memories associated with it and so would a few of my batch-mates from santhome. Perhaps I should have done more, but the only thing that drew upon my mind then was to take a snap. Thank God, I at least did that!

Its been a decade since we left school; we were the batch of '97 Indian School Certificate Examination students. I'd joined the school in '94, as a ninth standarder. Though I am a 'native' of Kerala, till then, I'd never spent more than a few holidays here; so it was a new beginning of sorts. With the new school came a new bunch of friends, some of whom are very much in touch to this day. One thing that bonded a few such friends was music. That bond and the timely encouragement from a few teachers and friends resulted in 'Excalibur' - the first ever school rock band from this part of the globe (and perhaps the only one which batches after us and teachers remembered, at least for a while, with - "oh, you're one of the Excalibur guys!"). The initial team: Jayadev (lead vocals), George (keyboard), Zach (rhythm, lead guitars/ drums), Danny (Lead Guitar), Vivek (guitars) and me (vocals). There were others too, who'd pitched in when some of us had to leave.

Today, while I was flipping through my old pics, I chanced upon this shot again. This junked piece of equipment, which I'm sure my friends would recognize, had once formed the center-piece of our meager ensemble. A day before our first live performance, George - our keyboardist (thanks for pointing this out) Reghu our designer geek, designed the logo - Excalibur, The mythical sword of king Arthur, on a round sheet of paper which we stuck to the bass drum. If I remember right, it was this very drum that first bore our emblem. We really could not afford to buy a new drum and so were happy and thankful to have at least the old school drum-set! Slightly off-tuned and somehow precariously functional, it served us well and gave us a quite few good times.

I also recall once while Zach (Guitarist, keyboardist and a drummer rolled into one) was at the drums, we were playing "Miss you in a heartbeat" (?) on stage for the school-day. He hit the cymbal at the end of a roll, the cymbal went crashing all the way down to the floor and the stick flying through the air. We went on as if nothing had happened and Zach cool-ly rose from his chair, retrieved the stick, pulled up the cymbals and continued drumming.

Those were the best days of my life :) and this picture brought back some memories. I've jotted 'em down and hope that others with whom I'd shared my space and time, too could re-live a few moments from their past.