23
CGDD 4003 MOBILE COMPUTING (WITH A LITTLE CASUAL THROWN IN)

CGDD 4003 MOBILE COMPUTING (WITH A LITTLE CASUAL THROWN IN)

Embed Size (px)

Citation preview

CGDD 4003

MOBILE COMPUTING(WITH A LITTLE CASUAL THROWN IN)

GROWTH• Phone is always with you

• Predicted to exceed $16B by 2016

• Reaches a (much) wider demographic

• 50% of those under 40 play mobile games

• 20% of those over 40

• In-app purchases are exploding

• Currently 1/3 of mobile revenue (1/2 by 2016)

THE MARKET• Apple’s App Store: 300,000+ apps

• Has passed on $1B to developers

• Android Marketplace: 100,000+ apps

• Nokia’s Oki: 28,000+ apps

• Typically keep 70% of revenue

• Must we offer games for free?

• How do we get discovered?

http://www.mobileapptesting.com/power-up-massive-growth-in-mobile-gaming-ahead/2010/12/

THE MARKET*• 57% of AT&T Wireless customers play games

• Why they play:

• 52% - distraction from daily life

• 40% - relaxation and stress relief

• 12% - improve mood

• Time:

• 91% of mobile sessions are < 30 minutes

• 62% are less than 15 minutes

• Women play for longer periods of time

• Most popular games

• Puzzle (66%), Card/Casino (51%), Board games (15%), Action/Adventure(11%)

* http://wirelessandmobilenews.com/2009/05/57-of-atters-play-mobile-games-tetris-most-popular.html?wpmp_switcher=mobile

SPEAKING OF WHICH…• What IS the most popular mobile game of all time?

SPEAKING OF WHICH…• What IS the most popular mobile game of all time?

100 million downloads…

FARMVILLE OF THE FUTURE?• EA is investing in mobile and casual

• “Anyone who fails to recognize that shift will be left behind” – John Riccitiello (CEO)

http://www.mobileapptesting.com/power-up-massive-growth-in-mobile-gaming-ahead/2010/12/

HABITS• Average “user” has 27 apps on their phone

• Up from 22 in 2009

• Games are most popular

• May listen or watch other media

• Casual gamers want:

• Quick

• Simple

• Non-committal

• No deep thought

BASIC MOBILE GAME DESIGN• Small in scope (no MMORPG)

• Easy to learn (simple mechanics)

• Simple UI (prone to errors)

• Mobile context:

• Interruptible – user is a multi-tasker

• Can be played anywhere, any time

• Rely on mobile technology (especially input)

• Non-explicit content

• Trend – evolving from 2D to 3D

• Respect user privacy!

Good site: http://www.developer.nokia.com/Resources/Library/Design_and_UX/index.html

BASIC MOBILE GAME DESIGN• User should be able to start a new session (frequently) and reach goals quickly

• Design considerations for visuals

• Basic problem: small screen, yet need to convey information

• Characters 10-15% of screen

• 6 pieces of HUD or less!

• Touching the screen “blocks” it!

• Justify each visual element

• Keep the backlight on if possible

• General no-nos

• Chatting

• Complex input (multi-touch)

• It’s ok to be slow, but don’t give slow feedback

BASIC PHONE CAPABILITIES• Usually need to query for these (vary wildly)

• Input:

• no physical mouse/keyboard

• no joystick?

• Buttons?

• GPS

• Accelerometers/Gyroscopes

• Restricted memory

• Network

• server or peer-to-peer?

• Bluetooth?

• Limited CPU – GPU?

• AI?

GETTING STARTED: ANDROID

• http://www.youtube.com/watch?v=z_vC0RLryuo • An IDE: typically Eclipse

• Java

• The Android SDK

• The Android NDK?

• An Android phone?

• Normally no…

• If doing OpenGL ES, yes!

GETTING STARTED: WIN 7• Visual Studio (2010)

• Must have SP1 installed

• Win 7 SDK – it’s large

• http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27570

• Comes with an emulator

GETTING STARTED: IOS• You need a Mac! Or do you?

• Xcode

• Learn Objective-C and C++

• Good primer on Apple’s site

• Uses different kind of “messaging”

• Website

• http://developer.apple.com/devcenter/ios/index.action

• You’ll want to register… and probably buy an account

BASIC STRUCTURE OF PHONE APPS• Use the concept of call back functions

• Event-driven:

• Initialization

• Destruction

• Drawing

• Input events

• GPS

• Touch

• Normal widgets (mouse, textfields, etc…)

EXAMPLE: ANDROID PROJECT• We have several different

versions of Android

• Not all phones have latestSDK

• 2.2 is fairly safe

EXAMPLE: ANDROID PROJECT

EXAMPLE: WIN 7• It’s exactly the same skeleton as XNA!

• Multiple touch events

TouchPanelCapabilities tc = TouchPanel.GetCapabilities();

if(tc.IsConnected) { return tc.MaximumTouchCount;

}

TouchCollection fingers = TouchPanel.GetState(); foreach (TouchLocation finger in fingers) {

if ((finger.State == TouchLocationState.Pressed) || (finger.State == TouchLocationState.Moved)) {

// Do what we gonna do! }

}

EXAMPLE: WIN 7• Gyroscope

if (Gyroscope.IsSupported) { //get current rotation rate, display happens in Draw() GyroscopeReading gr = new GyroscopeReading(); Vector3 gyroReading = gr.RotationRate;

}

• For Accelerometer, see the documentation

YOUR TASK

Design the worst mobile game EVER