Mdc2010 Casual Game Dev
-
Upload
momobangalore -
Category
Documents
-
view
756 -
download
0
description
Transcript of Mdc2010 Casual Game Dev
Casual Games on Mobile
Mukul Joshi, Director & CEO
SpotOn Software Pvt. Ltd
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.
Mobile Developer Conference by
MoMoBhttp://momob.in
Questions?