Mô tả

If you're looking for a curriculum to prepare you for a job as a C++ developer, or maybe your ambition is to develop your own indie games, then this course is for you!

Intermediate C++ topics such as object oriented programming, pointers, inheritance and templates can be intimidating to some students, but I use simple examples, summaries, exercises and step by step illustrations throughout.

Learning C++ concepts in isolation by writing simple console applications is not enough - you must learn to use intermediate features in combination.

Through Unreal Engine project examples, I explain where specific language features are useful in a real world project. This will give you a much deeper understanding of those language features and not just how to use them, but why they are important to learn and remember and where they will be useful.


What will I learn?

Following the foundational modules, C++101 and C++102, you will learn to use intermediate C++ features in combination by programming game logic in Unreal Engine.


Module C++101 (fundamentals):

In this module we explore variables and variable types (an understanding of types is very important in C++).

I introduce Conditional Statements and Logical Operators (how to write decision-making logic).

Iteration statements such as the while() loop and the for() loop allow us to write logic that executes repeatedly - and we have many ways to control the looping/repetition.

Arrays (containers of variables).

Functions, debugging fundamentals, and Visual Studio tips & tricks to speed up your workflow.


Module C++102:

Object Oriented Programming: Structs, Classes, Inheritance and Polymorphism.

Pointers and References are covered in detail.

Characters are covered detail, and I also introduce the standard string class.

Debugging and Visual Studio tips & tricks.

This module also includes intermediate lessons on Templates, Smart Pointers, Callables and more.


C++ Standards Covered:

  • C++98

  • C++11

  • C++14

  • C++17

The course also includes lectures on C language features that are used (or can be used) in C++.

C++20 lessons are planned for a future release - the standard is not widely adopted yet.

More lessons are planned for this course, including the STL, exception handling, and many more.


For the Unreal Engine 5 content, I begin by introducing the fundamentals of the engine, followed by a simple C++ project where we will apply those fundamentals and also learn a few new things along the way.



Whether you have no programming experience, or are already familiar with a programming language and want to learn how to code game logic in Unreal Engine 5 with C++, this course is for you!


Bạn sẽ học được gì

Learn C++ programming fundamentals through simple examples and illustrations

Debugging and problem solving skills

Learn how C++ is used in real-world projects, with examples from the Unreal Engine codebase

Understand how intermediate C++ features, such as object oriented programming, inheritance and templates can be used in combination

Apply your newly acquired C++ skills to game development fundamentals in Unreal Engine

Yêu cầu

  • Windows PC capable of running Visual Studio and Unreal Engine.
  • Dedication and willing to work hard.

Nội dung khoá học

30 sections

C++101 - First Steps

15 lectures
Why Study C++ Programming?
04:04
What Sets This Course Apart
09:26
Orientation and Study Tips
06:20
Software Development Facilities
03:07
Visual Studio Community 2022 Installation
05:06
Creating Empty C++ Console Projects & Adding Files to Projects
05:22
The main Function
12:20
Operators
02:57
Preprocessor Directives, Namespaces and the Stream Insertion Operator - THEORY
10:19
Preprocessor Directives, Namespaces and the Stream Insertion Operator PRACTICAL
18:36
Pausing Program Execution
07:47
Visual Studio - Basic Interface Customization
08:54
Altering the Colour Theme in Visual Studio
01:16
Saving Window Layouts in Visual Studio
02:09
First Steps with C++ Quiz
7 questions

C++101 - Variables, Comments and Arithmetic

15 lectures
Variables Lesson Introduction
04:12
An Introduction to Literals and Variables
13:29
The Assignment Operator and Variable Declaration & Initialization
03:44
Variable Identifier Rules and Reserved Words
06:50
Arithmetic Operators
05:37
Initialization and Arithmetic Examples
06:44
Assignment Operators
02:02
Console Input
07:33
Comments
09:16
The Task List and Bookmarks
16:00
Initialization Options
08:17
Integer Types and the sizeof Operator
26:47
The Division and Modulus Operators
03:38
The Increment and Decrement Operators
06:56
Variables and arithmetic Quiz
8 questions

C++101 - Floating-Point Types and Conversions

4 lectures
Floating-Point Types
16:29
Constants
10:38
Conversions and Mixed Expressions
16:53
Floating-Point Representation and Conversion
14:41

C++101 - Conditional Execution and Logical Operators

10 lectures
The bool Type
08:31
Relational Operators
11:49
The if Statement
13:28
Nested if...else Statements
09:14
Logical Operators
14:26
Relational Operators Exercise
06:21
Short Circuit Evaluation
09:14
The char Type and Escape Sequences
23:01
The if...else...if Statement
02:35
Expressions Vs Statements
10:02

C++101 - Switch Statements and the Conditional Operator

4 lectures
The switch Statement
12:10
The Conditional Operator
07:40
Visual Studio Tips & Tricks
36:30
Multi-Caret Editing
05:11

C++101 - Iteration Statements

7 lectures
The while Loop
06:50
The do...while Loop
04:56
Counter, Sentinel and Situation Driven Loops
15:50
Block Variables, Input Validation and Boolean Driven Loops
27:07
The for Loop
15:33
The break and continue Statements
07:18
Nested Loops
12:01

C++101 - Functions

7 lectures
An Introduction to Functions
07:36
Value-Returning Functions
17:03
Parameter Terminology and Function Comments
26:22
Default Arguments
23:39
The C++ Standard Library Headers
15:47
Global Variables
10:22
Functions Lesson Wrap-Up
11:48

C++101 - Arrays and Range Based for Loops

5 lectures
An Introduction to Arrays
10:29
One-Dimensional Array Examples
15:45
The Range-Based for Loop
05:06
Type Inference with auto and decltype
06:47
Multidimensional Arrays
14:18

C++101 - Debugging Fundamentals

8 lectures
Debugging Foundations
07:10
Warnings and Warning Suppression
09:01
Debugging in Visual Studio
41:00
Refactoring
11:13
Drivers and Stubs
02:43
Stub Demo
04:44
Programming Principles
04:16
Rubber Duck Debugging
01:30

C++101 Module Wrap-Up and Bonus Lectures

4 lectures
Configure the Default Project Location in Visual Studio
01:37
Keyboards for Programming - Layouts and Ergonomics
14:15
Note Taking and Learning Tips
12:03
Customizing the Toolbars in Visual Studio
09:53

C++102 - Structs

11 lectures
C++102 Module Introduction
01:01
An Introduction to Object Oriented Programming
16:54
An Introduction to Structs and Member Access using the Dot Operator
24:03
An Introduction to Member Functions
09:52
Struct Initialization and Composition Examples
14:08
Structs Containing Array Members and Member Initialization
02:16
An Introduction to Getters and Setters
08:49
Arrays of Structs
03:32
Struct Declarations and Definitions
05:20
Struct Objects as Arguments to Functions
05:34
Struct Lesson Wrap-Up
07:37

C++102 - Pointers and References

27 lectures
The Address-of Operator
11:52
An Introduction to Pointers
17:30
Target Platforms
14:02
Pointer Size
08:57
Void Pointers
08:37
Qualifying Pointers
08:53
The Relationship Between Pointers and Arrays
19:52
An Introduction to References
13:48
Pointer Assignment and Comparison
04:35
An Introduction to Pointer Arithmetic
16:36
Pointer Arithmetic - Increment and Decrement
10:06
Pass by Reference
10:49
Function Overloading
15:39
Function Overloading Sidebar
03:01
L-values, R-values and Local Static Variables
22:18
Dynamic Memory Allocation
28:24
Dynamic Arrays
06:53
The Arrow Member Access Operator
05:27
Passing Pointers to Functions
08:12
Passing Arrays to Functions
18:32
Returning a Pointer from a Function
10:43
Type Definitions
06:26
Type Alias Declarations
04:59
The Random Number Generator
20:50
Recursive Functions
10:05
Pointers and References - Lesson Summary
10:21
Exercise: Guess the Secret Number Game
05:26

C++102 - Classes

17 lectures
An Introduction to Classes
20:11
Separating Member Function Declaration and Definition
12:16
An Introduction to Constructors
17:02
What's Next Sidebar
02:16
Destructors
17:56
The static Keyword
30:49
The this Pointer
13:53
Constructor Initialization Lists
15:43
Delegating Constructors
10:09
Default Constructor Arguments
04:29
Qualifying Member Functions as const
20:02
inline Functions
06:21
Macros
10:26
Enumerations
21:13
Accessors Summary
04:47
The comma Operator
03:36
The comma Operator - Exercise
10:20

C++102 - Operator Overloading

16 lectures
Operator Overloading Lesson Introduction
03:13
Introduction to Operator Overloading
11:57
Increment and Decrement Operator Overloading
15:04
Binary Arithmetic Operator Overloading
13:56
Binary Relational & Comparison Operator Overloading
06:11
Copy Constructors and Shallow Vs Deep Copying
40:29
Copy Assignment Operator Overloading
27:18
Move Constructors
27:23
Move Assignment Operator Overloading
11:48
Friends
19:43
Overloading Operators as Global Functions
08:31
Overloading the Stream Insertion and Extraction Operators
13:36
Conversion
20:47
Overloading the Subscript Operator
07:53
Overloading the Function-call Operator
04:27
Operator Overloading Lesson Wrap-Up
05:04

C++102 - Pointers to Pointers and Dynamic Two-Dimensional Arrays

5 lectures
Pointers to Pointers
14:00
Arrays of Pointers
10:44
Dynamic Two-Dimensional Arrays
28:08
Dynamic Two-Dimensional Arrays Exercise
07:50
References to Pointers
11:06

C++102 - Inheritance

10 lectures
An Introduction to Inheritance
11:02
Public and Private Derivation
13:15
Initialization with Inheritance
11:48
Redefining Base Class Member Functions
14:04
Friendship with Inheritance
05:16
Interface and Implementation Files
44:47
Types of Inheritance
25:31
Namespaces
26:48
The Navigation Bar and the Scroll Bar Map Mode
06:23
Splitting and Grouping Documents in Visual Studio
04:39

C++102 - Polymorphism

11 lectures
Polymorphism Lesson Introduction
05:20
Polymorphism and the virtual keyword
12:17
Object Slicing with Upcasting and Downcasting
21:12
Virtual Member Functions
18:51
Virtual Destructors
05:11
The override Keyword
06:33
The final Keyword
06:41
Abstract and Concrete Classes
11:00
Interface Classes
19:30
Explicitly Defaulted Functions
09:10
Explicitly Deleted Functions
11:50

C++102 - Templates

16 lectures
Templates Lesson Introduction
03:12
An Introduction to Function Templates
21:43
Function Templates with Class or Struct Type Arguments
07:26
Class Templates
14:26
Template Type Parameter Default Arguments and Non-Type Parameters
16:02
Template Parameter Reuse
06:29
Static Variables with Function and Class Templates
05:52
Define Class and Struct Templates in Header Files
16:11
Class or Struct Templates as Function Formal Parameters
12:00
Function Overloading with Function Templates
06:29
Template Specialization
14:11
Member Function Templates
05:28
Friends of a Class or Struct Template
10:46
Type Definitions with Class Templates
02:03
Numeric Limits
02:42
Templates Lesson Wrap-Up
23:36

C++102 - Cast Operators

6 lectures
Cast Operators Lesson Introduction
02:07
The static_cast<>() Operator
21:41
The dynamic_cast<>() Operator
28:31
The typeid Operator
11:55
The const_cast<>() Operator
12:29
Safety and Efficiency Considerations in Class Definitions
06:23

C++102 - Callables

12 lectures
Callables Lesson Introduction
04:50
Function Pointers
17:56
Function Pointers as Formal Parameters
07:52
Arrays of Function Pointers
03:36
Function Pointer Type Aliases
09:04
Functors
16:50
Predefined Function Objects
05:07
Lambda Expressions
15:14
The Lambda Expression Capture Clause
11:49
Capturing the this Pointer
03:42
Stateless and Stateful Lambdas
19:07
Callbacks
14:35

