O'Reilly logo
live online training icon Live Online training

Mastering C++ Game Development

Learn to build high-end games by programming in C++ 17

Frahaan Hussain

C++ is the standard language for developing professional games. This course will start with with an explanation of the C++ ecosystem and toolkits to build games. You will learn the concepts of game development, including graphics, music, physics, etc. You’ll also learn to leverage various advanced libraries, such as OpenGL to build complex systems.

We will also delve into the world of buildings game with AI capabilities and advanced rendering techniques, and discuss the concepts of multiplayer gaming.

What you'll learn-and how you can apply it

  • Concepts of game development, and how they can be used to further applications using new programming techniques
  • C++ techniques to aid the game development life cycle
  • OpenGL concepts to help improve cross platform game design and programming on a wide variety of devices
  • STL programming that will bring all the latest and greatest features to your applications and games
  • Building UI’s for games to enhance the user experience in your games and improve the speed of development
  • Concept of physics to discover how and why physics are used and when and where to use them
  • Concept of audio in gaming to help realise the importance of audio and how it can be used to build atmosphere in a game for a more immersive experience
  • Concept of AI capabilities in gaming to help improve the replay ability of your games and make them more fun

This training course is for you because...

You are a C++ developer, game developer, or programming lead who wants to enhance your knowledge in the gaming industry and produce better products.

Prerequisites

Some experience with: - C++ programming - Game design - Game development - OpenGL programming - Basic maths and physics

Materials, downloads, or Supplemental Content needed in advance

GitHub (https://github.com/) OpenGL (https://www.opengl.org/) GLEW (http://glew.sourceforge.net/) GLFW (https://www.glfw.org/)

About your instructor

  • Frahaan Hussain is the CEO and lead developer at Sonar Systems, the world leader in educational material for the game engine Cocos2d-x, one of the best and most popular game engines in the world. With years of experience programming and running an online education platform (Sonar Learning), he can help and support new programmers like you. He is also a University Lecturer teaching a variety of topics in games programming from games design to OpenGL shader programming. He is also a author of many video courses published by Packt.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

DAY 1

Section 1: Introduction to Mastering C++ Game Development (50 minutes)

This section will introduce the students to this course, what C++ is and how it can be mastered to be incorporated into game development. We will show the viewer how different programming techniques can be used and the advantages of accessing low level game development with OpenGL instead of high level programming. We will discuss different game design techniques.

  • Understand game development
  • Advantages of low level game development with OpenGL
  • Understand the game lifecycle
  • Discuss programming techniques
  • Compare game designing

Break: 10 Mins

Section 2: Intro to C++ STL Programming (40 minutes)

This section will introduce the students to C++ STL programming, the new and modern programming feature sets. We will discuss how STL can be used to enhance the development cycle and add new features with ease. We will also compare and contract and how this would have been achieved in old programming languages/versions and show how it is enhanced in the newer versions that support STL.

  • Understand what C++ STL is
  • Advantages of STL in programming with C++
  • Learn about the different containers in STL

Breaks: 10 Mins

Section 3: Using C++ STL in a Real World Scenario (40 minutes)

Lecture: This section will start implementing a C++ application, it will show the students how to leverage STL techniques and their immense benefits.

Lab: We will cover how the development process can be vastly improved by implementing STL programming techniques.

  • Utilize the STL features
  • Discuss STL and its implementations
  • Real world scenarios for STL programming

Section 4: Graphics Concepts (40 minutes)

This sections will discuss with the user various graphics concepts that will ensure they are able to create games now on the current platforms available to them and in the future as more and more device types are released. The Cross platform nature of design and how this can affect a games performance will also be covered.

  • Perspective design
  • Cross platform graphical design
  • Importance of graphics performance
  • Cross screen design

Break: 10 Mins

Section 5: Daily Wrap Up (40 minutes)

This section will wrap up the entire day and go over the main topics that were covered to ensure the students are fully aware of everything that was discussed and implemented.

  • Game development overview
  • Benefits of using C++ STL
  • Graphics concepts
  • General review

DAY 2

Section 6: GUI Intro (50 minutes)

This section will introduce the students to graphical user interfaces and how they can be incorporated into their applications for improved user experiences and enhancing their workflow. We will discuss the various frameworks available and benefits they all offer.

  • What is a GUI?
  • Introduction to GUI based elements
  • Benefits of using a GUI
  • GUI frameworks

Break: 10 Mins

Section 7: GUI Programming Implementation (50 minutes)

Lecture: This section will walk the students through implementing graphical user interfaces in their applications. We will also compare and contract doing it through pure low level graphics API programming vs a GUI framework.

Lab: We will use a framework to enhance the implementation cycle

Implementing GUI into applications Using frameworks GUI based projects

Break: 10 Mins

Section 8: Audio Concepts (30 minutes)

This section will cover the concepts of audio and how audio can be used in games to build an atmosphere that helps transport the player from their chair to the game world itself. We will go over the various benefits of using audio in games.

  • What is audio in games?
  • Benefits of using audio in games
  • How to effectively use audio to create an atmosphere
  • Spatial audio concepts

Section 9: Physics Concepts (30 minutes)

This section will cover the concepts of physics and how physics can be incorporated into games to bring a level of realism that would otherwise be impossible to achieve. We will also discuss when to use realistic physics vs fake physics and the benefits each method provides. Also covered will be examples of physics in games that have implemented it really well and really badly.

  • What is physics in games?
  • Benefits of using physics in games
  • Realistic physics vs fake physics
  • Examples of good physics in games
  • Examples of bad physics in games

Break: 10 Mins

Section 10: AI Concepts (30 minutes)

This section will cover AI concepts in games and these concepts can be implemented to enhance the user interaction with the games NPCs (Non Playable Characters). We will also cover the benefits of implementing AI but also the disadvantages of AI. Covered will also be the good and bad examples of AI in games.

  • What is AI in games?
  • Benefits of using AI in games
  • Drawbacks of implementing AI
  • Examples of good AI in games
  • Examples of bad AI in games

Section 11: Daily Wrap Up (30 minutes)

This section will wrap up the entire day and go over the main topics that were covered to ensure the students are fully aware of everything that was discussed and implemented.

  • GUI overview
  • Benefits of using GUI’s
  • Audio concepts
  • Physics concepts
  • AI concepts
  • General review