Yes, it is a Mobile World

baldknobdasypygalSoftware and s/w Development

Jul 4, 2012 (5 years and 1 month ago)

349 views

Yes,itisaMobileWorldYes,itisaMobileWorld
Yes,
 
it
?
is
?
a
?
Mobile
?
WorldYes,
?
it
?
is
?
a
?
Mobile
?
World
This photo was NOT photo‐shopped. It is an actual images of old recycled 90’s devices.
Some “Boston‐ianLingo”Some “Boston‐ianLingo”
1CLAM

CHOW

䑁HH
”
1䍌䅍
“
䍈CW

䑁HH
”
1

CLAM
?
CHOW
?r
DAHH
1

CLAM
?
CHOW
?r
DAHH
2. DOOR‐CHEST‐AHHH2. DOOR‐CHEST‐AHHH
3. P‐ahh‐kthe K‐ahhon the T‐ahh3. P‐ahh‐kthe K‐ahhon the T‐ahh
The Art and Zen of Mobile
GameCreationwithFlash
The Art and Zen of Mobile
GameCreationwithFlash
Game

Creation

with

FlashGame

Creation

with

Flash
ScottJanousek,
TechnicalDirector
Scott
 
Janousek,
?
Technical
 
Director
www.hookenmobile.com
fitc2007@hookenmobilecom
fitc2007@hookenmobile
.
com
AboutMeAboutMe
About
 
MeAbout
?
Me
GENERAL INFO
FBtMhttUSA

F
rom 
B
os
t
on, 
M
assac
h
use
tt
s, 
USA
–Working with desktop Flash for six years

Designer&Developer
Designer
 
&
?
Developer
–3+ year old blog (time for a new one!)
MOBILE
MOBILE
–Working with Flash Lite 1.1 and 2.x

Flash Lite 1.1/2.
x
Training Instructor
–Coauthor:
“Foundation Flash Applications for Mobile Devices” 
–Mobile Gaming Enthusiast


Flash Lite Design, Development, Training, Consulting
MobileGamesPortfolioMobileGamesPortfolio
Mobile
 
Games
?
PortfolioMobile
?
Games
?
Portfolio

FlashLite11and2
x
Flash
 
Lite
?
1
.
1
 
and
?
2
.
x
•Distribution:
Workingdirectlywith3
rd
partymobilegamecompanies

Working
 
directly
?
with
?
3
rd
party
?
mobile
?
game
?
companies
–Flash Lite Exchange

Moreproductsin2007

More
 
products
?
in
?
2007
–Don’t Wake the Dragon, MORE!
Symbian Series  60 content iRiver Clix game
viliv p1 Sudoku game
Mbil
G
Mbil
G
M
o
bil

G
ames
M
o
bil

G
ames

Worldwiderevenueformobilegaming
Worldwide
 
revenue
?
for
?
mobile
?
gaming
?
subscriptions could increase from $3 billion 
to $10.5 billion in 2009 “–Juniper Research 
Ltd
Ltd
.
MobileGameMarketsMobileGameMarkets
Mobile
 
Game
?
MarketsMobile
?
Game
?
Markets
“Power”
“Casual”
–Power Gamers
–High Learning Curve

Fun, Addictive
–No learning curve

More Expensive
–Guilt in not finishing
–Inexpensive
–No guilt

More time 
investment

Less time investment
MobileGameGenresMobileGameGenres
Mobile
 
Game
?
GenresMobile
?
Game
?
Genres
•Arcade/Action
SnakeBomberAlien
•Multiplayer
MarioKartTexas
Hold

em

Snake

Bomber

Alien
?
Invasion …
•Role playing games (RPG)

Mario
 
Kart

Texas
?
Holdem
•2‐D, 3‐D Racers

Tron,MarioKart
–Final Fantasy, etc.
•Sports
Tron,
 
Mario
?
Kart
•Card and board games
–Slots, Blackjack, Monopoly

EA SPORTS™ Madden 07 
•Skill, Strategy, Logic
MiSSdk
•First Person Shooters 
–Quake, Doom …

