OpenGL Game Development By Example
eBook - ePub

OpenGL Game Development By Example

Robert Madsen, Stephen Madsen

Share book
  1. 340 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

OpenGL Game Development By Example

Robert Madsen, Stephen Madsen

Book details
Book preview
Table of contents
Citations

About This Book

Design and code your own 2D and 3D games efficiently using OpenGL and C++

About This Book

  • Create 2D and 3D games completely, through a series of end-to-end game projects
  • Learn to render high performance 2D and 3D graphics using OpenGL
  • Implement a rudimentary game engine using step-by-step code

Who This Book Is For

If you are a prospective game developer with some experience using C++, then this book is for you. Both prospective and experienced game programmers will find nuggets of wisdom and practical advice as they learn to code two full games using OpenGL, C++, and a host of related tools.

What You Will Learn

  • Set up your development environment in Visual Studio using OpenGL
  • Use 2D and 3D coordinate systems
  • Implement an input system to handle the mouse and the keyboard
  • Create a state machine to handle complex changes in the game
  • Load, display, and manipulate both 2D and 3D graphics
  • Implement collision detection and basic physics
  • Discover the key components needed to complete a polished game
  • Handle audio files and implement sound effects and music

In Detail

OpenGL is one of the most popular rendering SDKs used to develop games. OpenGL has been used to create everything from 3D masterpieces running on desktop computers to 2D puzzles running on mobile devices. You will learn to apply both 2D and 3D technologies to bring your game idea to life.

There is a lot more to making a game than just drawing pictures and that is where this book is unique! It provides a complete tutorial on designing and coding games from the setup of the development environment to final credits screen, through the creation of a 2D and 3D game.

The book starts off by showing you how to set up a development environment using Visual Studio, and create a code framework for your game. It then walks you through creation of two games–a 2D platform game called Roboracer 2D and a 3D first-person space shooter game–using OpenGL to render both 2D and 3D graphics using a 2D coordinate system. You'll create sprite classes, render sprites and animation, and navigate and control the characters. You will also learn how to implement input, use audio, and code basic collision and physics systems. From setting up the development environment to creating the final credits screen, the book will take you through the complete journey of creating a game engine that you can extend to create your own games.

Style and approach

An easy-to-follow guide full of code examples to illustrate every concept and help you build a 2D and 3D game from scratch, while learning the key tools that surround a typical OpenGL project.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is OpenGL Game Development By Example an online PDF/ePUB?
Yes, you can access OpenGL Game Development By Example by Robert Madsen, Stephen Madsen in PDF and/or ePUB format, as well as other popular books in Informatik & Programmierung von Spielen. We have over one million books available in our catalogue for you to explore.

Information

Year
2016
ISBN
9781783288199

OpenGL Game Development By Example


Table of Contents

