Beginning C++ Game Programming 3rd Edition

Get to grips with programming and game development techniques using C++ libraries and Visual Studio 2022 with this updated edition of the bestselling series.

See it on Amazon


New from the Blog

911, 2015

What is SFML and should I use it

First of all SFML is great and this is not a review about whether or not SFML is extremely cool or not. Trust me, it is extremely cool. This article will just explore what it can do, when it is best used and by whom. Also we will see who it is not for and what it should not be used for.
What SFML isn’t
Let’s quickly state was SFML is not. It is not an all-in-one solution for all your game […]

Latest Programming Tutorials

Kotlin Control Flow

Welcome to the fourth tutorial of our Kotlin course! In this tutorial, we’ll explore control flow structures in Kotlin. Control flow structures allow us to make decisions and repeat code […]

Overview of the Solidity Course using Remix IDE

These beginner Solidity tutorials will take you from having no prior programming experience to understanding Solidity in depth. These tutorials are designed for the Remix IDE, which is a popular […]

Game Development Projects

Coding a parallax scrolling background for Android

In this tutorial, we will see the tricks and the code required to achieve a parallax scrolling background effect. The parallax effect is when different layers of backgrounds are moved […]

Building a simple game engine in C++

In this tutorial project, we will build a fully working and functional but simple C++ game engine. All that the game engine will do is allow the player to control […]

Building a Simple Android 2D Scrolling Shooter

This tutorial game project introduces the concept of a viewport. This is the aspect of our game which handles which part of the game-world is drawn to the screen. First, […]

Building an Asteroids game in Unity



Welcome to the Asteroids arcade game project built in Unity. In this step-by-step guide, we will make a reasonably authentic clone of the classic arcade game. If you never had […]

Lights, sound and a bit more collision



To get us started, create a new Unity project called Sound & Vision. Be sure to set the 2D option, just as we have for all the projects in this […]

Unity UI & data persistence



Adding a Canvas and an EventSystem
Start a new project called UI & Data Persistence. As with all the projects so far, be sure to select the 2D option.

Right-click in the […]

Collisions and destroying objects in Unity



Preparing the scene and the game objects
First, we need to create a new Unity project. Call it Collisions and Deleting Objects and select the 2D option. Download all the following graphics […]

Spawning new objects in Unity



First, we need to create a new Unity project. Call it Spawning Objects and be sure to select the 2D option.

Download the bob.png graphic below by right-clicking it and selecting […]

Adding a controllable player object in Unity 2d



Fire up Unity and log in to your account. Click New to start a new Unity project. Name your project Controllable Spaceship and Select the 2d option.

Now click the Create […]

Unity & C# part 2



Creating a new Unity project
Start Unity and click on New Project. Enter C# & Unity part 2 in the Project Name field and choose the location where you want to store […]

Unity & C# part 1



Start Unity and click on New Project. Enter C# & Unity part 1 in the Project Name field and choose the location where you want to store the project files […]

Setting up Unity 5




Click the FREE DOWNLOAD button.

Click Download Installer.

This is a really small download. Once it is complete run the program. If you are prompted Do you want to allow the following […]

Beginner Programming Tutorials

Coding a simple text adventure in C++

As the last tutorial before we install a graphics library I thought a simple example that involves a game loop but no graphics would be worth while. Here’s a simple […]

Organizing your Game Data with C++ Maps

Maps are a great feature of C++ they allow us to store objects (made from classes) of any type and store them paired with any other variable. One useful combination […]

C++ Game Coding Level 1

This course is for you if you are completely new to programming or the C++ language. This tutorial course will explain all you need to know to code C++ games as quickly […]

Game variables in C++

Whenever we code a PC game, we need to ‘know’ what the situation in the game is at any given point in time. As an example, things like the player’s score, how many […]

Manipulating the value of our game’s variables

Having just learned what C++ game variables are and that they store values that represent the objects in our games it is probably obvious that these values held by our […]

C++ condition checking in a game

Condition checking in games is all about making decisions. How do we know the player has run out of lives? How do we detect the ball has reached […]

Structuring and branching the code

We have seen in the last tutorial how we can detect certain conditions in our C++ code. For example when the player loses a life, destroys an alien or gets […]

Loops in the game code

Loops might sound a bit odd at first? They are a way of executing parts of our C++ code more than once, looping over code until we have the result we want or […]

Organizing C++ game code with functions

Functions are a really vital part of C++. They serve a number of, well, functions. They allow us to make our code more readable and manageable by splitting it up […]

Introduction to OOP for C++ games

Object Oriented Programming OOP, is how most programming is done these days. While it is possible to code a game without using it and many games in the past were, […]

Handling game data with C++ arrays

C++ arrays do exactly what their name implies. They allow us to handle whole arrays of data in one simple structure. Certainly, there is quite a bit to learn about […]

Using C++ references to make code faster

When we pass values to a function or return values from a function that is exactly what we are doing. Passing or returning a value. What happens is that a […]