Mi
ne 
S
weeper, 
S
u
d
o
k
u
Above:  these just happen to be Flash Lite games that fit some of the genres …
Mobile Game Mobile Game 
Designwith FlashDesignwith Flash
“Casual Games make most use of the inherent advantages of the 
mobile platform. People want to fill ‘dead time’ with easy to use, but  
fungames


BruceGibsonResearchDirectorwithJuniperResearch
fun
 
games
?
Bruce
 
Gibson

Research
?
Director
?
with
?
Juniper
?
Research
.
MobileGameChallengesMobileGameChallenges
Mobile
 
Game
?
ChallengesMobile
?
Game
?
Challenges

SmallerScreenSizes

UserInput

Smaller
?
Screen
?
Sizes
•Color Depths

User
 
Input
•Walled Gardens
•Limited Memory

LimitedProcessor
•Portability

LearningPlatforms

Limited
 
Processor
•File Size

Learning
 
Platforms
•Fragmentation
•Battery Life
•… many more!

HolyGrail
”=
W.O.R.A.

HolyGrail
”=
W.O.R.A.
Holy
 
Grail
??
W.O.R.A.
?
Holy
?
Grail
??
W.O.R.A.
?

W
rite Once Run 
A
nywhere
•Nice idea for mobile, but …

Lotsofdevicesdifferentcapabilitiesimplementationsetc
Lots
 
of
?
devices

different
?
capabilities

implementations

etc
•Fragmentation is “fact of life”
NtiJ2MEt

N
a
ti
ve, 
J2ME
, e
t
c
–Flash Lite is NOTimmune, but much LESS affected
Handsets
HandsetsPDAsPDAs“Consumer Electronics”“Consumer Electronics”
Platform Decisions for Platform Decisions for 
Mobile Games …Mobile Games …
FlashLitePlayers
*
FlashLitePlayers
*
Flash
 
Lite
?
Players
??
Flash
?
Lite
?
Players
??
* From Boston? Say “Play‐ahs” 

Flash Lite Game Life CycleFlash Lite Game Life Cycle
DESIGN GAMEDESIGN GAME
DESIGN GAMEDESIGN GAME
DEVELOPGAMEDEVELOPGAME
DEVELOPGAMEDEVELOPGAME
Idea/Concept
DEVELOP
 
GAMEDEVELOP
?
GAME
DEVELOP
?
GAMEDEVELOP
?
GAME
TEST GAMETEST GAME
TEST GAMETEST GAME
Other 
p
lat
f
orms …S
y
mbian Series 60
DEPLOY                   DEPLOY                   
DEPLOY                   DEPLOY                   
DISTRIBUTION
DISTRIBUTION
DISTRIBUTION
DISTRIBUTION
DEPLOY DEPLOY OTHER
OTHER
PLATFORMS
PLATFORMS
OtAt
pf
y
PLATFORMS
PLATFORMS
O
pera
t
ors, 
A
ggrega
t
ors
& Content Providers
.sis packaging
MobileGameMobileGame
Mobile
 
Game
?
Development
withFlash
Mobile
?
Game
?
Development
withFlash
Development
with
?
Flash
Development
with
?
Flash
“The Flash Lite Platform offers one of the best environments 
forrapidmobilegamedevelopmentforcasualtypecontent
for
?
rapid
?
mobile
?
game
?
development
?
for
?
casual
?
type
?
content
?
found  today.” ‐Me
Flash Lite 1.1 vs. 2.x Flash Lite 1.1 vs. 2.x 
Coding ParadigmsCoding Paradigms
FL 2.x ‐Class Based

Penetration=Lower
FL 1.1 ‐Timeline Driven

Penetration=Higher

Penetration
 
=
?
Lower
•ActionScript 2.0

Penetration
 
=
?
Higher
•“ActionScript 0.5”

Code Reuse
–Modularity
Maintenance

Code Reuse

Modularity
Maintainance

Maintenance
–Extensibility

Lesstimetolearn

Maintainance

Extensibility

Lesstimetolearn
Less
 
time
?
to
?
learn
–Larger project content
Less
 
time
?
to
?
learn
–Smaller project content
FlashLite1.1SyntaxRefresherFlashLite1.1SyntaxRefresher
Flash
 
