Tuesday, August 7, 2007

Mobile Game Industry

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


Mailed to me by anupam@tinfomobile.com

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 and whenever you've played Roadrash on your PC, you should have pondered and thought over how you could do something like it yourself! If yes, 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 ;-)

Why Mobile?

Thats a 'Yeh PSPO nahin jaanta?' 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.

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

  1. 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 a total of 120 million mobile subscribers! If what you make is wanted by even one percent of this number – that is a significant figure. And that my friends is the basic reason for the existence of the mobile entertainment industry.

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

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

Narrowband TDMA, 8 calls on one freq.

1 billion + subscribers (2004 statistic).

India 2006 August: ~90 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.

25% market.

India 2006 August: ~30 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.

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

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

  1. 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. We will now move into the actual process that we at Tinfo Mobile use for developing a mobile game.

The starting point

Keeping all the things mentioned above 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.

Graphics

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 artform for mobile games is called pixel art. (It is a specialization skill in itself – google it out to know its wonders). The following is a sprite set. It is a pixel art of a mosquito flying (3 frames) and being hit (1 frame). A pixel artist makes all the graphics assets as per specs.

Levels, structures, algorithms

Now comes the phase called level design. Its basically like making the map for the game, tile-by-tile. A sample level map from one of our games:


Selecting the programming environment

The following list provides the options available today for converting your design / idea into a mobile software executable:

  • Symbian (C/C++)
  • J2ME (Java :-)
  • BREW (C/C++)
  • MS Smartphone, pocket pc (C/C++/eVB)
  • Others

· Mophun (C/C++)

· Ex-En (Java)

· Do Ja (Java)

Most widespread = J2ME (>80% of the market)

Coding

One thing that your teachers might have taught in your software engineering class is cent percent true. Design is more important than coding. If you have done your design well, you would know what code should come where and your thought process would be guided easily by the documentation. We have seen many a project fail when the design part was not given its due importance.

The only guidelines to be followed for coding are – follow standards, write tons of comments, take backups, re-use knowledge and code. Most APIs for mobile development are well documented with samples and are freely available on the Internet.

QA and testing

Once the game has been developed, real gamers and QA professionals put it to test against standard checklists and other game specific test-suites. This is an iterative process that goes on till all wrinkles have been ironed out.

Porting

Porting is the bane of the mobile games industry. Unfortunately, most handsets differ from each other and have their own peculiarities. If your game has to be successful in the market, it should address as many of the handsets as possible. The process of modifying and adapting a game to a set of target handsets is called porting. There are many companies that specialize in porting itself as it could be a pretty intensive process.

Publishing

Someone has to publish and provision the games before they become available to the public. This role could be done by either the operators, or aggregators or the developers themselves. The game files are uploaded to special content delivery servers that can automatically send the correct files for each handset over the air using GPRS or CDMA data channel for transport.

Viola! Your game is now ready and is being enjoyed by millions! Depending on how good it turns out to be, the vagaries of the mobile market, the reviews, the critics, and how many telcos espouse it….

Your game becomes a hit! …. Or hits the dust… or lands up somewhere in between.

Some help

If you know to google well – well you've got it! Trust me, as they say – if you ever need a helping hand, theres always one at the end of your arm – just use it to type into the google search box :-) . If even that does not help do shoot us an email. Our website is www.tinfomobile.com and my email address is anupam@tinfomobile.com

No comments: