Directional DiscreteDoesn’t overlap the screen, so more screen spacefor gameplay.More precise requirements = More difficultyDifficult to do “Click Here” games
Directional PadsAround since pre-public AndroidMore scarce now thatwe have highresolution screensSupport still in theAndroid SDK
Joysticks More precise Gamers more familiar with them Supported in the Android SDK
Tracking Motionhttp://developer.android.com/reference/android/view/MoSOURCE_JOYSTICK, SOURCE_DPAD,SOURCE_GAMEPADFor a joystick use getMotionRange to see how farit’ll go.
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.
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.
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
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.
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.
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.
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.
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