Lite
?
1.1
?
Syntax
?
RefresherFlash
?
Lite
?
1.1
?
Syntax
?
Refresher
•tellTarget()
–tellTarget( /player_mc/ ) { /:x =+ 1; }

movie cli
p
s can act as libraries 
(
“function cli
p
s”
)
p(p)
•eval()
SiltPdAiibldl

Si
mu
l
a
t

P
seu
d

A
rrays us
i
ng var
i
a
bl
es an
d
 eva
l
–x1 = 23; eval( “x” add i);
•Game state Frame Labels
(menu, gameplay, etc)

More...
More
 
...
–My Flash Lite 1.1 “Reference Sheet” (PDF)
DeviceKeys/TextInputDeviceKeys/TextInput
Device
 
Keys/Text
?
InputDevice
?
Keys/Text
?
Input
•Tar
g
et devices o
f
tenvar
y
g
f
y
•Keys: 0,1,2,3,4,5,6,7,8, #, *
•Soft Ke
y
s
y
–TypicallyLEFT, RIGHT
–FL 2.x supports multiple 
softkeys
softkeys
•Text Input

FL 1.1 
uses
?
de
vi
ce
 f
o
r in
put
usesdeceoput
–FL 2.x built in text input (T9)
•5 Way Direction Joystick
–UP, DOWN, LEFT, RIGHT, 
SELECT
KeysinFlashLite1.1KeysinFlashLite1.1
Keys
 
in
?
Flash
?
Lite
?
1.1Keys
?
in
?
Flash
?
Lite
?
1.1
•Flash 4 style syntax
•“Key Catchers”

buttonoffStagewithActionScript
button
 
off
?
Stage
?
with
?
ActionScript
on( keyPress “<UP>” ) { /player_mc/:y += 1; } 

SoftKeys
Soft
 
Keys
–Typically 2 or more
retVal=fscommand2(

setSoftKeys
”“
left
”“
right

);
retVal
 
=
?
fscommand2(
?
setSoftKeys

left

right
?
);
on( keyPress “<PAGEUP>” ) { //‐‐do xyz }
EXAMPLE
KeysinFlashLite2.
x
KeysinFlashLite2.
x
Keys
 
in
?
Flash
?
Lite
?
2.
x
Keys
?
in
?
Flash
?
Lite
?
2.
x
//‐‐method #2 –Key Listener 
bjObjt
Objt()
//‐‐method #2 –keyDownevent
lKD
fti(){
move_o
bj
:
Obj
ec
t
= new 
Obj
ec
t()
;
move_obj.onKeyDown= function() {
switch (Key.getCode()) {
pl
ayer_mc.on
K
ey
D
own= 
f
unc
ti
on
()
 
{
?
switch (Key.getCode()) {
case Key.UP :
thisy
+=1;
case Key.UP :
player_mc._y+= 1;
break;
}
this
._
y
+=
 
1;
?
break;
}
}
}
}
Key.addListener( move_obj);
}
}
Key.addListener( player_mc);
//‐‐method #3 ‐onEnterFrame and isDown()
move_mc.onEnterFrame= function() {
if(i()){
l
}
EXAMPLE
if
 
(
Key.
i
sDown
(
Key.UP
))
 
{
?
pl
ayer_mc._
y
+= 1; 
}
}
EXAMPLE
neButtonCasualGamesneButtonCasualGames
ne
 
Button
?
Casual
?
Gamesne
?
Button
?
Casual
?
Games
•Focus
it
ldhi
5 Min Sample

user 
i
npu
t

game p
l
ay an
d
 grap
hi
cs
•Should be veryresponsive
SthAiti

S
moo
th
 
A
n
i
ma
ti
ons
–Immediate Actions

GameChallenge

Game
 
Challenge
–Better to have many stages/levels

Timing
+
Rhythm
+
Reaction
=
GAMEEXPERIENCE
Timing
  
Rhythm
??
Reaction
??
GAME
?
EXPERIENCE
•Key Lag

Betweendeviceplatforms
Between
 
device
?
platforms
–Tweak timing calculations (if needed)
CollisionDetectionCollisionDetection
Collision
 
