Beginning Android 3D Game Development [electronic resource] /
Chin, Robert.author.
Beginning Android 3D Game Development is a unique, examples-driven book for today's Android and game app developers who want to learn how to build 3D game apps that run on the latest Android 5.0 (KitKat) platform using Java and OpenGL ES. Android game app development continues to be one of the hottest areas where indies and existing game app developers seem to be most active.  Android is the second best mobile apps eco and arguably even a hotter game apps eco than iOS.  3D makes your games come alive; so in this book you'll find that we go in depth on creating 3D games for the Android platform with OpenGL ES 2.0 using an original case study game called Drone Grid. Moreover, this book offers an extensive case study with code that will be modular and re-useable helping you create your own games using advanced vertex and fragment shaders.  Drone Grid is a game app case study that is somewhat similar to the best selling Geometry Wars game series utilizing a gravity grid and colorful abstract graphics and particles. After reading and using this book, you'll be able to build your first 3D Android game app for smartphones and tablets.  You may even be able to upload and sell from popular Android app stores like Google Play and Amazon Appstore.  .
Includes index.
Beginning Android 3D Game Development is a unique, examples-driven book for today's Android and game app developers who want to learn how to build 3D game apps that run on the latest Android 5.0 (KitKat) platform using Java and OpenGL ES. Android game app development continues to be one of the hottest areas where indies and existing game app developers seem to be most active.  Android is the second best mobile apps eco and arguably even a hotter game apps eco than iOS.  3D makes your games come alive; so in this book you'll find that we go in depth on creating 3D games for the Android platform with OpenGL ES 2.0 using an original case study game called Drone Grid. Moreover, this book offers an extensive case study with code that will be modular and re-useable helping you create your own games using advanced vertex and fragment shaders.  Drone Grid is a game app case study that is somewhat similar to the best selling Geometry Wars game series utilizing a gravity grid and colorful abstract graphics and particles. After reading and using this book, you'll be able to build your first 3D Android game app for smartphones and tablets.  You may even be able to upload and sell from popular Android app stores like Google Play and Amazon Appstore.  .
Description based on publisher supplied metadata and other sources.
Intro -- Beginning Android 3D Game Development -- Contents at a Glance -- Contents -- About the Author -- About the Technical Reviewer -- Acknowledgments -- Introduction -- Chapter 1: Let's Meet the Android -- Overview of Android -- Overview of the Android SDK -- Android Software Development Kit (SDK) Requirements -- Android SDK Components Overview -- Eclipse with Android Development Tools Plug-in -- Android SDK Manager -- Android Virtual Device -- How to Set Up for Development -- Android Development Tools Integrated Development Environment (IDE) Overview -- Package Explorer -- Source Code Area -- Outline -- Dalvik Debug Monitor Server (DDMS) -- LogCat Window -- Launching the SDK Manager and AVD Manager from Eclipse -- Hands-on Example: Non-OpenGL ES Text "Hello World" Program -- Creating a New Android Project -- Running on an Android Emulator -- Running on an Actual Android Device -- The Main Source Code -- The Graphical Layout -- The Actual "Hello World" Data -- Summary -- Chapter 2: Java for Android -- Overview of the Java Language -- Java Comments -- Java Basic Data Types -- Arrays -- Data Modifiers -- Java Operators -- Arithmetic Operators -- Unary Operators -- Conditional Operators -- Bitwise and Bit Shift Operators -- Java Flow Control Statements -- Java Classes -- Packages and Classes -- Accessing Classes in Packages -- Java Interfaces -- Accessing Class Variables and Functions -- Java Functions -- Calling the Parent Function -- The Basic Android Java Program Framework -- Android Activity Life Cycle Overview -- Key Activity Life Cycle Cases -- Seeing the Activity Life Cycle in Action -- The Basic Android Java OpenGL Framework -- Basic Android OpenGL ES Framework for a Single-View OpenGL ES Application -- The Custom GLSurfaceView -- The Custom Renderer -- Basic Android OpenGL ES Framework for a Multiple View OpenGL ES Application.
The XML Layout File -- The Activity Class and GLSurfaceView Class -- Hands-on Example: A 3D OpenGL "Hello Droid" Example -- Importing Project Examples into Eclipse -- The MainActivity and MyGLSurfaceView Classes -- The MyGLRenderer Class -- Class Overview -- Experimenting with "Hello Droid" -- Summary -- Chapter 3: 3D Math Review -- Vectors and Vector Operations -- What Is a Vector ? -- Vector Representing Position -- Vector Representing Direction -- Vector Representing Rotation Axis -- Vector Representing Force -- Vectors Representing Local Axes -- Our Vector Class -- The Vector Magnitude -- Vector Normalization -- Vector Addition -- Vector Multiplication -- Vector Negation -- The Right Triangle -- Vector Dot Product -- Vector Cross Product -- Matrices and Matrix Operations -- What Is a Matrix ? -- Built-in Android Matrix Class -- The Identity Matrix -- Matrix Transpose -- Matrix Multiplication -- Matrix Inverse -- Homogeneous Coordinates -- Using Matrices to Move Objects -- Using Matrices to Rotate Objects -- Using Matrices to Scale Objects -- Combining Matrices -- Hands-on Example: Manipulating Objects in 3D Space -- Building a 3D Object's Model Matrix -- Adding a Rotation to an Object -- Moving an Object in 3D Space -- Scaling an Object -- Summary -- Chapter 4: 3D Graphics Using OpenGL ES 2.0 -- Overview of OpenGL ES 2.0 on Android -- General Overview of OpenGL Object Rendering -- Specific Overview of the Rendering Procedure -- Transforming the 3D Object's Vertices -- Building the Model Matrix -- Building the View Matrix -- Building the Projection Matrix -- Setting the Viewport -- Sending the Matrices and Lighting Information to the Vertex and Fragment Shaders -- Rendering the Scene -- Overview of the OpenGL ES 2.0 Shading Language -- Basic Data Types -- Vector Components -- Operators and Expressions -- Program Flow Control Statements.
Storage Qualifiers -- Reserved Variables -- Built-in Functions -- Overview of Vertex Shaders -- A Complex Vertex Shader -- Overview of Fragment or Pixel Shaders -- Overview of the Shader Class -- The Camera -- The 3D Object Mesh -- Mesh Vertex Data -- The MeshEx Class -- MeshEx Class Overview -- MeshEx Class Constructor -- MeshEx Class Error Debug Function -- MeshEx Class Mesh Draw Function -- Lighting -- Overview of Lighting -- The PointLight Class -- Building the Normal Matrix -- Lighting in the Vertex Shader -- Ambient -- Diffuse -- Specular -- Lighting in the Fragment Shader -- Ambient Lighting -- Diffuse Lighting -- Specular Lighting -- Final Fragment Color -- Materials -- The Material Class -- Materials in the Fragment Shader -- Textures -- Texture Magnification and Minification -- Texture Clamping and Repeating -- The Texture Class -- Textures in the Vertex Shader -- Textures in the Fragment Shader -- Summary -- Chapter 5: Motion and Collision -- Overview of Motion -- Linear Velocity and Linear Acceleration -- Newton's Laws of Motion -- Gravity -- Angular Velocity and Angular Acceleration -- Rotational Forces -- The Physics Class -- Hands-on Example: Linear Motion and Angular Motion Using Forces -- Creating a Four-Sided Textured Cube -- Modifying the Object3d Class -- Modifying the MyGLRenderer Class -- Overview of Collisions -- Collision Detection -- Modifying the MeshEx Class -- Modifying the Object3d Class -- Types of Collisions -- Modifying the Physics Class -- Calculating Collisions -- Modifying the Physics Class -- Hands-on Example: Collisions -- Modifying the MyGLRenderer Class -- Newton's Law of Gravity -- Drone Grid Case Study: Creating a Gravity Grid Using a Vertex Shader -- Modifying the Physics Class -- Modifying the MeshEx Class -- The GravityGridEx Class -- Creating the New Vertex Shader -- Main() Function of Shader.
Modifying the MyGLRenderer Class -- Summary -- Chapter 6: Game Environment -- Overview of Sounds on Android -- The Sound Class -- Modifying the Object3d Class -- Hands-on Example: Sounds -- Modifying the MyGLRenderer Class -- Overview of a Heads-Up Display -- Overview of Our HUD -- Creating the BillBoard Class -- Creating the BillBoardFont Class -- Modifying the Texture Class -- Creating the BillBoardCharacterSet Class -- Creating the HUDItem Class -- Creating the HUD Class -- Modifying the Object3d Class -- Drone Grid Case Study: Creating the HUD -- Modifying the MyGLRenderer Class -- Overview of Persistent Data -- Modifying the Orientation Class -- Modifying the Physics Class -- Modifying the Object3d Class -- Hands-on Example: Saving Persistent Data -- Modifying the MyGLRenderer Class -- Modifying the MyGLSurfaceView Class -- Modifying the MainActivity Class -- Summary -- Chapter 7: Drone Grid Case Study: Creating the Player -- Creating the Player Graphic -- Creating the Mesh Class -- Modifying the Object3d Class -- Modifying Other Classes That Use the Object3d Class -- Creating the Pyramid Class -- Creating the PowerPyramid Class -- Creating the Player's Viewpoint and Input -- Modifying the MyGLRenderer Class -- Modifying the MyGLSurfaceView Class -- Creating Player Weapons and Ammunition -- Creating the Explosions -- Creating the PolyParticleEx Class -- Creating the SphericalPolygonExplosion Class -- Modifying the Object3d Class -- Creating Game Object Statistics -- Creating the Stats Class -- Modifying the Object3d Class -- Hands-on Example: Target Shooting! -- Creating the Player -- Creating the Player's Weapon -- Processing Collisions -- Modifying the onDrawFrame() Function -- Summary -- Chapter 8: Drone Grid Case Study: Creating the Enemies -- Creating Arena Objects -- Overview of Artificial Intelligence -- Creating the Tank Enemy.
Creating the Tank Graphic -- Creating the Tank State -- Creating Vehicle Commands -- Creating the Tank State to Process Commands -- Creating the Vehicle Steering Class -- Creating the Tank's Patrol/Attack State -- Creating the Tank Finite State Machine -- Creating the Driver for the Tank -- Modifying the Physics Class -- Modifying the Object3d Class -- Creating the Tank Class -- Hands-on Example: Arena Objects and Tanks -- Modifying the MyGLRenderer Class -- Summary -- Chapter 9: Drone Grid Case Study: The User Interface -- Creating the Main Menu System -- The MenuItem Class -- The MainMenu Class -- Creating the High Score Table -- The HighScoreEntry Class -- The HighScoreTable Class -- Creating the High Score Entry System -- Hands-on Example: Demonstrating the User Interface -- Modifying the MyGLRenderer Class -- Summary -- Chapter 10: The Final Drone Grid Game -- Organizing and Controlling Groups of Enemies -- The ArenaObjectSet Class -- The TankFleet Class -- The GamePlayController Class -- Saving and Loading the Game State -- Modifying the MainActivity Class -- Modifying the MyGLRenderer Class -- Adding in the Game Over Game State -- Hands-on Example: The Drone Grid Game -- Modifying the MyGLRenderer Class -- Summary -- Chapter 11: The Android Native Development Kit (NDK) -- NDK Overview -- NDK System Requirements -- Android Platform Compatibility -- Installing the Android NDK -- Ways to Use the Android NDK -- Java Native Interface Overview -- The Java Interface Pointer -- Loading and Linking Native C/C++ Methods -- Naming Native Functions -- Native Function Parameters -- C vs. C++ Native Function Formats -- Native Types -- Reference Types -- JNI Signature Types -- Calling Native Code from Java and Accessing Java Methods from Native Code -- JNI Functions -- Android JNI Makefile -- Hands-on Example: "Hello World from JNI and Native Code ".
Modifying the MyGLRenderer Class.
Android (Electronic resource)
Android (Electronic resource)
Computer games-Programming.
Application software.
Game Development.
Computer Applications.