260 likes | 428 Views
Digital Chocolate Java: write once, run everywhere – or how did it go again?. December 2005 Valtteri Pirttilä, Technology Team Leader Digital Chocolate Ltd. Outline. Introduction Challenges Architecture Code. Digital Chocolate in Brief.
E N D
Digital Chocolate Java: write once, run everywhere – or how did it go again? December 2005 Valtteri Pirttilä, Technology Team Leader Digital Chocolate Ltd.
Outline • Introduction • Challenges • Architecture • Code
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
Global Distribution Total 200 partners in 60 countries
Our strategy • 100% focused on mobile • Invest in product quality, not in property licenses • Cornerstones of product strategy • Community • Quality • Innovation
GameSpot Top 5 Rated GameSpot Top Rated 2005 Source: GameSpot, Oct 2005, last 3 month Source: GameSpot, as of Oct 2005 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
Outline • Introduction • Challenges • Architecture • Code
Challenges in a Nutshell Challenges are not just technical, but also organizational !!
10+ different screen resolutions ranging from 96x65 to 240x320 (pixels) Mostly active matrix, some old ones have passive matrices Screen Sizes NOTE: Screenshots from ”Mafia Wars”, QVGA version created by scaling QVGA (240x320) Small (96x65) Medium (128x128) Large (176x208)
Processing Power • Fastest CPU over 45 times more powerful than the slowest • Screen size grows faster than CPU power Power-Per-Pixel currently reducing
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 Established markets Emerging markets Nokia 6100 Device Capabilities Time
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 330 17x17 background tiles 144 character animation frames 61 effect and image frames Alpha transparency used Mist effects AND This is without QVGA !! Example Case:Fantasy Warrior 2: Good 5 x more work !!
The Porting & QA Nightmare Develop one game Port to 100 handsets Localize to 5 Languages Build portfolio of 20 titles
Outline • Introduction • Challenges • Architecture • Code
Toolkit - Application Framework Game Toolkit Localization APIs Device Characteristics Channel Requirements
Game’s Sheet Generic Sheet Other sheets e.g. Hiscore API, Bluetooth API Localization Game Localization Module • One access point through which all text is used • Supports Multi-Language builds • Supports component structure of framework
1 SKU Multi-Language & Multi-Handset Builds • 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
BT #3 HS #3 BT #2 HS #2 BT HS BT #1 HS #1 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, ... Sounds MIDI #3 MIDI #2 SPF OTT MIDI #1
Outline • Introduction • Challenges • Architecture • Code
Why? • The Statics are generated before compiling • Obfuscator drops unused code blocks, including methods and classes • High amount of configurations with a small jar
Digital ChocolateSeize The Minute.™ Digital Chocolate LtdItämerenkatu 5, FI-00180 Helsinki, FinlandFax +358 9 676 301 ▪