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

advertisement

MOBILE COMPUTING

(WITH A LITTLE CASUAL THROWN IN)

CGDD 4003

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 latest

SDK

• 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

Download