1 Digital Chocolate Java: write once, run everywhere – or how did it go again? December 2005 Valtteri Pirttilä, Technology Team Leader Digital Chocolate Ltd.
2 Outline 1)Introduction 2)Challenges 3)Architecture 4)Code
3 Digital Chocolate in Brief Publisher of downloadable mobile games and non-gaming lifestyle applications Founder and CEO Trip Hawkins, former CEO and Chairman of Electronic Arts Currently ~90 employees in Helsinki, Finland and ~60 in San Mateo, California Acquired leading European games publisher Sumea in June 2004
4 Global Distribution Total 200 partners in 60 countries
5 Our strategy 100% focused on mobile Invest in product quality, not in property licenses Cornerstones of product strategy –Community –Quality –Innovation
6 Our Investment in Quality and Innovation Has Paid Off...
7 World’s #1 Reviewed Publisher Only Publisher, worldwide, with 2 of Top 5 Reviewed Games on GameSpot (2/5 = 40%) Only Publisher, worldwide, with 3 titles to earn 8 (out of 10) or better on GameSpot (3/12 = 25%) Highest reviewed among all worldwide Publishers for last 5 titles released Less than 10% of 2005 GS 500+ reviewed games will earn >8 Less than 1% of 2005 GS 500+ reviewed games will earn >9 Source: GameSpot, Oct 2005, last 3 month GameSpot Top 5 Rated Source: GameSpot, as of Oct 2005 GameSpot Top Rated 2005
8 Outline 1)Introduction 2)Challenges 3)Architecture 4)Code
9 Challenges in a Nutshell Challenges are not just technical, but also organizational !!
10 Screen Sizes Small (96x65) Large (176x208) Medium (128x128) QVGA (240x320) NOTE: Screenshots from ”Mafia Wars”, QVGA version created by scaling 10+ different screen resolutions ranging from 96x65 to 240x320 (pixels) Mostly active matrix, some old ones have passive matrices
11 Processing Power Fastest CPU over 45 times more powerful than the slowest Screen size grows faster than CPU power Power-Per-Pixel currently reducing
12 Handset Range There are 300+ Java-enabled handsets High End developing faster than low end Handset range is growing To over-emphasize the point –Low end generates revenues –High end generates publicity 100% device support is a MUST Emerging markets Established markets Time Device Capabilities Nokia 6100
13 Example Case: Fantasy Warrior 2: Good Low-End Version ~8.5kB of graphics 36 10x10 background tiles 38 character animation frames 32 item and effect frames High-End Version ~120kB of graphics x17 background tiles 144 character animation frames 61 effect and image frames Alpha transparency used Mist effects 5 x more work !! AND This is without QVGA !!
14 The Porting & QA Nightmare Develop one game Port to 100 handsets Localize to 5 Languages Build portfolio of 20 titles
15 Outline 1)Introduction 2)Challenges 3)Architecture 4)Code
16 Toolkit - Application Framework APIs Toolkit Game Device CharacteristicsChannel RequirementsLocalization
17 Localization Game’s Sheet Generic Sheet Other sheets e.g. Hiscore API, Bluetooth API One access point through which all text is used Supports Multi-Language builds Supports component structure of framework Game Localization Module
18 Multi-Language & Multi-Handset Builds 1 SKU EFIGS as standard in one SKU –Except in 64k devices Example: 5 Languages & 4 Handsets –BEFORE: 20 SKUs –NOW: 1 SKU Actual Numbers from average game –BEFORE: 210 SKUs –NOW: Support 160+ devices with 60 SKUs
19 Supporting APIs Example: Sounds –MIDI sounds One API implementations not working in exactly the same way e.g. Looping, Pre-Loading, Re-Starting,... One standard API has to be used differently –Other sounds formats: OTT, SPF, AMR,... Same challenge with other APIs –e.g. Bluetooth, High Score / Community, Billing,... SPFOTT MIDI #3 MIDI #2 MIDI #1 BT #3 BT #2 BT #1 BT Sounds HS #3 HS #2 HS #1 HS
20 Outline 1)Introduction 2)Challenges 3)Architecture 4)Code
21 Device Abstraction example:
22 In code:
23 Why? The Statics are generated before compiling Obfuscator drops unused code blocks, including methods and classes High amount of configurations with a small jar
24 Localization
25 Digital Chocolate Seize The Minute. ™ Digital Chocolate Ltd Itämerenkatu 5, FI Helsinki, Finland Fax ▪