Index
A
- alpha channel
- about / Working with PNGs
- ambient light
- about / Let there be light!
- anatomy, _tmain function
- glutCreateWindow() function / The main entry point
- glutInitWindowSize() function / The main entry point
- glutInitWindowPosition() function / The main entry point
- glutDisplayFunc() function / The main entry point
- initGL() function / The main entry point
- glutMainLoop() function / The main entry point
- return 0 function / The main entry point
- animation
- implementing / A moving example
- update, adding to game loop / Adding update to the game loop
- Update function, implementing / Implementing the main Update call
- Update function, implementing in Sprite class / Implementing Update in the Sprite class
- character movement, implementing / Character movement
- delta time, using / Using delta time
- delta time, calculating / Calculating delta time
- texture, flipping / Flipping
- background, scrolling / Scrolling the background
- artificial intelligence (AI)
- about / AI
- asteroid slalom
- implementing / Asteroid slalom
- collision detection, setting up / Setting up collision detection
- collision, implementing / Turning on collision
- atlas
- using / Using an atlas
- atlasing
- about / Using an atlas
- Audacity
- about / Making noise
- audio
- about / Bits and bytes
- file formats / A sound by any other name
- sounds, creating / Making noise
- releasing / Releasing audio
B
- Blender / From triangles to models
- about / Blending in
- installing / Blending in
- URL / Blending in
- overview / Blender overview
- boundary checking
- about / Out of bounds!
- anchor point, determining / Getting anchored
- collision rectangle, defining / Collision rectangles
- embedding / Embedding
- background, defining / Fixing the background
C
- callback function
- about / The WndProc event listener
- camera
- about / The camera
- controlling / Remember those home movies?
- fixed camera, using / Steady as she goes!
- viewport / The viewport
- Central Processing Unit (CPU) / What is OpenGL?
- circular collision detection
- implementing / Circular collision detection
- Pythagorean Theorem, using / The Pythagorean Theorem
- coding / Adding the circular collision code
- advantages / Why use circular collision detection?
- wiring / Wiring in the collision detection
- cleanup, of resources
- about / Cleaning up the house
- sprites, releasing / Release sprites
- input, releasing / Release input
- fonts, releasing / Releasing fonts
- audio, releasing / Releasing audio
- code
- header files / Header files
- main entry point / The main entry point
- update function / The update function
- points, drawing / Drawing the points
- collideables
- about / Collideables
- score, creating / Ready to score
- sprite, adding for pickup / A friend indeed
- spawn timer, setting / Time to spawn
- column major order
- about / Combining vectors
- composite / Putting the pieces together
- Cozendey
- URL / Making noise
- credits screen
- adding / Getting some credit
- creating / Creating the credits screen
- betting back, to main menu / Getting back to the main menu
D
- 2D, in 3D world
- interface, creating / Mixing things up
- state, saving / The saving state
- push / Push and pop
- pop / Push and pop
- state, rendering / Two state rendering
- 3D Coordinate Systems
- about / 3D Coordinate Systems
- 3D game
- creating / Coding in 3D
- project, creating / Creating the project
- OpenGL files, retrieving / Retrieving OpenGL files
- projects, linking to OpenGL libraries / Linking projects to OpenGL libraries
- 3D model
- about / Real 3D
- 3D object
- creating / A modeling career
- creating, with Blender / Blending in
- spaceship, building / Building your spaceship
- exporting / Exporting the object
- loading / Getting loaded
- 3D space
- working on / New Space
- delta time
- using / Using delta time
- calculating / Calculating delta time
- development environment
- about / Introducing the development environment
- Visual Studio / A quick look at Visual Studio
- project, starting with / Starting your project
- DirectX / The other GL
- versus OpenGL / Combining vectors
- drawPoints function / Drawing the points
E
- embedding
- about / Getting anchored
- EndGame function / The Windows message loop
- event driven operating system
- about / Someone is listening
F
- FILO stack
- about / Push and pop
- fixed camera
- using / Steady as she goes!
- flipbook animation
- about / Flipbook animation
- flipping, texture
- about / Flipping
- FMOD
- about / Revving up your engine
- URL / Revving up your engine
- .dll files, accessing / Accessing the FMOD .dll file
- linking, to library / Linking to the library
- header files, including / Point to the include files
- initializing / Initializing FMOD
- virtual channels / Virtual channels
- channel priority / Channel priority
- FMOD API
- about / Revving up your engine
- fonts
- working with / Working with fonts
- creating / Creating the font
- text, drawing / Drawing text
- font support, implementing / Wiring in the font support
- releasing / Releasing fonts
- framed animation
- about / Framed animation
- frames per second (fps) / The game loop
G
- game
- plotting / Plotting your revenge
- game engine / The game structure
- game level
- implementing / Level up!
- score, displaying / Displaying the score
- game progression, adding / Game progression
- defining / Defining game levels
- game stats, displaying / Game stats
- next level screen, implementing / The next level screen
- game, continuing / Continuing the game
- game loop
- about / The game loop
- setting up / Setting up the game loop
- GameLoop function / The Windows message loop
- game objects, SpaceRacer3D
- loading / Loading game objects
- Model class header, creating / The Model class header
- Model class, implementing / Implementing the Model class
- game over screen
- adding / Game over
- creating / The game over screen
- game, replaying / Replaying the game
- game physics
- about / Game physics
- game state
- defining / The state of the game
- state machine / State machines
- state, planning / Planning for state
- new state, defining / Defining the new state
- update function / Implementing the state machine
- render function / Implementing the state machine
- input function / Implementing the state machine
- state machine, adding / A matter of state, Adding the state machine
- splash screen, loading / Getting ready for a splash
- game structure
- about / The game structure
- initialization / Initialization
- game loop / The game loop
- shutdown / Shutdown
- creating / Creating the game structure
- port of access / Port of access
- Windows message loop / The Windows message loop
- GIMP
- URL / Creating sprites
- glEnd() function / Drawing the points
- glPopMatrix() command
- about / Push and pop
- glPushMarix() command
- about / Push and pop
- GlueIt
- URL / Creating a sprite sheet
- GLUT files
- URL, for download / Header files
- graphical user interface
- about / Graphical User Interface
- button, creating / Creating a button
- Input class, enhancing / Enhancing the Input class
- UI elements, adding / Adding UI elements to the list
- UI element, checking / Checking each UI element
- buttons, pushing / Pushing your buttons
- buttons, adding / Adding our pauseButton
- graphics bus
- about / A computer in a computer
- Graphics Processing Unit / A computer in a computer
- transformation / A computer in a computer
- lighting / A computer in a computer
- primitives / A computer in a computer
- projection / A computer in a computer
- clipping / A computer in a computer
- rasterization / A computer in a computer
- shading / A computer in a computer
- graphics card
- processing / A computer in a computer
- structure / A computer in a computer
- Graphics Processing Unit (GPU) / Shutdown, What is OpenGL?
H
- header files, code
- stdafx.h / Header files
- windows.h / Header files
- glut.h / Header files
I
- identity matrix
- about / Identity matrix
- initGL function / Initializing OpenGL
- input
- about / A penny for your input
- keyboard input / The keyboard input
- mouse, using / Using the mouse
- touch / Touch
- other inputs / Other inputs
- implementing / Someone is listening
- WndProc event listener, using / The WndProc event listener
- message queue, handling / Handling the message queue
- mouse, handling / Handling mouse and keyboard inputs
- keyboard inputs, handling / Handling mouse and keyboard inputs
- Input class, creating / Creating the Input class
- virtual key codes / Virtual key codes
- querying / Querying for input
- Input class, implementing / Implementing the Input class
- adding, to game loop / Adding input to the game loop
- processing / Processing our input
- Sprite class, modifying / Changes to the Sprite class
- releasing / Release input
- Integrated Development Environments (IDEs) / Introducing the development environment
K
- keyboard input
- about / The keyboard input
L
- LAME
- URL / Making noise
- left-hand coordinate system
- about / 3D Coordinate Systems
- lights
- setting up / Let there be light!
- light source, defining / Defining a light source
- line
- Gl_Lines / Gl_Lines
- Gl_Line_Strip / Gl_Line_Strip
- Gl_Line_Loop / Gl_Line_Loop
- lossless compression algorithm
- about / Working with PNGs
M
- matrix
- about / Entering the matrix
- vectors / Vectors
- vectors, combining / Combining vectors
- identity matrix / Identity matrix
- Maya / From triangles to models
- menu
- adding / What's on the menu?
- creating / Creating the menu
- buttons, defining / Defining the menu buttons
- mouse
- using / Using the mouse
- music
- adding / The sound of music
N
- Non-player Characters (NPCs)
- about / AI
- non-sprites
- versus sprites / Sprites versus non-sprites
O
- OpenGL
- about / Introducing OpenGL, What is OpenGL?
- overview / What is OpenGL?
- DirectX / The other GL
- downloading / Downloading OpenGL
- URL / Downloading OpenGL
- adding, to project / Adding OpenGL to the project
- linking to / Linking to the OpenGL library
- coordinate system / The OpenGL coordinate system
- initializing / Initializing OpenGL
- versus DirectX / Combining vectors
- matrices / Sizing the OpenGL window
- OpenGL coordinate system
- about / The OpenGL coordinate system
- point, creating / Making your point
- code, using / Understanding the code
- program, running / Running the program
- point, stretching / Stretching your point
- OpenGL environment
- setting up / Setting up the OpenGL environment
- OpenGL files
- retrieving / Retrieving OpenGL files
- OpenGL libraries
- projects, linking to / Linking projects to OpenGL libraries
- OpenGL window
- setting up / Setting up the OpenGL window
- header files, including / Including header files
- global variables, defining / Defining global variables
- function, creating / Creating a function to create the OpenGL window
- sizing / Sizing the OpenGL window
- initializing / Initializing the OpenGL window
- removing / Creating a function to remove the OpenGL window
- creating / Creating the OpenGL window
- event handler, creating / Creating the Windows event handler
- Game loop, adding / The Game loop
- game, executing / The finale
- orthographic projection
- about / Sizing the OpenGL window
P
- parallax
- about / Simulating 3D
- perspective
- about / Simulating 3D
- perspective projection
- about / Sizing the OpenGL window
- pickups
- about / Collideables
- playground
- creating / A fun framework
- Visual Studio project, setting up / Setting up the Visual Studio project
- Windows environment, setting up / Setting up the Windows environment
- OpenGL environment, setting up / Setting up the OpenGL environment
- game loop, setting up / Setting up the game loop
- PNGs
- about / Working with PNGs
- point
- creating / Making your point
- Gl_Points / Gl_Points
- point sprites
- about / Gl_Points
- pop
- using / Push and pop
- powerups
- about / Collideables
- primitive
- about / Getting primitive
- geodesic dome / A triangle by any other name
- example / A primitive example
- triangles, converting to models / From triangles to models
- primitives
- point / Getting primitive
- line / Getting primitive, Getting in line
- triangle / Getting primitive, Triangulation
- quad / Getting primitive, Being square
- drawing / Drawing primitives
- point, creating / Making your point
- project / Linking to the OpenGL library
- push
- using / Push and pop
- Pythagorean Theorem
- using / The Pythagorean Theorem
Q
- quad
- about / Hanging out in the quad, Being square
- coding / Coding the quad
- Gl_Quads / Gl_Quads
- Gl_Quad_Strip / Gl_Quad_Strip
R
- real 3D
- about / Real 3D
- rectangular collision detection
- implementing / Rectangular collision detection
- enemy, creating / The enemy within
- enemy, spawning / Spawning the enemy
- coding / Adding the rectangular collision code
- wiring / Wiring continued
- render
- about / A computer in a computer
- rendering
- about / Rendering
- render, adding to game loop / Adding a render to the game loop
- Render function, implementing / Implementing the main Render function
- Render function, implementing in Sprite class / Implementing Render in the Sprite class
- UV mapping / UV mapping
- GetCurrentFrame function, implementing / One more detail
- rendering library / The game structure
- render process / The game structure
- right-hand coordinate system
- about / 3D Coordinate Systems
- row major order
- about / Combining vectors
S
- score
- displaying / Displaying the score
- Simple OpenGL Image Library (SOIL)
- about / Working with PNGs
- URL / Working with PNGs
- advantages / Working with PNGs
- linking / Linking to the SOIL library
- SOIL header file, including / Including the SOIL header file
- image file, opening / Opening an image file
- skybox
- defining / The skybox
- solution / Linking to the OpenGL library
- sound effects
- need for / Bleeps and bloops
- adding / Sound effects
- setting up / Setting up the sounds
- sounds, playing / Playing sounds
- used, for UI feedback / UI feedback
- SpaceRacer3D
- loading / Creation 101
- project, preparing / Preparing the project
- game objects, loading / Loading game objects
- game code, modifying / Modifying the game code
- game code, reusing / Taking control
- input, implementing / Implementing input
- splash screen
- adding / Making a splash
- creating / Creating the splash screen
- defining / Defining the splash screen
- resources, loading / Loading our resources
- loading / Getting ready for a splash
- sprites
- about / Spritely speaking
- versus non-sprites / Sprites versus non-sprites
- flipbook animation / Flipbook animation
- framed animation / Framed animation
- creating / Creating sprites
- PNGs / Working with PNGs
- sprite class, creating / Coding a sprite class
- frames, creating / Creating sprite frames
- frames, saving / Saving each frame
- loading, from individual textures / Loading a sprite from individual textures
- sprite sheet, creating / Creating a sprite sheet
- sprite sheet, loading / Loading a sprite sheet
- loading / Loading our sprites
- releasing / Release sprites
- stack
- about / Push and pop
- StartGame function / The Windows message loop
- state machine
- about / State machines
- advantages / Why do we need a state machine?
- implementing / Implementing the state machine
- adding / Adding the state machine
- state management
- about / State management
- state manager, creating / Creating a state manager
- game, pausing / Pausing the game
T
- texture
- flipping / Flipping
- Texture Atlas Generator
- URL / Using an atlas
- texture mapping
- about / Texture mapping
- texture, loading / Loading the texture
- cube, rendering / Rendering the cube
- performing / Mapping operations
- textures
- about / Introducing textures
- used, for filling triangles / Using textures to fill the triangles
- reference (pivot point) / A matter of reference
- quad / Hanging out in the quad
- quad, coding / Coding the quad
- rendering / Rendering a texture
- loading / Loading the texture
- wrapping / Texture wrapping
- quad, creating / Creating a textured quad
- three dimension (3D)
- implementing / Into the third dimension!
- simulating / Simulating 3D
- real 3D / Real 3D
- 3D Coordinate Systems / 3D Coordinate Systems
- TinyXML
- URL / Using an atlas
- touch
- about / Touch
- transformations
- about / Combining vectors
- translation
- about / Combining vectors
- translation matrix
- about / Combining vectors
- triangle
- about / Triangulation
- Gl_Triangles / Gl_Triangles
- Gl_Triangle_Strip / Gl_Triangle_Strip
- Gl_Triangle_Fan / Gl_Triangle_Fan
U
- UI feedback
- sound effects, used / UI feedback
- Unity Asset Store
- about / Making noise
- URL / Making noise
- user interface
- creating / Creating the user interface
- text system, defining / Defining the text system
- textures, defining / Defining textures
- Render function, implementing / Wiring in render, update, and the game loop
- Update function, implementing / Wiring in render, update, and the game loop
- GameLoop function, implementing / Wiring in render, update, and the game loop
- UV mapping
- about / UV mapping
V
- vanishing point
- about / Simulating 3D
- vectors
- about / Vectors
- combining / Combining vectors
- velocity property
- about / Character movement
- viewport
- about / The viewport
- virtual channels
- about / Virtual channels
- priority / Channel priority
- virtual key codes
- about / Virtual key codes
- Visual Studio
- URL / Introducing the development environment
- about / Introducing the development environment, A quick look at Visual Studio
- options / Introducing the development environment
- start screen / Start screen
- Solution Explorer panel / The Solution Explorer panel
- Standard Toolbar panel / The Standard Toolbar panel
- code window / The code window
- output window / The output window
- Visual Studio 2013 Express for Windows Desktop / Introducing the development environment
- Visual Studio Express / Introducing the development environment
- Visual Studio project
- setting up / Setting up the Visual Studio project
W
- weapons
- drawing / Drawing your weapons
- primitives / Getting primitive
- face, saving / Saving face
- pyramid, creating / Back to Egypt
- Windows environment
- setting up / Setting up the Windows environment
- Windows Message (WM)
- about / The WndProc event listener