Index
A
- activities
- about / Activities and Fragments
- Android TV
- project, configuring / Project configuration
- testing for / Testing for Android TV
- declaring / Declaring a TV Activity
- home screen banner, providing / Providing a home screen banner
- declaring, as game / Declaring it as a game
- Leanback support, declaring / Declaring Leanback support
- touchscreen capability / Declaring touchscreen capability as not required
- manifest, reviewing / Reviewing the manifest
- controller instructions, showing / Showing controller instructions
- overscan / Dealing with overscan
- Android TV, controller instructions
- about / Showing controller instructions
- URL / Showing controller instructions
- overscan / Dealing with overscan
- controller-based navigation / Controller-based navigation
- controllers / Dialogs and controllers
- dialogs / Dialogs and controllers
- animated sprites
- creating / Animated sprites
- AnimationDrawable
- about / AnimationDrawable
- animated sprites, creating / Animated sprites
- view animation / Animating views
- XML, versus code / XML versus code
- interpolators / Interpolators
- app
- Audacity
- URL / Obtaining music
B
- backgrounds
- working with / Working with backgrounds
- XML drawables / The power of XML drawables
- state list drawables / State list drawables
- shape drawables / Shape drawables
- back key
- handling / Handling the back key
- BaseCustomDialog
- about / BaseCustomDialog
- member variables / BaseCustomDialog
- BaseFragment
- updating / Updating BaseFragment
- BaseGameUtils
- URL / Setting up the code
- Bullet game object
- about / The Bullet game object
C
- Calligraphy
- URL / Custom fonts
- circular bodies
- about / Circular bodies
- visual feedback, adding / Adding visual feedback
- advantages / Pros and cons
- disadvantages / Pros and cons
- collision detection
- about / Detecting collisions, Who can collide?
- GameEngine, updating / Updating GameEngine
- handling / Handling collisions
- rectangular bodies / Rectangular bodies
- advantages / Pros and cons
- disadvantages / Pros and cons
- circular bodies / Circular bodies
- collision detection, mixed
- about / Mixed collision detection
- visual feedback, adding / Adding visual feedback
- shapes, options / Other options for shapes
- optimizing / Optimization
- spatial partitioning / Spatial partitioning and QuadTree
- QuadTree / Spatial partitioning and QuadTree
- collisions, duplicated / Duplicated collisions
- controller-based navigation / Controller-based navigation
- controls
- selecting / Selecting control modes
- custom dialogs
- about / Custom dialogs
- features / Custom dialogs
- BaseCustomDialog / BaseCustomDialog
- quit dialog / Quit dialog
- pause dialog / Pause dialog
- GameOverDialog / Game Over dialog
- other dialogs / Other dialogs
- custom fonts
- about / Custom fonts
D
- DrawThread
- about / Improving DrawThread
- Draw thread / DrawThread
E
- emitters
- about / Emitters
- asteroid trail / Asteroid trails
- spaceship engine / The spaceship's engine
- enemies
- spawning / Spawning enemies – the GameController
- events / Events
F
- fragments
- about / Activities and Fragments
- fragment_game.xml / The GameFragment
- frames-per-second (fps) counter
G
- GameController
- about / Spawning enemies – the GameController
- procedural/random / Procedural/random
- deterministic/static / Deterministic/static
- hybrid approach / Hybrid approach
- approach / Our approach
- asteroids / The asteroids
- transformation matrix / More on the transformation matrix
- game developers, best practices
- about / Good practices for game developers
- object pools / Object pools
- enhanced loop syntax in lists, avoiding / Avoiding enhanced loop syntax in lists
- objects, precreating / Precreating objects
- variables, accessing directly / Accessing variables directly
- floating point / Being careful with floating points
- interfaces, avoiding / Performance myths – avoid interfaces
- GameEngine / GameEngine and GameObjects
- GameEvents
- about / GameEvents
- GameFragment
- about / The GameFragment
- score, adding / Adding a score
- lives, adding / Adding lives
- Game Objects / Game architecture
- GameObjects / GameEngine and GameObjects
- GameOverDialog
- about / Game Over dialog
- gamepads
- detecting / Detecting gamepads
- games
- building with Androik SDK, advantages / Pros of building games with the Android SDK
- building with Androik SDK, disadvantages / Cons of building games with the Android SDK
- starting / Starting a game
- stopping / Stopping a game
- object, managing / Managing game objects
- implementing / Putting everything together
- about / Moving forward with the example
- back key, handling / Handling the back key
- lifecycle, honoring / Honoring the lifecycle
- status bar / Using as much screen as we can
- navigation bar / Using as much screen as we can
- Before Android 4.4 / Before Android 4.4 – almost fullscreen
- immersive mode / Android 4.4 and beyond – immersive mode
- fullscreen, merging / Putting fullscreen together
- games, architecture
- about / Game architecture
- GameEngine / GameEngine and GameObjects
- GameObjects / GameEngine and GameObjects
- update thread / UpdateThread
- draw thread / DrawThread
- user input / User input
- GameView
- using / Using GameView
- interface / The GameView interface
- StandardGameView / StandardGameView
- SurfaceGameView / SurfaceGameView
- updating / Updating GameEngine
- game layout, updating / Updating the game layout
- gifts / Gifts
- URL / Gifts
- Google Cloud Messaging (GCM) / Setting up the developer console
- GPGS
- developer console, setting up / Setting up the developer console
- code, setting up / Setting up the code
- achievements / Achievements
- architecture / Architecture
- achievements, unlocking / Unlocking achievements
- features / Other features of Google Play services
- events / Events
- quests / Quests
- gifts / Gifts
- saved games / Saved games
- multiplayer games / Multiplayer games
H
- home screen banner
- providing / Providing a home screen banner
I
- IconFinder
- URL / State list drawables
- initializers
- about / General concepts, Initializers
- InputController base class
- about / The InputController base class
- Player object / The Player object
- Bullet game object / The Bullet game object
- interpolation
- about / Interpolators
K
- KeyEvents
- handling / Handling KeyEvents
L
- layers
- about / Layers
- leaderboards
- about / Leaderboards
- Leanback support
- declaring / Declaring Leanback support
- Leonids particle system library
- URL / General concepts
M
- MainMenuFragment
- updating / Updating MainMenuFragment
- MediaPlayer / MediaPlayer
- member variables, BaseCustomDialog
- mParent / BaseCustomDialog
- mRootLayout / BaseCustomDialog
- mRootView / BaseCustomDialog
- mIsShowing / BaseCustomDialog
- modifiers
- about / General concepts, Modifiers
- MotionEvents
- handling / Handling MotionEvents
- multiplayer games
- URL / Multiplayer games
- multiple screen sizes
- designing / Designing for multiple screen sizes
- music
- playing / Playing music
- obtaining / Obtaining music
- MediaPlayer / MediaPlayer
- life cycle / Music and Activity life cycle
- and activity, life cycle / Music and Activity life cycle
- enabling / Enabling and disabling music and sound FX
- disabling / Enabling and disabling music and sound FX
N
- navigation bar / Using as much screen as we can
O
- occlusion culling
- about / Occlusion culling
- one shot
- about / One shot
- asteroid explosion / Asteroid explosions
- spaceship explosion / Spaceship explosions
- orientation
- selecting / Choosing an orientation
- aspect ratios / Dealing with aspect ratios
- overscan / Dealing with overscan
P
- parallax backgrounds
- about / Parallax backgrounds
- multiple backgrounds / Multiple backgrounds
- particle
- about / General concepts
- particles
- about / Particles
- ParticleSystem
- about / ParticleSystem
- particle systems
- about / General concepts
- creating / Making good particle systems
- pause dialog
- about / Pause dialog
- physical controllers
- about / Physical controllers
- MotionEvents, handling / Handling MotionEvents
- KeyEvents, handling / Handling KeyEvents
- gamepads, detecting / Detecting gamepads
- PlacingSpaceship state / Adding lives
- Player object
- about / The Player object
- spaceship, displaying / Displaying a spaceship
- bullets, firing / Firing bullets
- Play Games UI
- opening / Opening the Play Games UI
- priori / Detecting collisions
- project
- setting up / Project setup
- stub project, creating / Creating the stub project
- cleaning up / Cleaning up
- property animation
- about / Property animation
- ViewPropertyAnimator / ViewPropertyAnimator
- spaceship, moving around / Moving a spaceship around
- main menu, animating / Animating the main menu
Q
- QuadTree
- qualifying dimensions / Designing for multiple screen sizes
- qualifying resources
- about / Designing for multiple screen sizes
- smallest width / Designing for multiple screen sizes
- available screen width / Designing for multiple screen sizes
- available screen height / Designing for multiple screen sizes
- quests / Quests
- quit dialog
- about / Quit dialog
R
- real-time games
- URL / Multiplayer games
- rectangular bodies
- about / Rectangular bodies
- visual feedback, adding / Adding visual feedback
S
- <stroke> tag
- Width attribute / Shape drawables
- Color attribute / Shape drawables
- DashGap/DashWith attribute / Shape drawables
- saved games
- URL / Saved games
- sensors
- about / Sensors and InputControllers
- URL / Sensors and InputControllers
- shape attribute, values
- rectangle / Shape drawables
- oval / Shape drawables
- line / Shape drawables
- ring / Shape drawables
- shape drawables
- about / Shape drawables
- <shape> tag / Shape drawables
- <solid> tag / Shape drawables
- <gradient> tag / Shape drawables
- <padding> tag / Shape drawables
- <size> tag / Shape drawables
- <stroke> tag / Shape drawables
- <corners> tag / Shape drawables
- shape, defining / Shape drawables
- styles, defining / Shape drawables
- Sound FX
- about / Sound FX, Enabling and disabling music and sound FX
- creating / How to create sound FXs
- GameEvents / GameEvents
- SoundPool, using / Using SoundPool
- SoundManager
- about / SoundManager
- updating / Updating SoundManager
- SoundPool
- using / Using SoundPool
- sounds
- disabling / Disabling system sounds
- SpawningEnemies state / Adding lives
- sprites
- about / Sprites
- member variables / Sprites
- drawBitmap method / Sprites
- spaceship, updating / Updating the spaceship and bullets
- bullet, updating / Updating the spaceship and bullets
- state list drawables
- about / State list drawables
- colors, defining / State lists colors
- status bar / Using as much screen as we can
- StoppingWave state / Adding lives
T
- tools
- selecting / The right tool for the right game
- 3D / Do you want to use 3D?
- physics / Do you want to use physics?
- Java / Do you want to use Java?
U
- Update thread / UpdateThread
V
- view animation
- about / Animating views, XML versus code, View animation
- dialogs, animating / Animating dialogs, Delaying the action in the dialogs to onDismissed
- buttons, pulsating / Pulsating buttons
- ViewPropertyAnimator
- virtual joystick
- about / Creating a virtual joystick
- improvements / General considerations and improvements
- virtual keypad
- about / The most basic virtual keypad
- limitations / Limitations and problems
- problems / Limitations and problems
W
- Waiting state / Adding lives
X
- XML
- versus code / XML versus code
- XML drawables
- about / The power of XML drawables
Y
- YASS (Yet Another Space Shooter) / The project – YASS (Yet Another Space Shooter)