OpenGL Game Development By Example
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Building the Foundation
Introducing the development environment
A quick look at Visual Studio
Start screen
The Solution Explorer panel
The Standard Toolbar panel
The code window
The output window
Starting your project
The game loop
The game structure
Initialization
The game loop
Shutdown
Creating the game structure
Port of access
The Windows message loop
Introducing OpenGL
What is OpenGL?
The other GL
Downloading OpenGL
Adding OpenGL to the project
Linking to the OpenGL library
Summary
2. Your Point of View
Plotting your revenge
The OpenGL coordinate system
Making your point
Understanding the code
Header files
Initializing OpenGL
The main entry point
The update function
Drawing the points
Running the program
Stretching your point
Getting primitive
A triangle by any other name
A primitive example
From triangles to models
Introducing textures
Using textures to fill the triangles
A matter of reference
Hanging out in the quad
Coding the quad
Rendering a texture
Loading the texture
Texture wrapping
Creating a textured quad
Putting the pieces together
Summary
3. A Matter of Character
Spritely speaking
Sprites versus non-sprites
Flipbook animation
Framed animation
Creating sprites
Working with PNGs
Linking to the SOIL library
Including the SOIL header file
Opening an image file
Coding a sprite class
Creating sprite frames
Saving each frame
Loading a sprite from individual textures
Creating a sprite sheet
Loading a sprite sheet
Loading our sprites
Rendering
Adding a render to the game loop
Implementing the main Render function
Implementing Render in the Sprite class
UV mapping
One more detail
A moving example
Adding update to the game loop
Implementing the main Update call
Implementing Update in the Sprite class
Character movement
Using delta time
Calculating delta time
Flipping
Scrolling the background
Using an atlas
Summary
4. Control Freak
A penny for your input
The keyboard input
Using the mouse
Touch
Other inputs
Someone is listening
The WndProc event listener
Handling the message queue
Handling mouse and keyboard inputs
Creating the Input class
Virtual key codes
Querying for input
Implementing the Input class
Adding input to the game loop
Processing our input
Changes to the Sprite class
Graphical User Interface
Creating a button
Enhancing the Input class
Adding UI elements to the list
Checking each UI element
Pushing your buttons
Adding our pauseButton
State management
Creating a state manager
Pausing the game
Summary
5. Hit and Run
Out of bounds!
Getting anchored
Collision rectangles
Embedding
Fixing the background
Collideables
Ready to score
A friend indeed
Time to spawn
Circular collision detection
The Pythagorean Theorem
Adding the circular collision code
Why use circular collision detection?
Wiring in the collision detection
Rectangular collision detection
The enemy within
Spawning the enemy
Adding the rectangular collision code
Wiring continued
Summary
6. Polishing the Silver
The state of the game
State machines
Why do we need a state machine?
Planning for state
Defining the new state
Implementing the state machine
Making a splash
Creating the splash screen
Defining the splash screen
Loading our resources
What's on the menu?
Creating the menu
Defining the menu buttons
Getting some credit
Creating the credits screen
Getting back to the main menu
Working with fonts
Creating the font
Drawing text
Wiring in the font support
Level up!
Displaying the score
Game progression
Defining game levels
Game stats
The next level screen
Continuing the game
Game over
The game over screen
Replaying the game
Summary
7. Audio Adrenaline
Bits and bytes
A sound by any other name
Making noise
Revving up your engine
Accessing the FMOD .dll file
Linking to the library
Point to the include files
Initializing FMOD
Virtual channels
Channel priority
Bleeps and bloops
Sound effects
Setting up the sounds
Playing sounds
UI feedback
The sound of music
Cleaning up the house
Release sprites
Release input
Releasing fonts
Releasing audio
Summary
8. Expanding Your Horizons
Into the third dimension!
Simulating 3D
Real 3D
3D Coordinate Systems
The camera
Remember those home movies?
Steady as she goes!
The viewport
Entering the matrix
Vectors
Combining vectors
Identity matrix
Coding in 3D
Creating the project
Retrieving OpenGL files
Linking projects to OpenGL libraries
Setting up the OpenGL window
Including header files
Defining global variables
Creating a function to create the OpenGL window
Sizing the OpenGL window
Initializing the OpenGL window
Creating a function to remove the OpenGL window
Creating the OpenGL window
Creating the Windows event handler
The Game loop
The finale
Summary
9. Super Models
New Space
A computer in a computer
Drawing your weapons
Getting primitive
Drawing primitives
Making your point
Gl_Points
Getting in line
Gl_Lines
Gl_Line_Strip
Gl_Line_Loop
Triangulation
Gl_Triangles
Gl_Triangle_Strip
Gl_Triangle_Fan
Being square
Gl_Quads
Gl_Quad_Strip
Saving face
Back to Egypt
A modeling career
Blending in
Blender overview
Building your spaceship
Exporting the object
Getting loaded
Summary
10. Expanding Space
Creation 101
Preparing the project
Loading game objects
The Mod...

Table of contents