C++102 - Smart Pointers

17 lectures
An Introduction to Smart Pointers
11:13
Unique Pointers
25:14
Avoiding Memory Leaks with Smart Pointers
08:19
The make_unique Function
04:22
Unique Pointers as Formal Parameters
13:47
Returning Unique Pointers from Functions
09:49
Unique Pointers that Manage Dynamic Arrays
14:17
Unique Pointers as Class Members
02:41
Unique Pointers and Polymorphism
07:43
An Introduction to Shared Pointers
27:20
Shared Pointers as Formal Parameters
05:26
Unique Pointer and Shared Pointer Conversion
14:34
Shared Pointers that Manage Dynamic Arrays
05:40
An Introduction to Weak Pointers
27:36
Shared Pointer Implementation Technicalities
04:44
Useless Entity Exercise
04:11
Custom Deleters for Smart Pointers
22:08

C++102 - Characters and Strings

21 lectures
Characters and Strings Lesson Introduction
02:52
The char Type and ASCII Codes
07:23
Operations on Characters
07:42
An Introduction to C-Strings
07:37
Determining the Size of an Array and References to Arrays
25:13
Functions that Operate on C-Strings - Part 1
15:59
Functions that Operate on C-Strings - Part 2
22:28
An Introduction to the Standard String Class - std::string
06:54
Concatenation with the Standard String
12:58
Swapping Standard Strings
01:46
Accessing Characters in the Standard String
07:29
Standard String Capacity
10:16
Functions that Alter Standard String Size
10:02
Standard String Comparisons
11:05
Standard String Numerical Conversions
05:03
Operating on Standard String Substrings
17:50
Searching Standard Strings
10:47
Raw String Literals
09:18
Input with Strings - Introducing the getline() Function
09:59
Console Input get and getline Member Functions
09:32
Get a Pointer to the Character Array Managed by a Standard String
07:18

C++102 - Streams

24 lectures
An Introduction to Streams
04:12
The Global Stream Objects
06:13
Manipulating the Field Width, Justification, and Fill Character
12:47
Show the Positive Sign and Show the Decimal Point
04:57
Setting the Precision for Floating-Point Values
04:50
Setting and Unsetting Flags
15:37
Stream Manipulators with Integers
12:52
Internal Justification of the Field Width
02:48
The std::flush Manipulator
03:35
The printf() Function
16:38
Streams - Section 1 Wrap-Up
24:56
File Streams Section Introduction
05:14
Opening a Text File
07:23
Reading from a File
07:40
Continuously Reading from a File
07:40
Writing to a File
04:39
File Input and Output Integer Sum Exercise
09:50
Opening User Specified Files
04:31
The get(), put(), unget(), and putback() Member Functions
15:43
File Opening Modes
15:45
The fstream Class
09:27
Streams as Arguments to Functions
04:26
Streams and Operator Overloading
08:39
String Streams
18:17

CPP102 Module Wrap-Up

3 lectures
Coding Standards
23:05
Coding Standards Exercise
05:57
Cpp102 Module Wrap-Up
01:24

C++201 - Exception Handling (In development)

1 lectures
Assertions
22:27

Unreal Engine 5 Foundations

4 lectures
Engine Version Management & Installation
08:53
Creating a New Project in Unreal Engine 5
12:11
Unreal Engine Terminology
11:46
Unreal Engine 5 Interface Overview and basic Layout Customization
13:26

UE5C++101: Unreal Engine 5 C++ Foundations

