Mdc2010 Casual Game Dev

Post on 29-Nov-2014

756 views 0 download

description

 

Transcript of Mdc2010 Casual Game Dev

Casual Games on Mobile

Mukul Joshi, Director & CEO

SpotOn Software Pvt. Ltd

mukul@spotonsoft.com

www.spotonsoft.com

Roadmap

Why the topic? Glimpses of mobile game world Before you begin the game development Mobile game development Commercialization Road ahead Q & A

Why the topic?

What are casual games really?

Why the topic in devcon?

What do analysts say?

What makes a game casual?

Who is a casual gamer and who is a hard-core gamer?

Lets have a pop up quiz

What makes a game casual?

Targeted at Mass audience Can fit in any genre (puzzle, card, board etc.) Requires no special skills to play

Simple gameplay Ability to quickly reach final stage

Requires no long term commitment to play Allowing game play in short bursts

Typical user is older, high female population

Why have them on mobile?

Targeted at Mass audience Can fit in any genre (puzzle, card, board etc.) Require no special skills to play

Simple gameplay Ability to quickly reach final stage

Require no long term commitment to play Allowing game play in short bursts

Typical user is older, high female population

Lets talk about India Indian Mobile gaming market is growing in excess of 200% for the next two

years; expected to reach $450 Million in 2012 Source: www.pluggd.in Informate research shows that time spent on mobile phone gaming is around

7.5% of the total time spent on mobile phones, among those who play game at least once in a month While this is only a small part of the overall time spent on entertainment

(40%,largely mobile music), the time spent on mobile gaming has shows an increase over previous month

The choice of game selection differs with the age-group and gender 18-30 aged youths account for the higher-than average time spent on games

While the most popular mobile games are of the established genre (Card, Puzzle, Arcade), there is a spike in popularity for mobile games inspired by Hollywood, Bollywood movies and Cricket Source: financial express

Huge window of opportunity for the VAS providers with the entertainment hungry Indian youth willing to explore the world of mobiles and mobile internet

Host of India-based Game production companies sprouting given the lively market, enriching the competition and providing ever-increasing variety of games for all ages

Mobile games is a hot market

Not just in India but World-Wide iPhone has made it even bigger Most of you are developers

Launch your products Work for your services customers

Likely that you will come across this VAS segment

Hence we are here

Lets look at afew of them

Categories/Types

Differentiators

Challenges

Single player games

Snake – Nokia 1997 Bubble breaker Win mobile

Puzzle BobbleTaito Corp

Bejewelled Accelerometer game Card game

Important categories

Text based games (Bot fighter) Location based (Treasure hunt) Multiplayer Social

You need to understand the challenges with the nature of the game

Multiplayer gaming challenges Where and when people play?

There is plenty of idle time while travelling Are the places or the time slots suitable for gaming

Interrupts in playing Phone calls, messaging Flat battery Non-tech interrupts (bus coming etc.)

Communication Mobile networks

Price Latency

Local radio (WiFi, Bluetooth) Social pressure

The average age of gamers is rising Now within 10 –35 years range in general Is gaming yet socially accepted?

Before you begin

Game design

Choice of platform

Testing plans

Good design is the key

Good games require good design Profitable gaming projects require good

design Even if those are services projects Especially fixed bid

Lets take an example of iPhone game

Game design

Understand the roles

Creative Pattern Story board Characters Difficulty Scoring Excitement factors

Designer Effects Graphics

Developers Understand Implement Unit test

Testers Many a times the

designers

Your own game (product)

Understand the roles Identify them Put appropriate boundaries

Developer in you has the least of say Do not hurry to start development

For services customer

Make sure you have “sufficient” information Understand you can be profitable when you

Deliver in time With expected quality of output

Goal – Reduce the time to be spent in Communication gaps Re-development Test – Design – Development iterations Device/Platform issues

Issues!

Issues contd

Main processor Each phone has it’s own processing power

Many don’t have floating point support

Graphics processor Each phone has its own graphics capabilities

Some can do fast 3D Some can do fast 2D but can’t handle 3D Some can barely handle 2D Alpha channel can be a major bottleneck

Issues contd

Memory Again, each phone has its own

Application sizes from 32KB to several MB Heap sizes from 200KB to several MB Almost all combinations exist

Audio and video capabilities Each phone supports only a range of formats