DetectionCollision
?
Detection
FLASHLITE1.1
FLASHLITE2.
x
FLASH
?
LITE
?
1.1
•Flash 4 syntax
hitTt
()
FLASH
 
LITE
?
2.
x
•ActionScript 2.0 !
hitTt
()ilbl

hitT
es
t
()
•Like Math?
Ch6ibk

hitT
es
t
()
 ava
il
a
bl
e
•More complexity possible
li6

Ch
apter 
6
?
i
n our 
b
oo
k
•… a
l
so 
i

6
EXAMPLE
EXAMPLE
EXAMPLE
EXAMPLE
onEnterFrame()onEnterFrame()
onEnterFrame()onEnterFrame()
•Can be 
y
our friend for Flash Lite 2.x
g
ames
y
g
–i.e. Character movement, etc.
enemy_mc.onEnterFrame= move;
player_mc.onEnterFrame= function() { //‐‐do xyz }
•Performance
–Remember call is executed X times per FPS

LIMIT multi
p
le onEnterFrames
()
p
()
•Use only for more robust target devices
IlhLi11“fli”

I
n F
l
as
h
 
Li
te 
1
.
1
 = 
“f
rame 
l
oop
i
ng

FileSizeFileSize
File
 
SizeFile
?
Size
•Typically no more than 500 KB for SWF
•Some carriers restrict file size (KB)

AvailableBandwidth

Available
 
Bandwidth
–GPRS, 2/2.5G, 3G, others …
•OTA content delivery
–Sometimes user pays per kBdownload
•Decompression

FL2
x
SWFdecompressesincurringpenalty

FL
 
2
.
x
SWF
 
decompresses
?
incurring
?
penalty
–Images, Sounds must decompress
MobileSoundMobileSound
Mobile
 
SoundMobile
?
Sound
Device SoundsNative Sounds
•Playback outsideof Flash Lite
•Smaller size
•Playback withinFlash Lite
•Larger Size
•Common formats:
–MIDI, MFi, SMAF, AMR, others
“PSd”
•Common formats:
–PCM, ADPCM, .WAV, .MP3

“P
roxy 
S
oun
d
s

•FL 2.x device sound synch

BackgroundMIDITracks
Background
 
MIDI
?
Tracks
•Lots of handsets support MIDI
SONIFYORGSOUNDRESOURCESSONIFYORGSOUNDRESOURCES
SONIFY
.
ORG

SOUND
?
RESOURCES
Articles by Hayden Porter
SONIFY
.
ORG

SOUND
?
RESOURCES
Articles by Hayden Porter
MobileGameTextMobileGameText
Mobile
 
Game
?
TextMobile
?
Game
?
Text
Device Fonts
Pixel Fonts
•Preinstalled device fonts
•Results in smaller file size
•Hundreds available
•Larger file size
•Position anywhere on x, y 
doesn’t matter
Ntittlk&fl
•Position on x, y integer values
–i.e. x=0.0, y=0.0
Cittlk&fl

N
o
t
 cons
i
s
t
en
t
 
l
oo
k
 
&
?
f
ee
l
•No anti‐aliasing

PointSizeRestrictions

C
ons
i
s
t
en
t
 
l
oo
k
 
&
?
f
ee
l
•No anti‐aliasing

Usevariouspointsizes
Point
 
Size
?
Restrictions
Use
?
various
?
point
?
sizes
Device fonts save space
Use pixel fonts for look/feel
Device fonts save space
Device fonts save space
Use pixel fonts for look/feel
Use pixel fonts for look/feel
MobileGameGraphicsMobileGameGraphics
Mobile
 
Game
?
GraphicsMobile
?
Game
?
Graphics
BitmapVector
“Versus”
•“Larger” file size
•Less CPU resources
•“Smaller” file size
•More CPU resources
•More memory

Scaling/Rotating
=
Bad
•Less memory

Scaling/Rotating
=
OK
Scaling/Rotating
  
Bad
Scaling/Rotating
??
OK
Vectors preserve look when scaled
Pixilation occurs on bitmap assets when scaled
TargetDeviceMemoryTargetDeviceMemory
Target
 
Device
?
MemoryTarget
?
Device
?
Memory
•Memory Heaps:
l
d
•Static

near
l
yguarantee
d
 
•Dynamic 

Typically
1000KB0
kB
andupto6000
KB

Typically
1000
?
KB
?… 
0
?
kB
and
?
up
?
to
?
6
,
000
KB
•Fluctuatesdepending on other apps, etc.

FSCommand2API
FSCommand2
 
API
var total_num:Number= fscommand2( “GetTotalPlayerMemory” );
varfree_num:Number= fscommand2( “GetFreePlayerMemory” );
PblithCtt#1“OtfM”

P
ro
bl
em w
ith
 
C
on
t
en
t
 
#1

“O
u
t
 o
f
 
M
emory

•Garbage Collection
60didliifitii

60
 secon
d

idl
e or s
i
gn
ifi
can
t
 r
i
se 
i
n memory usage
•We need an API to avoid memory leaks!
MemoryProfilingToolsMemoryProfilingTools
Memory
 
Profiling
?
ToolsMemory
?
Profiling
?
Tools
“OLD” SCHOOL
“NEW” SCHOOL
TASK SPY
–Symbian  Series Devices
Adobe Device Central
–Static/Dynamic Heap Info

Download:
www.pushl.com/taskspy

Memory usage graphing
–Heap Adjustments
TargetDevicePerformanceTargetDevicePerformance
Target
 
Device
?
PerformanceTarget
?
Device
?
Performance
•CPU

Equivalentto

PentiumPC


Equivalent
 
to
?
Pentium
?
PC
•TargetFPS

CPU

TimerResolution


CPU
 
Timer
?
Resolution
•Nokia: 16 FPS, iRiver: 20 FPS

OtherFlashLite11devices
Other
 
Flash
?
Lite
?
1
.
1
 
devices
?
•8 to 20+ FPS

Speed

o
?r
meters
Speed
o
meters
•Test FPS capabilities

KISSPrinciple

K
.
I
.
S
.
S

Principle
•Keep It Simply Silly
Memory&PerformanceToolsMemory&PerformanceTools
Memory
 
&
?
Performance
?
ToolsMemory
?
&
?
Performance
?
Tools
OLD
NEW !
TASK SPY
–Symbian  S60 Devices

Download:
A
dobe Device Central 
“Performance Calibration Tool”

Eachdevicehas

index


Download:
www.pushl.com/taskspy

Each
 
device
?
has
?
index
–Simulated CPU usage
–Performance reporting

Only visual elements
•AS 2.0 Profiling Tool
http://www.nochump.com/asprof
ScreenSizesScreenSizes
Screen
 
SizesScreen
?
Sizes
•Some common screen sizes on target devices …
176 ×208:  Nokia Symbian Series 60
320 ×240/128 x 160:  Nokia Series 40 
176
220(“204”)Vi3(BREW)
176

220
 
(“204”)
:  
V
er
i
zon v
3

(BREW)
320 ×240:  Chumby
320 ×240:  iRiver u10, Clix 1/2, u20
128 ×128:  iRiver e10
480 ×272:  PSP
Manyothers!
Many
 
others!
•Adobe Device Central
Screensizesearchingetc

Screen
 
size
?
searching

etc
–Device “Profile sets”
PixelDepthsandColorPixelDepthsandColor
Pixel
 
Depths
?
and
?
ColorPixel
?
Depths
?
and
?
Color

Notalldevicessupportthesamecolor
depth!
Not
 
all
?
devices
?
support
?
the
?
same
?
color
?
depth!
•12‐bit to 24‐bit … typically 16‐bit
li
•Examp
l
e Dev
i
ces
•Nokia S40 6131 (24‐bit) versus Nokia S40 (18‐bit)
•Adobe Device Central
•Search capabilities
Color Palette may need adjusting if ported to new target device.
Debugging Debugging 
Flash Lite GamesFlash Lite Games

trace()
statement

FlashLite
ErrorCodes

trace()
 
statement
trace( “Got here!” ); 

Togglingtrace

Flash
 
Lite
Error
?
Codes
•Common Errors
OtfM

Toggling
 
trace
//trace( “Got here!” ); … or:

O
u
t
 o
f
 
M
emory
–“Bad Data”
–ActionScript Stuck
•Friendly Ghost Tool
•Flash Lite 1.1
Orison Technologies Product
OptimizationOptimization
“Tips and Tricks”“Tips and Tricks”
•Use bitmaps over vectors where possible
•.PNG’s over .JPG’s for bitma
p
s
p
•Optimize shapes and outlines

SplitupandtilecomplexBackgroundBitmaps

Split
 
up
?
and
?
tile
?
complex
?
Background
?
Bitmaps
•AVOID:

animating simultaneous movieclips
–complex uses of Math and looping
–a lot of ActionScript contained in one frame
Optimization Optimization 
ld
“Tips and Tricks”“Tips and Tricks”
•Ana
l
yze size reports an
d
 optimize
•Devnet Articles have LOTS OF TIPS!

htt
p
://www.adobe.com/devnet/devices/
p
•MANY MORE tricks for Flash Lite (2.x) …
“Optimizing content for Flash Lite 2.0” ‐
J
osh Ulm (Adobe)
http://www.adobe.com/devnet/devices/flash_lite_optimization.pdf
“Optimizing content for Flash Lite 2.0” ‐
J
osh Ulm (Adobe)
http://www.adobe.com/devnet/devices/flash_lite_optimization.pdf
Misc PlatformsMisc Platforms
“Perhaps the hardest thing with Flash Lite is 
knowing the strengths and weaknesses of 
theeachandeveryreferenceplatform


the
 
each
?
and
?
every
?
reference
?
platform

Me
iRiverClixGameiRiverClixGame
iRiver
 
Clix
?
GameiRiver
?
Clix
?
Game
•ALIEN INVASION
–Casual Game

Ra
p
id Game Develo
p
ment = 2‐3 da
y
s for DEMO
pp
y
–Flash Lite 2.0 (ActionScript 2.0)

OOP (Ob
j
ect based st
y
le architecture)
jy
WALKTHROUG
H
ChumbyGamesChumbyGames
Chumby
 
GamesChumby
?
Games
•Flash Lite “2.1” Player running under Linux
TFR

T
arget 
F
rame 
R
ate: 12 fps
•Screen size: 320 px×240 px
•Sound: MP3
•User Inputs:
•Touch Screen, Bend Sensor, 

Light Sensor
, Accelerometer
•“Channels” and “Widgets”
•“Throw‐away” type games
•Simple == better
Experimental Chumby Games
PSPFlashGamesPSPFlashGames
PSP
 
Flash
?
GamesPSP
?
Flash
?
Games

Downloadupdateconfigure
not
preinstalled

Download

update

configure
?… 
not
preinstalled
–Sony PSP ROM update version 2.70 or later

FlashPlayer6
(607227)
Flash
 
Player
?
6
?
(6
,
0
,
72
,
27)
–Reality = Think “Flash Lite 2.1”

Runmethods
Run
 
methods
–embedded in HTML page, standalone SWFS in web browser

file:/flash/filename.swf 
•PSP Dev Center on Adobe
–Features and Technical Info:
•http://www.adobe.com/devnet/devices/psp.html
FlashLite
Multiplayer
games
FlashLite
Multiplayer
games
Flash
 
Lite
?
Multiplayer
games
Flash
?
Lite
?
Multiplayer
games
“’Turn style’ games make most sense … but it depends 
dliildi
on your 
d
ep
l
oyment env
i
ronment 
i
nc
l
u
di
ng: operator, 
bandwidth, target devices, etc.” –Me
MultiplayerGamesMultiplayerGames
Multiplayer
 
GamesMultiplayer
?
Games
•What kind of games make sense?
bd
dl

Turn 
b
ase
d
 games … Car
d
 Games, Puzz
l
es, etc
.
•Communication Methods
HTTP(Polling)
FlashLite11

HTTP
 
(Polling)
?

Flash
?
Lite
?
1
.
1
•loadVariables(), loadVars(), etc

XML Socket
Custom Socket Server … Chapter 6
•Flash Lite 2.1 or higher
•Sushi Socket Server (Flash Lite API)
–Flash Lite = Bluetooth
•Intercommunication with 3rd
p
art
y
 a
pp
lication
pypp
•Look for an “article” soon …
EXAMPLES
Sushi Socket Serve
r
MobileGame
Testing
MobileGame
Testing
Mobile
 
Game
?
Testing
Mobile
?
Game
?
Testing
Emulators help … but “Rule #1: Always test on actual 
targethandsets
”‐
ME
target
?
handsets
?
ME

Emulators

,Simulators,&Testing

Emulators

,Simulators,&Testing
Emulators,
 
Simulators,
?
&
?
TestingEmulators,
?
Simulators,
?
&
?
Testing

Alltargetdevices
All
 
target
?
devices
–Adobe Device Central
GSM

GSM
–Nokia 3rd
Edition SDKs
•BREW
QualcommSimulator

Qualcomm
 
Simulator
•Others …
ALWAYS TEST CONTENT ON TARGET DEVICES!ALWAYS TEST CONTENT ON TARGET DEVICES!
MbilGMbilG
M
o
bil

G
ame 
l
M
o
bil

G
ame 
l
Dep
l
oymentDep
l
oyment
“Worldwide revenue for mobile gaming 
subscriptions could increase from $3 billion 
to$105billionin2009


JuniperResearch
to
 
$10
.
5
 
billion
?
in
?
2009
?
Juniper
 
Research
?
Ltd.
GameDistributionGameDistribution

Aggregators,ContentProviders,
Operators
Game
 
DistributionGame
?
Distribution
Aggregators,
?
Content
?
Providers,
Operators
•Device ManufacturerPre‐installation
… and MANYMANYOTHERS!
•Memory Card (MMC) = “Virally”
WUWU
W
rap 
U
p
W
rap 
U
p
Q&AWheretogofromhere?

Futurethinking

Q&A

Where
?
to
?
go
?
from
?
here?

Future
?
thinking
Q&AQ&A
Q
 
&
?
AQ
?
&
?
A

Questions?
Questions?
•What can we do with Flash Lite 3?
i
lhidd

Nat
i
veF
l
as
h
 V
id
eo now supporte
d
–T.B.D.
“WihLi”fFlhLi2

“Wi
s
h
 
Li
st

 
f
or 
Fl
as
h
 
Li
te > 
2
.x
–Garbage Collection API

Bitmap Caching?
–Access to Camera/Bluetooth Support
LBSSupport(LocationBasedServices)

LBS
 
Support
?
(Location
?
Based
?
Services)
–Others …
Wheretogofromhere?Wheretogofromhere?
Where
 
to
?
go
?
from
?
here?Where
?
to
?
go
?
from
?
here?

FoundationFlashApplicationsforMobileDevices
Foundation
 
Flash
?
Applications
?
for
?
Mobile
?
Devices
–http://www.flashmobilebook.com
•Adobe DevNet articles
–http://www.adobe.com/devnet/devices/

http//frame27blogspotcom

http
:
//frame27
.
blogspot
.
com
•Contact Me
fitc2007@scottjanousekcom
•Game Groups:
fitc2007@scottjanousek
.
com
This slide left blank intentionally (almost)
MISC
(nsed/”ni”
ed
)
MISC
(nsed/”ni”
ed
)
MISC
 
(
u
n
u
sed/”ni
x


ed
)
MISC
?
(
u
n
u
sed/”ni
x


ed
)
MathandPhysicsMathandPhysics
Math
 
and
?
PhysicsMath
?
and
?
Physics
•Limited Device Capabilities

Handsets vs. portable consoles
–Memory and Performance

Avoidovertlycomplexgamecomputations
EXAMPLE

Avoid
 
overtly
?
complex
?
game
?
computations
•Flash Lite 1.1 
supportslimitedFlash5object
EXAMPLE

supports
?
limited
?
Flash
?
5
?
object
–Drawing API can be simulated (sort of)

FlashLite2
x

Flash
 
Lite
?
2
.
x
–supports AS2 Math object

DrawingAPI
Drawing
 
API
–onEnterFrame()
FlashLiteGamesforiRiverFlashLiteGamesforiRiver
Flash
 
Lite
?
Games
?
for
?
iRiverFlash
?
Lite
?
Games
?
for
?
iRiver
•iRiver Portable Media Players
FlhLi11

Fl
as
h
 
Li
te 
1
.
1
: u10 
•Flash Lite 2.x: e10, Clix, “u20” (Clix 2G)
•D‐Click Flash Lite interface 
•Up, Down, Left,  Right, “softkeys” are +/‐
•Capabilities:

FlashLiteGames
Flash
 
Lite
?
Games
•MP3, stored data (u10), more!
•Custom fscommand2’s
•Yuck … Flash Lite API limitations
MethodsofGameStateMethodsofGameState
Methods
 
of
?
Game
?
StateMethods
?
of
?
Game
?
State
“Shared Objects”External Server
•Mobile Shared Objects (FL 2.x)
•Write2File (FL 1.1)
•Requires external data 
connection
•Pros: No data connection
•Cons: Not always supported 
(onlyFlashLite2)filesize
•Databases (MYSQL)
•Pros: Persistent in db

Cons:
Requiresconnection
(only
 
Flash
?
Lite
?
2)

file
?
size

Cons:
 
Requires
 
connection
Entering Predetermined “Codes”
•Enter code “xyz” to get to level 3
•Pros: Simple to implement
•Cons: Can decompile to figure out codes
EXAMPLE
LeveragingVibrationLeveragingVibration
Leveraging
 
VibrationLeveraging
?
Vibration

Somedevicessupportthisfeature
Some
 
devices
?
support
?
this
?
feature
?
–Nokia 6680 for example

Simulatetheresultofanactionorevent

Simulate
 
the
?
result
?
of
?
an
?
action
?
or
?
event
–Hit wall, Player died, alerts, etc.
tVlfd2(“
SttVibt”fft
)
•re
tV
a
l
 = 
f
scomman
d2(“
St
ar
tVib
ra
t
e

,on,o
ff
,repea
t
)
;
•Enhancement

never requirethis for game play
EXAMPLE
fscommand2APIfscommand2API
fscommand2
 
APIfscommand2
?
API
•SetQuality
•StartVibrate
•UnEscape

GetPowerSource
•FullScreen

GetTimeHours
•StopVibrate
•GetVolumeLevel
•GetMaxVolumeLevel

GetSignalLevel
GetPowerSource
•GetBatteryLevel
•GetMaxBatteryLevel

SetSoftKeys
GetTimeHours
•GetTimeMinutes
•GetTimeSeconds

GetTimeZoneOffset

GetSignalLevel
•GetMaxSignalLevel
•GetNetworkConnectStatus
•GetNetworkRequestStatus

SetSoftKeys
•ResetSoftKeys
•GetDateDay

GetDateWeekDay

GetTimeZoneOffset
•GetTotalPlayerMemory
•GetFreePlayerMemory

GetLanguage
•GetNetworkStatus
•GetNetworkName
•SetInputTextType

Quit

GetDateWeekDay
•GetDateMonth
•GetDateYear

GetLocaleShortDate

GetLanguage
•GetDeviceID
•GetPlatform

GetDevice
Quit
•ExtendBacklightDuration(FL 2.x)
•setFocusRectColor(FL 2.x)

GetLocaleShortDate
•GetLocaleLongDate
•GetLocaleTime

GetDevice
•Launch
•Escape
retVal = fscommand2( “FullScreen”, true ); //‐‐fullscreenmode (if supported)retVal = fscommand2( “FullScreen”, true ); //‐‐fullscreenmode (if supported)
fscommand2’s execute immediately … no
t
supported on desktopfscommand2’s execute immediately … no
t
supported on desktop

Toolsets
”“
Toolsets

Toolsets
Toolsets

Simulators
•Mobile Tools
Simulators
•i‐mode
•Simulator
•FEExplorer
•TaskS
py
•Nokia
•PC Suite
py
•3rd
edition SDK
•Verizon 
•App Loader
•BREW Simulator