Learn C++ for Game Development
4.6 (1,009 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,105 students enrolled

Learn C++ for Game Development

Learn the basics of C++ to prepare you for game development programming!
Highest Rated
4.6 (1,009 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,105 students enrolled
Created by Stephen Ulibarri
Last updated 1/2020
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 12.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Students will be able to start programming in Unreal Engine with C++ without being intimidated by its advanced techniques.
  • Students will have a solid understanding of C++ basics.
  • Students will learn both theory and practice with classroom style whiteboard talks, and lab style hands-on programming sessions.
Course content
Expand all 70 lectures 12:40:38
+ Introduction
1 lecture 01:04

This is a brief intro to my course, explaining what you will learn, and how the material will be taught. You will learn the basics of C++, starting from being an absolute beginner with no experience to actually writing your own C++ programs! You'll be well on your way to programming video games in Unreal Engine!

Preview 01:04
+ Input/Output Streams, Variables, Truth Values, Relational Operators
12 lectures 01:12:44

To program in C++, you must have an IDE (Integrated Development Environment). We will learn all about how to use one in this series!

Do you have a Mac? No problem! Use the link below to download XCode (the Mac version of an IDE you can use).

Preview 02:03

We begin by creating our first Visual Studio project and source file. We create our first program which sends text to the screen.

Preview 10:15

We learn about variables and how they can be declared, initialized, and overwritten with new values. We conclude with a whiteboard talk about several different data types and when to use them.

Variables and Data Types

Introducing a couple of new terms: Statement and Expression, and explaining what they are. 

Statements and Expressions

We learn how each expression has a truth value associated with it.

Truth Values

We're almost ready to use what we've learned in a program! Here we discuss relational operators as a way to compare truth values, which we will be able to use in our code when we create if statements.

Relational Operators

We finally learn the tool we can use to combine truth values and relational operators in a way that your program can use! Let your code make decisions based on conditions in your program.

If Statement - How to Use the Truth Values with Relational Operators

We finally put our skills to use with a simple if statement! Creating conditions in your code adds power to the program.

Preview 03:39

Now we learn how to create an alternative series of statements which will execute if the condition is false in an if statement.

If/Else Statement - Use Else to Provide Code for When the Condition is False

Setting up a branch in your logic with an if/else statement.

If/Else Statement - Hands On Programming Lecture

In addition to if and else, you also have the else if option, which can string multiple statements together and give you even more flexibility!

Else If - Adding Even More Functionality to your If Statements

We dive in and create some branches in logic using the else if statement.

Preview 04:45
+ Scope, Identifiers, Keywords, and Functions
5 lectures 54:37

Just what do those curly braces actually do? It turns out they represent a very important idea in programming - scope. This video explains it all!

Scope - What Do Those Curly Braces Do Anyway?

How do you know whether your variable names will work? Watch this lecture and find out!

Identifiers - You Can't Name Your Stuff Just Anything!

Learn about certain keywords that have special uses in the programming language.

Keywords - The Forbidden Words You Cannot Use For Your Identifiers

Functions are extremely useful for creating routines of code that can be called by name to perform their tasks.

Functions - Create Routines for your Programs

We dive in and get some extensive experience creating and calling functions!

Functions - Hands On Programming Lecture
+ Increment Operators, Loops, Overloading, Classes, and Inheritance
37 lectures 07:27:29

We get more practice with functions!

Functions Revisited - More Practice With Functions

Learn about the increment operators and other mathematical tools.

Increment Operators - Manipulate Your Numbers with Handy Operators

We use these operators in some real C++ code.

Increment Operators - Hands On Practice With Computations

Run a series of statements repeatedly until a condition is met.

While Loops - Let Your Code do the Work For You

Let's see how these loops actually work!

While Loops - Hands On Practice

This type of loop will enter the loop body first, then check the condition after.

Do While - Another Flavor of the For Loop

We discover looping for a number of times!

For Loops - Hands On Looping Practice

We learn about the reference, an alias for another variable.

References - Variables Which Are Aliases for Other Variables

We practice with references in our code.

References - Hands On Practice with Variable Aliases

We learn how to have multiple functions with the same name that do different things based on the input.

Function Overloading - Multiple Versions of a Function

Let's see how these work in practice!

Function Overloading - Get a Load of Function Overloading Hands On!

The theory behind the string, how they worked in C, and how much easier they are in C++!

Strings - How Strings Work in C++

Actually put strings to use in C++!

Strings - How to Use Them

How to create a variable that can't vary.

Constants - Variables That Can Never Change

Learn about the tools of logic and how they are used in programming!

AND / OR and Truth Tables - The Tools Of Logic

We get hands-on with these tools of logic and use them in our code!

AND / OR In Practice - Hands On With The Tools Of Logic

We discover that you can have a variable that holds multiple values in sequence.

Arrays - Multiple Values, One Variable

We create arrays and discover how to access their contents.

Arrays - Feel the Power of Arrays in Practice

Enums are an efficient way to control states in your game or code.

Enums - Named Constants that Programmers Use for Program States

Use enums and discover how useful they can be to control states.

Enums - Use Enums in Your Code!

If you have a long series of if statements, there is a better way!

Switch Statements - More Efficient than If Statements in Series

See how easy they can be, and use them with enums!

Switch Statements - Use Switch Statements to Make Code More Efficient!

We start to harness the real power of Object Oriented Programming (OOP) by creating a struct!

Structs - A Custom Data Type With Member Variables and Functions

Now let's create some structs in code!

Structs in Practice - Hands on With Structs

Pointers are tricky. But they don't have to be! I explain it clearly and simply.

Pointers - Variables that Point to Addresses of Data

Let's use these pointers and see how valuable they can be!

Pointers in Practice - Hands on With Pointers

We are finally able to understand Object Oriented Programming by learning about the key tool to OOP - Classes.

Objects and Classes - The Magic of Object Oriented Programming

We create some simple classes and give them member variables and functions.

Objects and Classes In Practice - Hands-On Class Creation

Constructors are a special type of function that gets called upon object creation.

Constructors - The Function that Gets Called When an Object is Created

We learn how to give our classes custom constructors.

Constructing Constructors - Let's Create Our Own Custom Constructors!

This is one of the main strengths of Object Oriented Programming: how a class can inherit members and functions from other classes.

Inheritance - How Classes Can Inherit From Other Classes

We get hands-on with inheriting properties from a parent class.

Inheritance in Practice 1 - Hands On with Inheritance

Continuing with inheritance practice.

Inheritance in Practice 2 - Hands On with Inheritance

More practice with inheritance.

Inheritance in Practice 3 - Hands On with Inheritance

Finally learn what those keywords: public, private and protected mean!

Access Modifiers - public, private, and protected

Use access modifiers and see how they work in actual practice.

Using Access Modifiers - Mark Up Our Classes with Access Modifiers
+ Static, Virtual, Dynamic Memory, Destructors, Polymorphism, and Header Files
15 lectures 03:04:44

Dynamic memory is used in programs when you need your objects and variables to be created at run time, dependent on circumstances of your game/program.

Stack and Heap - How Dynamic Memory Works

We create variables on the heap dynamically in some examples.

Stack and Heap - Practice with Dynamic Memory

Destructors take care of any code that needs to be executed upon an object's deletion.

Destructors - Clean-Up Functions

Now we create some classes with destructors!

Destructors - Hands-On Practice Destructing

Learn about the different ways to use the static keyword in your programs and games.

The Static Keyword - Static Variables

Hands on static practice!

Practice with Static

We learn how to give child classes their own version of inherited functions.

Virtual Functions - Overriding Inherited Methods (Functions)

Get some practice overriding virtual functions!

Creating Virtual Functions

Polymorphism can be a tricky subject to understand. Not when it's explained correctly though!

Polymorphism - The True Power of Object Oriented Programming

Now we actually put our theory to use and see how it works!

Polymorphism - Hands-On Practice with Inheritance Hierarchies

Classes in C++ can inherit from multiple parents (derived classes), and this can cause some issues.

Multiple Inheritance - How A Class Can Inherit From More Than One Parent

Casting is the conversion of an expression from one type to another.

Casting - Converting From One Type To Another

We cast with an inheritance hierarchy modeled after that in Unreal Engine.

Practice With Casting

Ever wonder how large programs are managed, especially with hundreds or thousands of lines of code? With header files!

Header Files - How Large Programs are Organized

We organize a program into header files for each class and see just how much more organized it can be.

Practice with Header Files
  • No programming experience necessary. Must have a computer and internet.
  • Visual Studio Community is used (the free version) and students will not need to purchase any software.

There are many C++ tutorials for Unreal Engine or other game engines out there, but most just assume you have a solid background in C++, or they cover the basics quickly. This is because Unreal Engine C++ is already too complicated to cover learning an entire programming language plus Unreal Engine programming in a single course. This course is designed to teach you C++ from the ground up, starting at absolute beginner level content and working up to advanced level techniques. This course will prepare you for programming video games in Unreal Engine, Cryengine, Lumberyard, or any game engine. Unreal Engine is not used in this course. This is a course on the basics of C++.

Who this course is for:
  • Anyone who wishes to program video games in Unreal Engine but does not yet know how to code in C++.
  • Beginners with no programming experience, or programmers who wish to brush up on the basics of C++.
  • Those who want to become video game programmers and gain a solid understanding of C++.
  • Anyone who wishes to learn programming in C++.