Muutke küpsiste eelistusi

E-raamat: Beginning Android 3D Game Development

  • Formaat: PDF+DRM
  • Ilmumisaeg: 18-Mar-2014
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781430265481
  • Formaat - PDF+DRM
  • Hind: 55,56 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 18-Mar-2014
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781430265481

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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.

 

About the Author xvii
About the Technical Reviewer xix
Acknowledgments xxi
Introduction xxiii
Chapter 1 Let's Meet the Android 1(28)
Overview of Android
1(1)
Overview of the Android SDK
1(13)
Android Software Development Kit (SDK) Requirements
2(1)
Android SDK Components Overview
2(4)
How to Set Up for Development
6(1)
Android Development Tools Integrated Development Environment (IDE) Overview
7(7)
Hands-on Example: Non-OpenGL ES Text "Hello World" Program
14(13)
Creating a New Android Project
14(6)
Running on an Android Emulator
20(3)
Running on an Actual Android Device
23(1)
The Main Source Code
24(1)
The Graphical Layout
25(2)
The Actual "Hello World" Data
27(1)
Summary
27(2)
Chapter 2 Java for Android 29(28)
Overview of the Java Language
29(1)
Java Comments
30(1)
Java Basic Data Types
30(1)
Arrays
30(1)
Data Modifiers
31(1)
Java Operators
31(2)
Arithmetic Operators
32(1)
Unary Operators
32(1)
Conditional Operators
32(1)
Bitwise and Bit Shift Operators
33(1)
Java Flow Control Statements
33(1)
Java Classes
34(1)
Packages and Classes
34(1)
Accessing Classes in Packages
34(1)
Java Interfaces
35(1)
Accessing Class Variables and Functions
35(1)
Java Functions
35(1)
Calling the Parent Function
36(1)
The Basic Android Java Program Framework
36(4)
Android Activity Life Cycle Overview
37(1)
Seeing the Activity Life Cycle in Action
38(2)
The Basic Android Java OpenGL Framework
40(5)
Basic Android OpenGL ES Framework for a Single-View OpenGL ES Application
40(2)
Basic Android OpenGL ES Framework for a Multiple View OpenGL ES Application
42(3)
Hands-on Example: A 3D OpenGL "Hello Droid" Example
45(11)
Importing Project Examples into Eclipse
45(1)
The MainActivity and MyGLSurfaceView Classes
45(2)
The MyGLRenderer Class
47(3)
Class Overview
50(1)
Experimenting with "Hello Droid"
51(5)
Summary
56(1)
Chapter 3 3D Math Review 57(24)
Vectors and Vector Operations
57(10)
What Is a Vector?
57(4)
Our Vector Class
61(1)
The Vector Magnitude
61(1)
Vector Normalization
62(1)
Vector Addition
62(1)
Vector Multiplication
63(2)
The Right Triangle
65(1)
Vector Dot Product
65(1)
Vector Cross Product
66(1)
Matrices and Matrix Operations
67(6)
What Is a Matrix?
67(1)
Built-in Android Matrix Class
68(1)
The Identity Matrix
68(1)
Matrix Transpose
68(1)
Matrix Multiplication
69(1)
Matrix Inverse
70(1)
Homogeneous Coordinates
70(1)
Using Matrices to Move Objects
71(1)
Using Matrices to Rotate Objects
71(1)
Using Matrices to Scale Objects
72(1)
Combining Matrices
72(1)
Hands-on Example: Manipulating Objects in 3D Space
73(7)
Building a 3D Object's Model Matrix
73(2)
Adding a Rotation to an Object
75(1)
Moving an Object in 3D Space
76(2)
Scaling an Object
78(2)
Summary
80(1)
Chapter 4 3D Graphics Using OpenGL ES 2.0 81(54)
Overview of OpenGL ES 2.0 on Android
81(10)
General Overview of OpenGL Object Rendering
82(3)
Specific Overview of the Rendering Procedure
85(6)
Overview of the OpenGL ES 2.0 Shading Language
91(6)
Basic Data Types
92(1)
Vector Components
92(1)
Operators and Expressions
93(1)
Program Flow Control Statements
94(1)
Storage Qualifiers
95(1)
Reserved Variables
96(1)
Built-in Functions
96(1)
Overview of Vertex Shaders
97(1)
A Complex Vertex Shader
97(1)
Overview of Fragment or Pixel Shaders
98(1)
Overview of the Shader Class
99(7)
The Camera
106(5)
The 3D Object Mesh
111(8)
Mesh Vertex Data
111(1)
The MeshEx Class
112(7)
Lighting
119(9)
Overview of Lighting
119(1)
The PointLight Class
120(2)
Building the Normal Matrix
122(1)
Lighting in the Vertex Shader
123(3)
Lighting in the Fragment Shader
126(2)
Materials
128(1)
The Material Class
128(1)
Materials in the Fragment Shader
128(1)
Textures
129(5)
Texture Magnification and Minification
130(1)
Texture Clamping and Repeating
130(1)
The Texture Class
131(3)
Textures in the Vertex Shader
134(1)
Textures in the Fragment Shader
134(1)
Summary
134(1)
Chapter 5 Motion and Collision 135(48)
Overview of Motion
135(6)
Linear Velocity and Linear Acceleration
135(2)
Newton's Laws of Motion
137(1)
Gravity
138(1)
Angular Velocity and Angular Acceleration
139(1)
Rotational Forces
140(1)
The Physics Class
141(5)
Hands-on Example: Linear Motion and Angular Motion Using Forces
146(3)
Creating a Four-Sided Textured Cube
146(1)
Modifying the Object3d Class
146(2)
Modifying the MyGLRenderer Class
148(1)
Overview of Collisions
149(11)
Collision Detection
150(1)
Modifying the MeshEx Class
150(3)
Modifying the Object3d Class
153(1)
Types of Collisions
154(1)
Modifying the Physics Class
155(3)
Calculating Collisions
158(2)
Modifying the Physics Class
160(1)
Hands-on Example: Collisions
160(3)
Modifying the MyGLRenderer Class
160(3)
Newton's Law of Gravity
163(1)
Drone Grid Case Study: Creating a Gravity Grid Using a Vertex Shader
164(18)
Modifying the Physics Class
164(1)
Modifying the MeshEx Class
164(1)
The GravityGridEx Class
165(9)
Creating the New Vertex Shader
174(4)
Modifying the MyGLRenderer Class
178(4)
Summary
182(1)
Chapter 6 Game Environment 183(38)
Overview of Sounds on Android
183(4)
The Sound Class
183(2)
Modifying the Object3d Class
185(2)
Hands-on Example: Sounds
187(3)
Modifying the MyGLRenderer Class
187(3)
Overview of a Heads-Up Display
190(17)
Overview of Our HUD
190(1)
Creating the BillBoard Class
190(3)
Creating the BillBoardFont Class
193(1)
Modifying the Texture Class
194(1)
Creating the BillBoardCharacterSet Class
195(4)
Creating the HUDItem Class
199(1)
Creating the HUD Class
200(6)
Modifying the Object3d Class
206(1)
Drone Grid Case Study: Creating the HUD
207(8)
Modifying the MyGLRenderer Class
207(8)
Overview of Persistent Data
215(1)
Modifying the Orientation Class
216(1)
Modifying the Physics Class
216(1)
Modifying the Object3d Class
216(1)
Hands-on Example: Saving Persistent Data
216(3)
Modifying the MyGLRenderer Class
216(2)
Modifying the MyGLSurfaceView Class
218(1)
Modifying the MainActivity Class
219(1)
Summary
219(2)
Chapter 7 Drone Grid Case Study: Creating the Player 221(46)
Creating the Player Graphic
221(6)
Creating the Mesh Class
221(1)
Modifying the Object3d Class
222(2)
Modifying Other Classes That Use the Object3d Class
224(1)
Creating the Pyramid Class
225(1)
Creating the PowerPyramid Class
226(1)
Creating the Player's Viewpoint and Input
227(4)
Modifying the MyGLRenderer Class
227(2)
Modifying the MyGLSurfaceView Class
229(2)
Creating Player Weapons and Ammunition
231(8)
Creating the Explosions
239(13)
Creating the PolyParticleEx Class
239(5)
Creating the SphericalPolygonExplosion Class
244(7)
Modifying the Object3d Class
251(1)
Creating Game Object Statistics
252(3)
Creating the Stats Class
252(2)
Modifying the Object3d Class
254(1)
Hands-on Example: Target Shooting!
255(11)
Creating the Player
255(3)
Creating the Player's Weapon
258(4)
Processing Collisions
262(1)
Modifying the onDrawFrame() Function
263(3)
Summary
266(1)
Chapter 8 Drone Grid Case Study: Creating the Enemies 267(54)
Creating Arena Objects
267(4)
Overview of Artificial Intelligence
271(2)
Creating the Tank Enemy
273(40)
Creating the Tank Graphic
273(1)
Creating the Tank State
274(3)
Creating Vehicle Commands
277(6)
Creating the Tank State to Process Commands
283(1)
Creating the Vehicle Steering Class
284(3)
Creating the Tank's Patrol/Attack State
287(9)
Creating the Tank Finite State Machine
296(4)
Creating the Driver for the Tank
300(3)
Modifying the Physics Class
303(2)
Modifying the Object3d Class
305(1)
Creating the Tank Class
306(7)
Hands-on Example: Arena Objects and Tanks
313(7)
Modifying the MyGLRenderer Class
313(7)
Summary
320(1)
Chapter 9 Drone Grid Case Study: The User Interface 321(32)
Creating the Main Menu System
321(5)
The MenuItem Class
321(2)
The MainMenu Class
323(3)
Creating the High Score Table
326(9)
The HighScoreEntry Class
326(1)
The HighScoreTable Class
327(8)
Creating the High Score Entry System
335(6)
Hands-on Example: Demonstrating the User Interface
341(11)
Modifying the MyGLRenderer Class
342(10)
Summary
352(1)
Chapter 10 The Final Drone Grid Game 353(40)
Organizing and Controlling Groups of Enemies
353(14)
The ArenaObjectSet Class
353(10)
The TankFleet Class
363(4)
The GamePlayController Class
367(9)
Saving and Loading the Game State
376(2)
Modifying the MainActivity Class
376(1)
Modifying the MyGLRenderer Class
376(2)
Adding in the Game Over Game State
378(3)
Hands-on Example: The Drone Grid Game
381(11)
Modifying the MyGLRenderer Class
382(10)
Summary
392(1)
Chapter 11 The Android Native Development Kit (NDK) 393(26)
NDK Overview
393(1)
NDK System Requirements
393(1)
Android Platform Compatibility
394(1)
Installing the Android NDK
394(2)
Ways to Use the Android NDK
396(1)
Java Native Interface Overview
396(7)
The Java Interface Pointer
397(1)
Loading and Linking Native C/C++ Methods
397(1)
Naming Native Functions
398(1)
Native Function Parameters
398(1)
C vs. C++ Native Function Formats
399(1)
Native Types
399(1)
Reference Types
399(1)
JNI Signature Types
400(1)
Calling Native Code from Java and Accessing Java Methods from Native Code
401(1)
JNI Functions
402(1)
Android JNI Makefile
403(1)
Hands-on Example: "Hello World from JNI and Native Code"
403(6)
Modifying the MyGLRenderer Class
408(1)
Hands-on Example: Adding Native Functions to the Drone Grid Game Case Study
409(8)
Calculating Gravity in Native Code
409(1)
Rotating Objects from Native Code
410(3)
Calculating the Reaction Force for a Collision from Native Code
413(4)
Summary
417(2)
Chapter 12 Publishing and Marketing Your Final Game 419(34)
Creating the Final Distribution File
419(6)
Testing the Distribution .apk File
425(5)
List of Android Marketplaces and Policies
430(3)
Google Play
430(1)
Amazon Appstore for Android
431(1)
Samsung Apps Store
431(1)
Aptoide
432(1)
Appitalism
432(1)
GetJar
432(1)
SlideMe
432(1)
Soc.lo Mall
433(1)
Your Own WebSite.Com
433(1)
List of Android Ad Networks
433(14)
AppFlood
433(2)
Appwiz
435(1)
LeadBolt
435(1)
AppBucks
435(2)
MobileCore
437(1)
AdMob
437(2)
StartApp
439(4)
Other Ad Network and Marketing-Related Companies
443(4)
List of Android Game Review Web Sites
447(4)
List of Other Helpful Sites for Android Developers
451(1)
Summary
451(2)
Index 453
Robert Chin has a bachelor of science degree?in computer engineering and is experienced in C/C++ and UnrealScript.?He has written 3D games in C/C++ using the DirectX and OpenGL graphics APIs for the Windows platform.?He has served as a Unreal UDK consultant and written UDK UnrealScript-based programs for clients, including an entire commercial game coded specifically for the iOS platform.