Some do support all of them The majority does not

Issues contd

Network capabilities Various limitations

Forget about IR Bluetooth can be a pain to support and is highly Unstable when there are “too many” clients Internet connection is usually slow

Keyboard Not all phones support multiple key press It’s a cumbersome interface

Issues contd

Display Holy crap, too many variations

“My screen is bigger than yours!” “What color is that?”

You usually have to support them all

Lets get scared

Hats off to glu.com

25000 Different builds for “Transformers” mobile gameOn average mobile developers are creating 400 buildsGoogle maps targeted 10 platforms, created 100 different builds & my boss wanted it yesterday

Being a master

Understand the gravity

Learn the basics well

Handling different screen sizes

Crude way - one build One build doesn't work for rich games/applications Backgrounds - paint in code or tile Vector images - too heavy Compute item positions from screen real-estate Don't do overdetailing And there is aspect-ratio to be considered as well

Handling keyboard differences

Avoid using keys other than LEFT, RIGHT, UP, DOWN and FIRE

Support touch Handle qwerty Add a virtual mouse

It's far more intuitive to move a cursor around with phone's joystick or its equivalent rather than use the joystick itself to jump from one screen item to other.

Also, it looks ultra cool and familiar to computer users.

Don't rely on soft-keys

Externalizing parameters

Basic I18N: Externalize strings (all messages) Implement intelligent device detection

Devices specific tweaks and adjustments can be stored in a config file and loaded depending on the device

OTA configurable parameters (server addresses etc)

Code must NOT contain other numbers than -1, 0, 1 or 2

Give a build to test early Everything should be externalized for the designer to test

Double buffering Not suppported by all phones

At times the implementations, internally, kill the very purpose of double buffering by flushing it instantly to real screen.

Create custom buffer There is a way to create custom secondary buffer by performing all your

graphics operations on in memory scratch-image having same size as that of the screen

Support sprites (if not supported by platform) Goggle : Bitblt

Add compositing What if you wanted to show popups? and Also mouse cursor? You can have several offscreen buffers multiplexed to create layers with z-

ordering. Trade off between memory and CPU cycles spent in redrawing the whole

screen. Improves things significantly by requiring repaints only for significant changes on the screen.

Handling animations & sprites Prefetch

Prefetching removes any delays caused by the file format decoders and I/O No memory management operations in game loop

Don't malloc() or free() inside game loop. Yes even free() can cause problems. Frequent malloc() will bog down the game

Doing malloc() a new sprite as & when required causes fragmentation of memory and after some time subsequent malloc() calls start taking more and more time.

Advice: If possible, malloc() all the required memory once, that is, when the game starts.

Use weak references with garbage collector. If your language supports automatic garbage collection then using weak references for

prefetched objects will ensure that they can be expunged if there is an urgent requirement of memory.

Reuse sprites. Use object pooling! Double buffering very imp for Animation Keep animation thread separate from game loop.

Sound

Prefetch Combine to save file format header space

Use position offsets to seek and play appropriate piece in a combined file. (Applies to images as well)

Stick to basic formats (if targeting gazillion devices) PCM (Wave), Au work on most of the phones

Provide a way for users to adjust volume Not all phones will have direct volume adjustment keys

Know the frameworks

Cocos2d Chipmunk Unity Oolong

Commercialization

iPhone story

How much can a developer make? Perhaps very little. First 30 days

on Apple App Store is crucial. Or, a lot. After 10 days, #1 iFart

was making $35K per day But, only 10% of apps are still in

use after 3 months; not sticky Avg. cost per app is $2.64 (based

on top 100 apps); price elastic! Other business models: freemium,

advertising (ugh), % transaction Problem is discoverability ...

getting lost in the 25,000 apps

http://www.streamingcolour.com/blog/2009/03/09/the-numbers-post-aka-brutal-honesty/

Nokia’s Ovi Store• BlackBerry App World• Windows Marketplace• App Store for Symbian, PocketGear• Android Market• Palm Software Store• O2 Litmus (Mob4Hire)• 3rd party off-deck (GetJar, Handmark

Conclusion

Thank YouMukul JoshiDirector & CEO

SpotOn Software Pvt. Ltd.

mukul@spotonsoft.com

Mobile Developer Conference by

MoMoBhttp://momob.in

Questions?