45
Going Mobile By Nate Beck

Going Mobile by Nate Beck

Embed Size (px)

DESCRIPTION

Nate Beck covers some of the hurdles and headaches that Flash game developers encounter when they decide to take their games to mobile devices.

Citation preview

Page 1: Going Mobile by Nate Beck

Going MobileBy Nate Beck

Page 2: Going Mobile by Nate Beck

ADL, PFI... WTF?ADL - AIR Debug Launcher - Using ADL, you can run an application without first packaging and installing it.

ADT - AIR Developer Tool - ADT is a multi-purpose, command-line tool for developing AIR applications.

PFI - Packager For iPhone - Completely replaced by ADT.iOS - The OS for iPads, iPod Touch and iPhones

Page 3: Going Mobile by Nate Beck

The Markets... that support Adobe Flash

Page 4: Going Mobile by Nate Beck

$99 / year $25

$99 / year ¹ $0 $0

30% 30% 30% 30% 30%

5 1 3 2 11

~570,000

~395,000 ~30,400 ~3,030 ~4,000

Membership Fee

Revenue Split

Overall Difficulty 1(easy) to 10

(hard)Number of Apps

¹ At the moment, first year is freeSource - Apple App Store - http://148apps.biz/app-store-metrics/Source - Android Market - http://www.appbrain.com/stats/

Page 5: Going Mobile by Nate Beck

Case Study – Word Wars

Page 6: Going Mobile by Nate Beck
Page 7: Going Mobile by Nate Beck
Page 8: Going Mobile by Nate Beck
Page 9: Going Mobile by Nate Beck
Page 10: Going Mobile by Nate Beck
Page 11: Going Mobile by Nate Beck

Build Process

ADTExecutable

Assets BAR

IPA

APK

Page 12: Going Mobile by Nate Beck

Application DescriptorId

Version NumberRender ModeAuto OrientationAspect RatioFull ScreenOnscreen Keyboard BehaviorIcons PathsDevice ProfilePermissionsiPhone Settings

Page 13: Going Mobile by Nate Beck

DEVICES SUCK

Page 14: Going Mobile by Nate Beck

Your finger is not transparent

THIS NOT THIS

Page 15: Going Mobile by Nate Beck

Devices do not have roll over or

roll out

Page 16: Going Mobile by Nate Beck

TouchEvents are different than MouseEvents flash.ui.Multitouchflash.ui.MultitouchInputMode

Page 17: Going Mobile by Nate Beck

Let’s not forget about gestures

flash.events.TransformGestureEvent

Page 18: Going Mobile by Nate Beck

Use Enter Framenot Mouse Move

Page 19: Going Mobile by Nate Beck

Screen Density!=

Screen Resolution

Page 20: Going Mobile by Nate Beck

150 x 40 pixel button

Desktop monitor@100 dpi

= 1.5” x 0.4”

Galaxy Tab@160 dpi

= 0.9” x 0.25”

Droid 2@240 dpi

= 0.6” x 0.17”

iPhone 4@320 dpi

= 0.46” x 0.13”

Same pixel count, different physical sizes(Minimum recommended size: 0.25” x 0.25”)

Screen Density != Screen Resolution

Page 21: Going Mobile by Nate Beck

3.5 inch diagonal screen

Same physical size, different pixel counts

Screen Density != Screen Resolution

Page 22: Going Mobile by Nate Beck

Classification

160 DPI

Devices Most tabletsiPhone 3GS

Motorola Droid Pro

Mapped range

< 200 DPI

Typical range 132 DPI (iPad)to

181 DPI (HTC Hero)

240 DPI

Most Android phones

>= 200 DPI<= 280 DPI

217 DPI (HTC Evo)to

254 DPI (NexusOne)

320 DPI

iPhone 4

> 280 DPI

326 DPI (iPhone 4)

Screen Density != Screen Resolution

Page 23: Going Mobile by Nate Beck

Devices have differing aspect ratios

Page 24: Going Mobile by Nate Beck

Some devices have additional

stuff...

Page 25: Going Mobile by Nate Beck

Capabilitiesflash.system.Capabilitie

s

Page 26: Going Mobile by Nate Beck

Devices have orientations

StageOrientationEvent.ORIENTATION_CHANGINGstage.setOrientation( StageOrientation.UPSIDE_DO

WN );

Page 27: Going Mobile by Nate Beck

AccelerometersGet your tilt on.

Page 28: Going Mobile by Nate Beck

Emulators

Page 29: Going Mobile by Nate Beck

Testing on the Device

!FAIL

WiFi Debug OnlyLong Build TimesMobile Provisions

Certificates

WiFi and USB DebugFaster Build Times

WiFi Debug OnlyDebug Tokens

Signing

Page 30: Going Mobile by Nate Beck

Full Screen

Page 31: Going Mobile by Nate Beck

Permissions(Android / Playbook)

android.permission.INTERNETandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.READ_PHONE_STATEandroid.permission.ACCESS_FINE_LOCATIONandroid.permission.DISABLE_KEYGUARDandroid.permission.WAKE_LOCKandroid.permission.CAMERAandroid.permission.RECORD_AUDIOandroid.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATE

Page 32: Going Mobile by Nate Beck

CPU vs GPU

CPU - blittingiOS - 20 FPS

Droid - 24 FPS

GPU - DisplayObjectiOS - 34 FPS

Droid - 32 FPS

Page 33: Going Mobile by Nate Beck

Playbook is wicked fast

Page 34: Going Mobile by Nate Beck

Molehill, Stage3D?“Stage3D for mobile is planned for middle of next year,

but we are working hard on it to make it more like beginning of next year”

- Thibault Imbert, Flash Player Product ManagerOctober 31, 2011

Page 35: Going Mobile by Nate Beck

“Adobe AIR 3.2 release candidate is now available for download. This build introduces the Stage3D API to iOS and Android devices, enabling full hardware accelerated 2D and

3D graphics for mobile apps.”- Adobe Labs, compliments of Thibault

February 27, 2012

Page 36: Going Mobile by Nate Beck

Hugs For Thibault

Page 37: Going Mobile by Nate Beck

Use a Framework

Page 38: Going Mobile by Nate Beck

ANT is your friend(or maven if you’re a cool

kid)

Page 39: Going Mobile by Nate Beck

Build servers are awesome

+

Page 40: Going Mobile by Nate Beck

Hosting your build servers

Page 41: Going Mobile by Nate Beck

Your game can (and will) be interrupted,

at any timestage.addEventListener(Event.DEACTIVATE, onDeactivate);

stage.addEventListener(Event.ACTIVATE, onActive);

Page 42: Going Mobile by Nate Beck

Piracy can be a problem

Page 43: Going Mobile by Nate Beck

Please use Version Control... please

Page 44: Going Mobile by Nate Beck

Questions?

Page 45: Going Mobile by Nate Beck

Nate BeckPrincipal Architect

@[email protected]

Thanks!

blog.natebeck.net