Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Title
Copyright
Contents at a Glance
Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: An Introduction to Game Development
A Brief History of Video Games
Who Makes Games?
The Difference between Computer Games and Board Games
Comparing Mobile Phones to Game Consoles
An Overview of Game Engines
Summary
Chapter 2: An Introduction to the Android Game Development Ecosystem
Java and the Dalvik Virtual Machine
C++ and the NDK
Fragmentation and the Android Ecosystem
Android Versions
Screen Resolution and Aspect Ratio
Input Device Support
GPUs
HelloDroid - Our First Android Game
Creating a New Eclipse Project
Adding NDK Support
A Look at the NDK Build System
Running the Game
Summary
Chapter 3: Game Design for Beginners: Droid Runner
An Introduction to Design Documents
Creating a World, Telling a Story, and Setting the Scene
The Droid Runner Design Overview
Defining the Gameplay and Mechanics
Level Design
Pacing
Aesthetics
Scale
Technical Requirements
Summary
Chapter 4: Building a Game Engine
Creating an Application Object
Creating the Game Loop Using a Kernel and Tasks
Starting the Kernel Class
Defining the Task Interface
5Examining the Kernel Methods
Android’s Native App Glue
Timekeeping
Summary
Chapter 5: Writing a Renderer
Initializing the Window and OpenGL Using EGL
An Introduction to Shaders
An Introduction to Vertex Shaders in OpenGL ES 2.052
An Introduction to Fragment Shaders in OpenGL ES 2.054
Creating a Shader Program
Rendering a Quad with OpenGL
Representing Geometry
Creating a Renderable
Creating the Basic Shader
Creating an App-Specific Application and Task
Applying Textures to Geometry
Loading a File
Loading a TGA File
Representing a GL Texture
Creating TextureShader
Initializing Textures and Shaders
Loading Textures in a Task
Summary
Chapter 6: Game Entities
What Is a Game Entity?87
Communicating with Game Objects via Events
The Event Class
The EventHandler Classes
The EventManager
EventManager’s Friend Functions
Big O Notation
EventManager’s Interface Methods
Rendering an Object
The TransformComponent Class
The Transform Class
The RenderableComponent
The TransformShader Class
The Player Object
Making the Player Jump
A Basic AI Entity
Summary
Chapter 7: Building Game Levels with Collision
Representing Game World Objects with Collision Data
Building a Game Level
Broad-Phase Filtering
Quadtrees and Octrees
Binary Space Partitions
Broad-Phase Filtering in Droid Runner
Collision Bins
The Collision Manager
Narrow-Phase Collision Detection
Responding to Collisions
Running the Collision Test
Using the Z Buffer
Summary
Chapter 8: Virtual Cameras
The Model and View Matrices
The Projection Matrix
Defining a Camera Object
Updating the Renderer
Concatenating the Model, View, and Projection Matrices
Updating the Camera’s Transform
Adding a Camera to DroidRunnerLevel
Proper App Behavior When Pausing and Resuming
Adding Events for Pausing and Resuming
Handling the Pause and Resume Events in the Renderer
View Frustum Culling
The View Frustum Culling Test
Summary
Chapter 9: Lighting and Materials
A Basic Lighting and Material Model
Per-Vertex or Per-Fragment Shading
Representing Materials
Ambient Lighting
Vertex Normals
Diffuse Lighting
Diffuse Component Vertex Shader
Diffuse Component Fragment Shader
Initializing the Shader Using OpenGL ES 2.0
Specular Lighting
Specular Component Vertex Shader
Specular Component Fragment Shader
Initializing TransformAmbientDiffuseSpecularShader
Different Types of Lights
Forward Shading
Point Lights
Spotlights
Deferred Rendering
Bidirectional Reflectance Distribution Functions
Summary
Chapter 10: Game Audio
The Physics of Sound
Amplitude
Frequency
Other Types of Sound Waves
Aliasing
Audacity
The Chirp Generator
Effects
Creating a Jump Sound Effect with Audacity
Playing Audio Using OpenSL ES
Creating the AudioManager
An Introduction to OpenSL ES
Creating OpenSL ES Player Objects for Files
SDBM Hashes
Playing Sounds Using OpenSL
Cleaning Up Sounds
Adding Sound Effects to Droid Runner
Summary
Chapter 11: Self-Publishing
The Google Play Developer Console
Keys, Keystore, and Digital Signatures
Signing an APK for the Play Store
Uploading to the Google Play Developer Center
Monetization
App Quality
Summary
Appendix A: Using the Android Development Environment
Setting Up the Android SDK and Eclipse
Installing the Android NDK
Building a Native App
Appendix B: Android Hardware Overview
CPU Architectures
ARM
MIPS
x86
GPU Architectures
PowerVR
Mali and Adreno
Tegra
Appendix C: C++ Programming
The Friend Keyword
Templates
The Singleton Pattern
Appendix D: C++ Math
Vectors
Matrices
Identity Matrix
Rotation Matrices
Multiplying Matrices
Planes
Index
← Prev
Back
Next →
← Prev
Back
Next →