Learn C++ for Game Development
4.7 (832 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.
3,511 students enrolled

Learn C++ for Game Development

Learn the basics of C++ to prepare you for game development programming!
4.7 (832 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.
3,511 students enrolled
Created by Stephen Ulibarri
Last updated 1/2020
English
English [Auto-generated]
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
12:56

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

Statements and Expressions
03:05

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

Truth Values
04:05

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
08:45

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
04:38

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
07:30

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

If/Else Statement - Hands On Programming Lecture
01:55

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
09:08

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?
08:11

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!
08:53

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

Keywords - The Forbidden Words You Cannot Use For Your Identifiers
02:47

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
20:09

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

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

We get more practice with functions!

Functions Revisited - More Practice With Functions
25:22

Learn about the increment operators and other mathematical tools.

Increment Operators - Manipulate Your Numbers with Handy Operators
10:37

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

Increment Operators - Hands On Practice With Computations
11:28

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

While Loops - Let Your Code do the Work For You
21:20

Let's see how these loops actually work!

While Loops - Hands On Practice
07:30

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

Do While - Another Flavor of the For Loop
09:37

We discover looping for a number of times!

For Loops - Hands On Looping Practice
09:44

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

References - Variables Which Are Aliases for Other Variables
09:05

We practice with references in our code.

References - Hands On Practice with Variable Aliases
11:43

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
06:15

Let's see how these work in practice!

Function Overloading - Get a Load of Function Overloading Hands On!
10:35

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

Strings - How Strings Work in C++
15:26

Actually put strings to use in C++!

Strings - How to Use Them
07:05

How to create a variable that can't vary.

Constants - Variables That Can Never Change
10:44

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

AND / OR and Truth Tables - The Tools Of Logic
09:18

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
06:58

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

Arrays - Multiple Values, One Variable
11:31

We create arrays and discover how to access their contents.

Arrays - Feel the Power of Arrays in Practice
13:52

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

Enums - Named Constants that Programmers Use for Program States
11:56

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

Enums - Use Enums in Your Code!
13:24

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

Switch Statements - More Efficient than If Statements in Series
12:48

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

Switch Statements - Use Switch Statements to Make Code More Efficient!
22:35

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
08:50

Now let's create some structs in code!

Structs in Practice - Hands on With Structs
12:14

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

Pointers - Variables that Point to Addresses of Data
19:00

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

Pointers in Practice - Hands on With Pointers
21:16

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
03:51

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

Objects and Classes In Practice - Hands-On Class Creation
02:48

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

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

We learn how to give our classes custom constructors.

Constructing Constructors - Let's Create Our Own Custom Constructors!
13:44

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
07:31

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

Inheritance in Practice 1 - Hands On with Inheritance
14:43

Continuing with inheritance practice.

Inheritance in Practice 2 - Hands On with Inheritance
15:02

More practice with inheritance.

Inheritance in Practice 3 - Hands On with Inheritance
10:32

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

Access Modifiers - public, private, and protected
09:11

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

Using Access Modifiers - Mark Up Our Classes with Access Modifiers
26:50
+ 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
16:25

We create variables on the heap dynamically in some examples.

Stack and Heap - Practice with Dynamic Memory
15:42

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

Destructors - Clean-Up Functions
09:13

Now we create some classes with destructors!

Destructors - Hands-On Practice Destructing
05:54

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

The Static Keyword - Static Variables
09:54

Hands on static practice!

Practice with Static
16:48

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

Virtual Functions - Overriding Inherited Methods (Functions)
05:18

Get some practice overriding virtual functions!

Creating Virtual Functions
12:01

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

Polymorphism - The True Power of Object Oriented Programming
12:32

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

Polymorphism - Hands-On Practice with Inheritance Hierarchies
09:24

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
05:42

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

Casting - Converting From One Type To Another
17:47

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

Practice With Casting
18:29

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
11:01

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

Practice with Header Files
18:34
Requirements
  • 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.
Description

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