Droidcon London 2012 - Console Games


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Droidcon London 2012 - Console Games

  1. 1. Writing games for an Android videogames consoleAl Sutton, Funky Android Ltd.www.funkyandroid.com
  2. 2. Writing games for an Android videogames consoleAl Sutton, Ouya Inc.ouya.tv
  3. 3. Going big-screenGoogle TVNexus Q, currently shelvedOUYA and non-Google approved devices
  4. 4. Think big
  5. 5. Space.. use itTVs’ tend to be big.. really big compared tophones.Only having small graphics will make your applook sparse
  6. 6. Big Assets problemBig screens can display complex assetsDon’t be afraid to pull from your own serverHosting services like Amazon S3Go the whole hog with a CDN
  7. 7. Zone your displayMore space for the gameKeep long-term stats to the edgesShort term popups where the action is
  9. 9. Directional DiscreteDoesn’t overlap the screen, so more screen spacefor gameplay.More precise requirements = More difficultyDifficult to do “Click Here” games
  10. 10. Directional PadsAround since pre-public AndroidMore scarce now thatwe have highresolution screensSupport still in theAndroid SDK
  11. 11. Joysticks More precise Gamers more familiar with them Supported in the Android SDK
  12. 12. Tracking Motionhttp://developer.android.com/reference/android/view/MoSOURCE_JOYSTICK, SOURCE_DPAD,SOURCE_GAMEPADFor a joystick use getMotionRange to see how farit’ll go.
  13. 13. Identifying deviceshttps://developer.android.com/reference/android/view/In allows you to see what type of controller the useris using.The method returns an android.view.InputDevicewhich tells gives you the type of controller and therange of possible motion.
  14. 14. General RulesThink about the most used position of thecontroller for your gameAvoid reach positions; RSI isn’t fun.Calibrate your input. Two users are using joysticksdoesn’t mean that each joystick has the sameinput range.
  15. 15. GoING beyond single user
  16. 16. Personal but Multi-UserOne current primary user- The person purchasing stuff- Usually the most-common userMultiple playing users- Co-op and head-to-head- Split screen play
  17. 17. Identifying usersMap a user to a controllerEach InputEvent has a device ID (getDeviceId)Ask each use to perform an action and record thedevice ID an action was performed on.Don’t trust users, check there’s only one user perdevice ID.
  18. 18. Identifying usershttps://developer.android.com/reference/android/view/InputEvent.html#getDeviceId() says “zeroindicates that the event didnt come from aphysical device... other numbers are arbitrary andyou shouldnt depend on the values.”The values are good while the controller ispowered on and registered on the device.
  19. 19. No longer mobile... Ramp up the power
  20. 20. BandwidthCheaper... but not freeFar more stable.... but not guaranteedBig downloads to save cellular radio switching notan issue.
  21. 21. ComputationPush the CPU.Battery usage isn’t a concern; There is no battery.If you want to be green drop back the processingif the user doesn’t interact for a while
  22. 22. BackgroundServicesBackground servicesslow down any deviceMore power does notmean you can use it allthe timeIf you’re not on screenthen don’t consumeresources.
  23. 23. Be Social, But be nice
  24. 24. Sharing progressThink about yourwordingIf you’re translating getit checked by a nativelanguage speakerEmbarrassing peoplewont make your gameappealing.
  25. 25. Social NetworksGet users to advertise your gameEncourages users to achieve moreCreate a buzz you don’t have to pay for
  26. 26. Social NetworksFacebook- OpenGraph- 11:30 - new Facebook SDKTwitter- Rate limited (15 in 15)- Don’t tweet “They pressed up!!!”Google+- API ... well... MIA
  28. 28. Syncing User DataUsers can move between devices.How do you handle players “dropping out”?Sync the state if users switch to playing on themove.Degrade the experience for the device. Quad coreto Single core is quite a shift.
  29. 29. Web InterfaceUsing your servers for game data gives you a webinterfaceSneaky playing at work... that secret habitKeeps the user engaged, even if it’s loosely.
  30. 30. MAKING MONEY
  31. 31. ProblemsUsers like free.Would you buy before you try?Problems transferring data between free-and-proversions.
  32. 32. In-App purchasesFree for the user to tryGive a good sample of your app before requiringpaymentSome games use boosters to accelerate gameplayOne APK, no data transfer worries.
  33. 33. RECAP
  34. 34. Think Big; Don’t use phone-sized assetsAllow for directional controllersThink beyond a single user deviceYou have more power, use itBe social, let users do your advertisingTake away gamingIn-App Purchases
  35. 35. Questions?