Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mdc2010 Casual Game Dev


Published on

  • Be the first to comment

Mdc2010 Casual Game Dev

  1. 1. Casual Games on Mobile Mukul Joshi, Director & CEO SpotOn Software Pvt. Ltd [email_address]
  2. 2. Roadmap <ul><li>Why the topic? </li></ul><ul><li>Glimpses of mobile game world </li></ul><ul><li>Before you begin the game development </li></ul><ul><li>Mobile game development </li></ul><ul><li>Commercialization </li></ul><ul><li>Road ahead </li></ul><ul><li>Q & A </li></ul>
  3. 3. Why the topic? What are casual games really? Why the topic in devcon? What do analysts say?
  4. 4. What makes a game casual? Who is a casual gamer and who is a hard-core gamer? Lets have a pop up quiz
  5. 5. What makes a game casual? <ul><li>Targeted at Mass audience </li></ul><ul><li>Can fit in any genre (puzzle, card, board etc.) </li></ul><ul><li>Requires no special skills to play </li></ul><ul><ul><li>Simple gameplay </li></ul></ul><ul><ul><li>Ability to quickly reach final stage </li></ul></ul><ul><li>Requires no long term commitment to play </li></ul><ul><ul><li>Allowing game play in short bursts </li></ul></ul><ul><li>Typical user is older, high female population </li></ul>
  6. 6. Why have them on mobile? <ul><li>Targeted at Mass audience </li></ul><ul><li>Can fit in any genre (puzzle, card, board etc.) </li></ul><ul><li>Require no special skills to play </li></ul><ul><ul><li>Simple gameplay </li></ul></ul><ul><ul><li>Ability to quickly reach final stage </li></ul></ul><ul><li>Require no long term commitment to play </li></ul><ul><ul><li>Allowing game play in short bursts </li></ul></ul><ul><li>Typical user is older, high female population </li></ul>
  7. 7. Lets talk about India <ul><li>Indian Mobile gaming market is growing in excess of 200% for the next two years; expected to reach $450 Million in 2012 Source: </li></ul><ul><li>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 </li></ul><ul><ul><li>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 </li></ul></ul><ul><li>The choice of game selection differs with the age-group and gender </li></ul><ul><ul><li>18-30 aged youths account for the higher-than average time spent on games </li></ul></ul><ul><li>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 </li></ul><ul><li>Huge window of opportunity for the VAS providers with the entertainment hungry Indian youth willing to explore the world of mobiles and mobile internet </li></ul><ul><li>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 </li></ul>
  8. 8. Mobile games is a hot market <ul><li>Not just in India but World-Wide </li></ul><ul><li>iPhone has made it even bigger </li></ul><ul><li>Most of you are developers </li></ul><ul><ul><li>Launch your products </li></ul></ul><ul><ul><li>Work for your services customers </li></ul></ul><ul><li>Likely that you will come across this VAS segment </li></ul><ul><li>Hence we are here </li></ul>
  9. 9. Lets look at a few of them Categories/Types Differentiators Challenges
  10. 10. Single player games Snake – Nokia 1997 Bubble breaker Win mobile Puzzle Bobble Taito Corp Bejewelled Accelerometer game Card game
  11. 11. Important categories <ul><li>Text based games (Bot fighter) </li></ul><ul><li>Location based (Treasure hunt) </li></ul><ul><li>Multiplayer </li></ul><ul><li>Social </li></ul><ul><li>You need to understand the challenges with the nature of the game </li></ul>
  12. 12. Multiplayer gaming challenges <ul><li>Where and when people play? </li></ul><ul><ul><li>There is plenty of idle time while travelling </li></ul></ul><ul><ul><li>Are the places or the time slots suitable for gaming </li></ul></ul><ul><li>Interrupts in playing </li></ul><ul><ul><li>Phone calls, messaging </li></ul></ul><ul><ul><li>Flat battery </li></ul></ul><ul><ul><li>Non-tech interrupts (bus coming etc.) </li></ul></ul><ul><li>Communication </li></ul><ul><ul><li>Mobile networks </li></ul></ul><ul><ul><ul><li>Price </li></ul></ul></ul><ul><ul><ul><li>Latency </li></ul></ul></ul><ul><ul><li>Local radio (WiFi, Bluetooth) </li></ul></ul><ul><li>Social pressure </li></ul><ul><ul><li>The average age of gamers is rising </li></ul></ul><ul><ul><li>Now within 10 –35 years range in general </li></ul></ul><ul><ul><li>Is gaming yet socially accepted? </li></ul></ul>
  13. 13. Before you begin Game design Choice of platform Testing plans
  14. 14. Good design is the key <ul><li>Good games require good design </li></ul><ul><li>Profitable gaming projects require good design </li></ul><ul><ul><li>Even if those are services projects </li></ul></ul><ul><ul><li>Especially fixed bid </li></ul></ul><ul><li>Lets take an example of iPhone game </li></ul>
  15. 15. Game design
  16. 16. Understand the roles <ul><li>Creative </li></ul><ul><ul><li>Pattern </li></ul></ul><ul><ul><li>Story board </li></ul></ul><ul><ul><li>Characters </li></ul></ul><ul><ul><li>Difficulty </li></ul></ul><ul><ul><li>Scoring </li></ul></ul><ul><ul><li>Excitement factors </li></ul></ul><ul><li>Designer </li></ul><ul><ul><li>Effects </li></ul></ul><ul><ul><li>Graphics </li></ul></ul><ul><li>Developers </li></ul><ul><ul><li>Understand </li></ul></ul><ul><ul><li>Implement </li></ul></ul><ul><ul><li>Unit test </li></ul></ul><ul><li>Testers </li></ul><ul><ul><li>Many a times the designers </li></ul></ul>
  17. 17. Your own game (product) <ul><li>Understand the roles </li></ul><ul><li>Identify them </li></ul><ul><li>Put appropriate boundaries </li></ul><ul><ul><li>Developer in you has the least of say </li></ul></ul><ul><li>Do not hurry to start development </li></ul>
  18. 18. For services customer <ul><li>Make sure you have “sufficient” information </li></ul><ul><li>Understand you can be profitable when you </li></ul><ul><ul><li>Deliver in time </li></ul></ul><ul><ul><li>With expected quality of output </li></ul></ul><ul><li>Goal – Reduce the time to be spent in </li></ul><ul><ul><li>Communication gaps </li></ul></ul><ul><ul><li>Re-development </li></ul></ul><ul><ul><li>Test – Design – Development iterations </li></ul></ul><ul><ul><li>Device/Platform issues </li></ul></ul>
  19. 19. Issues!
  20. 20. Issues contd <ul><li>Main processor </li></ul><ul><ul><li>Each phone has it’s own processing power </li></ul></ul><ul><ul><ul><li>Many don’t have floating point support </li></ul></ul></ul><ul><li>Graphics processor </li></ul><ul><ul><li>Each phone has its own graphics capabilities </li></ul></ul><ul><ul><ul><li>Some can do fast 3D </li></ul></ul></ul><ul><ul><ul><li>Some can do fast 2D but can’t handle 3D </li></ul></ul></ul><ul><ul><ul><li>Some can barely handle 2D </li></ul></ul></ul><ul><ul><ul><li>Alpha channel can be a major bottleneck </li></ul></ul></ul>
  21. 21. Issues contd <ul><li>Memory </li></ul><ul><ul><li>Again, each phone has its own </li></ul></ul><ul><ul><ul><li>Application sizes from 32KB to several MB </li></ul></ul></ul><ul><ul><ul><li>Heap sizes from 200KB to several MB </li></ul></ul></ul><ul><ul><ul><li>Almost all combinations exist </li></ul></ul></ul><ul><li>Audio and video capabilities </li></ul><ul><ul><li>Each phone supports only a range of formats </li></ul></ul><ul><ul><ul><li>Some do support all of them </li></ul></ul></ul><ul><ul><ul><li>The majority does not </li></ul></ul></ul>
  22. 22. Issues contd <ul><li>Network capabilities </li></ul><ul><ul><li>Various limitations </li></ul></ul><ul><ul><ul><li>Forget about IR </li></ul></ul></ul><ul><ul><ul><li>Bluetooth can be a pain to support and is highly </li></ul></ul></ul><ul><ul><ul><li>Unstable when there are “too many” clients </li></ul></ul></ul><ul><ul><ul><li>Internet connection is usually slow </li></ul></ul></ul><ul><li>Keyboard </li></ul><ul><ul><li>Not all phones support multiple key press </li></ul></ul><ul><ul><li>It’s a cumbersome interface </li></ul></ul>
  23. 23. Issues contd <ul><li>Display </li></ul><ul><ul><li>Holy crap, too many variations </li></ul></ul><ul><ul><ul><li>“My screen is bigger than yours!” </li></ul></ul></ul><ul><ul><ul><li>“What color is that?” </li></ul></ul></ul><ul><ul><li>You usually have to support them all </li></ul></ul>
  24. 24. Lets get scared
  25. 25. Hats off to 25000 Different builds for “Transformers” mobile game On average mobile developers are creating 400 builds Google maps targeted 10 platforms, created 100 different builds & my boss wanted it yesterday
  26. 27. Being a master Understand the gravity Learn the basics well
  27. 28. Handling different screen sizes <ul><li>Crude way - one build </li></ul><ul><li>One build doesn't work for rich games/applications </li></ul><ul><li>Backgrounds - paint in code or tile </li></ul><ul><li>Vector images - too heavy </li></ul><ul><li>Compute item positions from screen real-estate </li></ul><ul><li>Don't do overdetailing </li></ul><ul><li>And there is aspect-ratio to be considered as well </li></ul>
  28. 29. Handling keyboard differences <ul><li>Avoid using keys other than LEFT, RIGHT, UP, DOWN and FIRE </li></ul><ul><li>Support touch </li></ul><ul><li>Handle qwerty </li></ul><ul><li>Add a virtual mouse </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Also, it looks ultra cool and familiar to computer users. </li></ul></ul><ul><li>Don't rely on soft-keys </li></ul>
  29. 30. Externalizing parameters <ul><li>Basic I18N: Externalize strings (all messages) </li></ul><ul><li>Implement intelligent device detection </li></ul><ul><ul><li>Devices specific tweaks and adjustments can be stored in a config file and loaded depending on the device </li></ul></ul><ul><li>OTA configurable parameters (server addresses etc) </li></ul><ul><li>Code must NOT contain other numbers than -1, 0, 1 or 2 </li></ul><ul><li>Give a build to test early </li></ul><ul><ul><li>Everything should be externalized for the designer to test </li></ul></ul>
  30. 31. Double buffering <ul><li>Not suppported by all phones </li></ul><ul><ul><li>At times the implementations, internally, kill the very purpose of double buffering by flushing it instantly to real screen. </li></ul></ul><ul><li>Create custom buffer </li></ul><ul><ul><li>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 </li></ul></ul><ul><li>Support sprites (if not supported by platform) </li></ul><ul><ul><li>Goggle : Bitblt </li></ul></ul><ul><li>Add compositing </li></ul><ul><ul><li>What if you wanted to show popups? and Also mouse cursor? </li></ul></ul><ul><ul><li>You can have several offscreen buffers multiplexed to create layers with z-ordering. </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  31. 32. Handling animations & sprites <ul><li>Prefetch </li></ul><ul><ul><li>Prefetching removes any delays caused by the file format decoders and I/O </li></ul></ul><ul><li>No memory management operations in game loop </li></ul><ul><ul><li>Don't malloc() or free() inside game loop. Yes even free() can cause problems. </li></ul></ul><ul><li>Frequent malloc() will bog down the game </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Advice: If possible, malloc() all the required memory once, that is, when the game starts. </li></ul></ul><ul><li>Use weak references with garbage collector. </li></ul><ul><ul><li>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. </li></ul></ul><ul><li>Reuse sprites. Use object pooling! </li></ul><ul><li>Double buffering very imp for Animation </li></ul><ul><li>Keep animation thread separate from game loop. </li></ul>
  32. 33. Sound <ul><li>Prefetch </li></ul><ul><li>Combine to save file format header space </li></ul><ul><ul><li>Use position offsets to seek and play appropriate piece in a combined file. (Applies to images as well) </li></ul></ul><ul><ul><li>Stick to basic formats (if targeting gazillion devices) </li></ul></ul><ul><ul><ul><li>PCM (Wave), Au work on most of the phones </li></ul></ul></ul><ul><ul><li>Provide a way for users to adjust volume </li></ul></ul><ul><ul><ul><li>Not all phones will have direct volume adjustment keys </li></ul></ul></ul>
  33. 34. Know the frameworks <ul><li>Cocos2d </li></ul><ul><li>Chipmunk </li></ul><ul><li>Unity </li></ul><ul><li>Oolong </li></ul>
  34. 35. Commercialization
  35. 36. iPhone story <ul><li>How much can a developer make? </li></ul><ul><ul><li>Perhaps very little. First 30 days on Apple App Store is crucial. </li></ul></ul><ul><ul><li>Or, a lot. After 10 days, #1 iFart was making $35K per day </li></ul></ul><ul><ul><li>But, only 10% of apps are still in use after 3 months; not sticky </li></ul></ul><ul><ul><li>Avg. cost per app is $2.64 (based on top 100 apps); price elastic! </li></ul></ul><ul><ul><li>Other business models: freemium, advertising (ugh), % transaction </li></ul></ul><ul><ul><li>Problem is discoverability ... getting lost in the 25,000 apps </li></ul></ul>
  36. 37. 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
  37. 38. Conclusion
  38. 39. Thank You Mukul Joshi Director & CEO SpotOn Software Pvt. Ltd. [email_address] Mobile Developer Conference by MoMoB
  39. 40. Questions?