OpenGL Game Development By Example
eBook - ePub

OpenGL Game Development By Example

Robert Madsen, Stephen Madsen

Buch teilen
  1. 340 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

OpenGL Game Development By Example

Robert Madsen, Stephen Madsen

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

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.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist OpenGL Game Development By Example als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu OpenGL Game Development By Example von Robert Madsen, Stephen Madsen im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Programmierung von Spielen. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
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...

Inhaltsverzeichnis