C++ Game Development By Example
eBook - ePub

C++ Game Development By Example

Learn to build games and graphics with SFML, OpenGL, and Vulkan using C++ programming

Siddharth Shekar

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

C++ Game Development By Example

Learn to build games and graphics with SFML, OpenGL, and Vulkan using C++ programming

Siddharth Shekar

Book details
Book preview
Table of contents

About This Book

Explore modern game programming and rendering techniques to build games using C++ programming language and its popular libraries

Key Features

  • Learn how you can build basic 2D and complex 3D games with C++
  • Understand shadows, texturing, lighting, and rendering in 3D game development using OpenGL
  • Uncover modern graphics programming techniques and GPU compute methods using the Vulkan API

Book Description

Although numerous languages are currently being used to develop games, C++ remains the standard for fabricating expert libraries and tool chains for game development. This book introduces you to the world of game development with C++.

C++ Game Development By Example starts by touching upon the basic concepts of math, programming, and computer graphics and creating a simple side-scrolling action 2D game. You'll build a solid foundation by studying basic game concepts such as creating game loops, rendering 2D game scenes using SFML, 2D sprite creation and animation, and collision detection. The book will help you advance to creating a 3D physics puzzle game using modern OpenGL and the Bullet physics engine. You'll understand the graphics pipeline, which entails creating 3D objects using vertex and index buffers and rendering them to the scene using vertex and fragment shaders. Finally, you'll create a basic project using the Vulkan library that'll help you get to grips with creating swap chains, image views, render passes, and frame buffers for building high-performance graphics in your games.

By the end of this book, you'll be ready with 3 compelling projects created with SFML, the Vulkan API, and OpenGL, and you'll be able take your game and graphics programming skills to the next level.

What you will learn

  • Understand shaders and how to write a basic vertex and fragment shader
  • Build a Visual Studio project and add SFML to it
  • Discover how to create sprite animations and a game character class
  • Add sound effects and background music to your game
  • Grasp how to integrate Vulkan into Visual Studio
  • Create shaders and convert them to the SPIR-V binary format

Who this book is for

If you're a developer keen to learn game development with C++ or get up to date with game development, this book is for you. Some knowledge of C++ programming is assumed.

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 C++ Game Development By Example an online PDF/ePUB?
Yes, you can access C++ Game Development By Example by Siddharth Shekar in PDF and/or ePUB format, as well as other popular books in Computer Science & Programming in C++. We have over one million books available in our catalogue for you to explore.



Section 1: Basic Concepts

This section covers some basic concepts of C++ game development. We need to have a good understanding of math, programming, and computer graphics to get ready for the later sections in the book.
The following chapters are in this section:
Chapter 1C++ Concepts
Chapter 2Mathematics and Graphics Concepts

C++ Concepts

In this chapter, we will explore the basics of writing a C++ program. Here, we will cover just enough to wrap our heads around the capabilities of the C++ programming language. This will be required to understand the code used in this book.
To run the examples, use Visual Studio 2017. You can download the community version for free at https://visualstudio.microsoft.com/vs/:
The topics covered in this chapter are as follows:
  • Program basics
  • Variables
  • Operators
  • Statements
  • Iteration
  • Functions
  • Arrays and pointers
  • Struct and Enum
  • Classes and inheritance

Program basics

C++ is a programming language, but what exactly is a program? A program is a set of instructions executed in sequence to give a desired output.
Let's look at our first program:
#include <iostream> // Program prints out "Hello, World" to screen int main() { std::cout<< "Hello, World."<<std::endl; return 0; } 
We can look at this code line by line.
The hash (#) include is used when we want to include anything that is using valid C++ syntax. In this case, we are including a standard C++ library in our program. The file we want to include is then specified inside the <> angle brackets. Here, we are including a file called iostream.h. This file handles the input and output of data to the console/screen.
On the second line, the // double slash marks the initiation of a code comment. Comments in code are not executed by the program. They are mainly to tell the person looking at the code what the code is currently doing. It is good practice to comment your code so that when you look at code you wrote a year ago, you will know what the code does.
Basically, main() is a function. We will cover functions shortly, but a main function is the first function that is executed in a program, also called the entry point. A function is used to perform a certain task. Here, the printing of Hello, World is tasked to the main function. The contents that need to be executed must be enclosed in the curly brackets of the function. The int preceding the main() keyword suggests that the function will return an integer. This is why we have returned 0 at the end of the main function, suggesting that the program can be executed and can terminate without errors.
When we want to print out something to the console/screen, we use the std::cout (console out) C++ command to send something to the screen. Whatever we want to send out should start and end with the output operator, <<. Furthermore, <<std::endl is another C++ command, which specifies the end of a era line and that nothing else should be printed on the line afterward. We have to use the prefix before std:: to tell C++ that we are using the standard namespace with the std namespace. But why are namespaces necessary? We need namespaces because anyone can declare a variable name with std. How would the compiler differentiate between the two types of std? For this, we have namespaces to differentiate between the two.
Note that the two lines of code we have written in the main function have a semicolon (;) at the end of each line. The semicolon tells the compiler that this is the end of the instructions for that line of code so that the program can stop reading when it gets to the semicolon and go to the next line of instruction. Consequently, it is important to add a semicolon at the end of each line of instruction as it is mandatory.
The two lines of code we wrote before can be written in one line as follows:
std::cout<< "Hello, World."<<std::endl;return 0; 
Even though it is written in a single line, for the compiler, there are two instructions with both instructions ending with a semicolon.
The first instruction is to print out Hello, World to the console, and the second instruction is to terminate the program without any errors.
It is a very common mistake to forget semicolons, and it happens to beginners as well as experienced programmers every now and then. So it's good to keep this in mind, for when you encounter your first set of compiler errors.
Let's run this code in Visual Studio using the following steps:
  1. Open up Visual Studio and create a new project by going to File | New | Project.
  2. On the left-hand side, select Visual C++ and then Other. For the Project Type, select Empty Project. Give this project a Name. Visual Studio automatically names the first project MyFirstProject. You can name it whatever you like.
  3. Select the Location that you want the project to be saved in:
  1. Once the project is created, in Solution Explorer, right-click and select Add | New Item:
  1. Create a new .cpp file, called the Source file:
  1. Copy the code at the start of the section into the Source.cpp file.
  2. Now press the F5 key on the keyboard or press the Local Window Debugger button at the top of the window to run the application.
  3. A popup of the console should appear upon running the program. To make the console stay so that we can see what is happening, add the following highlighted lines to the code:
#include <iostream> 
#include <conio.h>
// Program prints out "Hello, World" to screen int main() { std::cout << "Hello, World." << std::endl;
return 0; }
What _getch() does is it stalls the program and waits for a character input to the console without printing the character to the console. So, the program will wait for some input and then close the console.
To see what is printed to the console, we just add it for convenience. To use this function, we need to include the conio.h header.
  1. When you run the project again, you will see the following output:
Now that we know how to run a basic program, let's look at the different data types that are included in C++.


A variable is used to store a value. Whatever value you store in a variable is stored in the memory location associated with that memory location. You assign a value to a variable with the following syntax.
We can first declare a variable type by specifying a type and then the variable name:
Type variable;
Here, type is the variable typ...

Table of contents