Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
OpenGL Game Development By Example

You're reading from   OpenGL Game Development By Example Design and code your own 2D and 3D games efficiently using OpenGL and C++

Arrow left icon
Product type Paperback
Published in Mar 2016
Publisher
ISBN-13 9781783288199
Length 340 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
 Madsen Madsen
Author Profile Icon Madsen
Madsen
Arrow right icon
View More author details
Toc

Table of Contents (19) Chapters Close

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
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images