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 • Time: 12% - improve mood • 91% of mobile sessions are < 30 minutes • • Women play for longer periods of time Most popular games • 62% are less than 15 minutes 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 • May listen or watch other media Casual gamers want: • Games are most popular 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