25 lectures
UE5CPP101 Prerequisite Modules
02:23
Hardware and Software Specifications for Developing in Unreal Engine
04:25
Resolving Prerequisite Component Errors
03:22
The Game Loop
04:39
Creating Your First Unreal Engine 5 C++ Project
06:51
Visual Studio Configuration for UE5 Development
09:56
Updating Projects to Newer Versions of the Engine
11:17
The Actor Class Hierarchy
03:29
UE5 C++ Class Creation Basics
17:17
The Usage of Macros in Unreal Engine
16:19
Unreal Engine Coding Standards
14:17
UPROPERTY Specifiers for Editor Accessibility
20:35
Live Coding
09:24
UPROPERTY Specifiers for Blueprint Accessibility
14:51
UFUNCTION Specifiers for Blueprint Accessibility
07:52
UFUNCTION Specifiers for Implementation Location
15:13
Formatting Sidebar - Removing Unwanted Indentations
02:15
An Introduction to FString and the TEXT Macro
04:31
Logging with the UE_LOG Macro
21:00
Actor Components Overview
02:28
The Major Component Classes
09:42
Defining a Custom Component
05:53
Component Allocation and RootComponent Attachment
23:12
The UStaticMeshComponent and the SetupAttachment Function
16:41
More to come
00:17

UE5Cpp101 - The Apple Picker Project

33 lectures
Apple Picker Project Creation
05:31
Creating the Tree Mesh and Materials
14:07
Defining the Base-Class for the Apple Tree
07:36
Defining Basic Movement for the Apple Tree
06:39
Defining Movement Boundaries for the Apple Tree
07:23
Erratic Movement Logic for the Apple Tree
09:06
The Apple Class Definition
06:55
Spawning Apples
10:41
The Basket Pawn Definition
09:28
Reusing Existing Assets and the BakeRs and Pivot Modeling Tools
11:04
The Gameplay Framework Overview
05:23
Camera Setup
06:11
Setting the View Target on the Player Controller
10:40
Defining Input Bindings and Basic Movement for the Basket Pawn
09:50
Destroying Apples 'On Hit'
07:18
Improving Apple Tree Movement
04:02
Destroying Apples that Fall too Far
03:16
Apple Picker Project - Section 1 Wrap-Up
06:56
Apple Picker Project - Section 2 Overview
02:49
Attaching 3 Paddles to our Basket
14:22
Handling Paddle Component Destruction
03:45
Handling Apple Lost in a Game Mode Class
16:19
Handling Apple Caught
03:21
Stop Spawning Apples and Destroy Remaining Apples
07:46
Apple Picker Project - Section 2 Wrap-Up
17:38
Apple Picker Project - Section 3 Overview
01:11
Handling Game Over
12:00
Handling Game Start
10:34
Countdown Timer Widget Implementation
12:49
Countdown Timer Logic
14:37
C++ Widget Implementation - Apples Collected and Game Over Text
27:16
Apple Destroyed Niagara Particles
10:23
Paddle Lost Niagara Particles
11:36

ARCHIVED Unreal Engine 4 Content

26 lectures
The Epic Games Launcher Part 2
15:11
Unreal Engine 4 Interface Overview
15:18
Unreal Engine Tips & Tricks for Beginners
19:33
An Introduction to Blueprint Visual Scripting
08:36
Blueprint Classes and Components
16:11
Blueprint Variables and Node Connections
12:22
UE4 C++ Foundations Introduction
01:43
UObject Part 1: The UE4 Class System and Class Creation
21:15
UObject Part 1 Sidebar
01:05
UObject Part 2: Properties and Build Configurations
24:43
UObject Part 3: Object Instantiation and UCLASS Specifiers
15:19
Creating an AActor and the USceneComponent
20:54
UProperty Specifiers
43:23
UStaticMeshComponent and Component Attachment
17:30
FVector and how to get and set Actor Location.
16:04
FRotator and Actor Local & World Offset.
22:03
Component Attachment and Offset.
36:23
Attachment Transform Rules Sidebar
09:25
Forces
20:25
Sweeping
12:50
FString, UE_LOG, and On-Screen Debug Messages.
23:46
Destroying an Actor.
06:51
Level Script Actors and Spawning
36:34
Game Mode in C++
11:29
FTransform Sidebar
07:11
Timers
27:25

Updates and Continuing your Game Development Studies

1 lectures
Course Updates
00:37

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.