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++.
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!
The community is your biggest resource.
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).
The Jetbrains Rider IDE is now free for non-commercial use.
We begin by creating our first Visual Studio project and source file. We create our first program which sends text to the screen.
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.
Introducing a couple of new terms: Statement and Expression, and explaining what they are.
We learn how each expression has a truth value associated with it.
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.
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.
We finally put our skills to use with a simple if statement! Creating conditions in your code adds power to the program.
Now we learn how to create an alternative series of statements which will execute if the condition is false in an if statement.
Setting up a branch in your logic with an if/else statement.
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!
We dive in and create some branches in logic using the else if statement.
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!
How do you know whether your variable names will work? Watch this lecture and find out!
Learn about certain keywords that have special uses in the programming language.
Functions are extremely useful for creating routines of code that can be called by name to perform their tasks.
We dive in and get some extensive experience creating and calling functions!
We get more practice with functions!
Learn about the increment operators and other mathematical tools.
We use these operators in some real C++ code.
Run a series of statements repeatedly until a condition is met.
Let's see how these loops actually work!
This type of loop will enter the loop body first, then check the condition after.
We discover looping for a number of times!
We learn about the reference, an alias for another variable.
We practice with references in our code.
We learn how to have multiple functions with the same name that do different things based on the input.
Let's see how these work in practice!
The theory behind the string, how they worked in C, and how much easier they are in C++!
Actually put strings to use in C++!
How to create a variable that can't vary.
Learn about the tools of logic and how they are used in programming!
We get hands-on with these tools of logic and use them in our code!
We discover that you can have a variable that holds multiple values in sequence.
We create arrays and discover how to access their contents.
Enums are an efficient way to control states in your game or code.
Use enums and discover how useful they can be to control states.
If you have a long series of if statements, there is a better way!
See how easy they can be, and use them with enums!
We start to harness the real power of Object Oriented Programming (OOP) by creating a struct!
Now let's create some structs in code!
Pointers are tricky. But they don't have to be! I explain it clearly and simply.
Let's use these pointers and see how valuable they can be!
We are finally able to understand Object Oriented Programming by learning about the key tool to OOP - Classes.
We create some simple classes and give them member variables and functions.
Constructors are a special type of function that gets called upon object creation.
We learn how to give our classes custom constructors.
This is one of the main strengths of Object Oriented Programming: how a class can inherit members and functions from other classes.
We get hands-on with inheriting properties from a parent class.
Continuing with inheritance practice.
More practice with inheritance.
Finally learn what those keywords: public, private and protected mean!
Use access modifiers and see how they work in actual practice.
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.
We create variables on the heap dynamically in some examples.
Destructors take care of any code that needs to be executed upon an object's deletion.
Now we create some classes with destructors!
Learn about the different ways to use the static keyword in your programs and games.
Hands on static practice!
We learn how to give child classes their own version of inherited functions.
Get some practice overriding virtual functions!
Polymorphism can be a tricky subject to understand. Not when it's explained correctly though!
Now we actually put our theory to use and see how it works!
Classes in C++ can inherit from multiple parents (derived classes), and this can cause some issues.
Casting is the conversion of an expression from one type to another.
We cast with an inheritance hierarchy modeled after that in Unreal Engine.
Ever wonder how large programs are managed, especially with hundreds or thousands of lines of code? With header files!
We organize a program into header files for each class and see just how much more organized it can be.
You have completed the course! Congratulations! You are now ready to continue your journey, and begin programming video games in a game engine using C++!
I hope to see you continuing your learning experience!
Stephen
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.