C++ Unreal Developer Lecture List

Here’s a full list of lectures for the course.

Please note Udemy lecture numbers may vary slightly as we add and remove them. This index is updated automatically every few days.

We have unique tags for lectures. For example #3_gg_cbc is the 3rd lecture, in the Getting Going section of the Complete Blender Creator.

Enjoy the course!

Section 1: Introduction and Setup (is_urc)

1 Promo Video (#1_is_urc)
2 Welcome to the Course (#2_is_urc)
3 A Note On Unreal Versions (#2b_is_urc)
4 Fully Remove Visual Studio If You Have Issues
5 Setup Visual Studio or XCode (#3_is_urc)
6 Avoiding Unreal 4.20
7 Unreal Development Environment (#4_is_urc)
8 Intro to Visual Studio 2015 on PC (#5_is_urc)
9 Intro to Xcode on MacOS (#6_is_urc)
10 How to Ask Good Questions (#6b_is_urc)
11 A Quick Tour of Unreal Editor (#7_is_urc)
12 Section 1 Wrap-Up (#8_is_urc)
13 Instructor Hangout (#9_is_urc)

Section 2: Bulls & Cows Word Console Game (bc_urc)

14 Intro, Notes & Section 2 Assets (#1_bc_urc)
15 Bull Cow Game Overview (#1b_bc_urc)
16 S02 Game Design Document (GDD) (#2_bc_urc)
17 A Note About Visual Studio 17
18 How Solutions & Projects Relate (#3_bc_urc)
19 C++ Function Syntax (#4_bc_urc)
20 Using, #include and Namespaces (#5_bc_urc)
21 Magic Numbers and Constants (#6_bc_urc)
22 Variables and cin for Input (#7_bc_urc)
23 Using getline() (#8_bc_urc)
24 Simplifying With Functions (#9_bc_urc)
25 Iterating With For & While Loops (#10_bc_urc)
26 Clarity is Worth Fighting For (#11_bc_urc)
27 Booleans and comparisons (#12_bc_urc)
28 Using do and while in C++ (#13_bc_urc)
29 Introducing Classes (#14_bc_urc)
30 Using Header Files as Contracts (#15_bc_urc)
31 Including Our Own Header File (#16_bc_urc)
32 Frustrated With XCode?
33 Instantiating Your Class (#17_bc_urc)
34 Writing & Using Getter Methods (#18_bc_urc)
35 Introducing the Const Keyword (#19_bc_urc)
36 Constructors For Initialisation (#20_bc_urc)
37 Pseudocode Programming (#21_bc_urc)
38 Using using for Type Aliases (#22_bc_urc)
39 Using struct for Simple Types (#23_bc_urc)
40 Using if Statements in C++ (#24_bc_urc)
41 Debugging 101 (#25_bc_urc)
42 A Place for Everything (#26_bc_urc)
43 Introducing enumerations (#27_bc_urc)
44 Writing Error Checking Code (#28_bc_urc)
45 Using switch Statements (#29_bc_urc)
46 Warm Fuzzy Feelings (#30_bc_urc)
47 Handling Game Win Condition (#31_bc_urc)
48 Win or Lose “Screen” (#32_bc_urc)
49 Introducing Big O Notation (#33_bc_urc)
50 TMap and map Data Structures (#34_bc_urc)
51 Range-based for Loop (#35_bc_urc)
52 Design a Helper Function (#36_bc_urc)
53 Playtesting Your Game (#37_bc_urc)
54 Difficulty & Play Tuning (#38_bc_urc)
55 Polishing & Packaging (#39_bc_urc)
56 Section 2 Wrap-Up (#xx_bc_urc)

Section 3: Building Escape (be_urc)

57 Intro, Notes & Section 3 Assets (#1_be_urc)
58 S03 Game Design Document (GDD) (#2_be_urc)
59 Building Escape Overview (#1b_be_urc)
60 Version Control 101 (#3_be_urc)
61 Ignoring Unreal Derived Files (#4_be_urc)
62 Your First .gitignore for Unreal (#5_be_urc)
63 Getting to Know Unreal’s Editor (#6_be_urc)
64 A Pointers Primer (#6b_be_urc)
65 Unreal’s Class System (#7_be_urc)
66 Cloning and Building Our Code (#7b_be_urc)
67 Runtime Messages for Feedback (#8_be_urc)
68 Accessing Object Names (#9_be_urc)
69 Include What You Use For 4.17+ (#9b_be_urc)
70 Getting Transforms in C++ (#10_be_urc)
71 Moving Objects With C++ (#11_be_urc)
72 Laying Out Geometry (#12_be_urc)
73 Applying Materials (#13_be_urc)
74 Macros Starting with UPROPERTY (#14_be_urc)
75 Using Trigger Volumes (#15_be_urc)
76 Unreal’s PlayerController (#16_be_urc)
77 Using Collision Volumes (#17_be_urc)
78 Using GetTimeSeconds() (#18_be_urc)
79 Grabbing System Overview (#19_be_urc)
80 Modifying the Default Pawn Actor (#20_be_urc)
81 Inherit Game Mode Blueprint (#21_be_urc)
82 Getting Player Viewpoint (#22_be_urc)
83 Using DrawDebugLine (#23_be_urc)
84 Line Tracing AKA Ray-Casting (#24_be_urc)
85 LineTraceSingleByObjectType() (#25_be_urc)
86 REFERENCES & POINTERS (#26_be_urc)
87 Resetting Your Unreal Project (#27_be_urc)
88 Using FindComponentByClass() (#28_be_urc)
89 Introducing Input Binding (#29_be_urc)
90 Accessors & Memory Layout (#30_be_urc)
91 Reducing Code in “Hot Loops” (#31_be_urc)
92 Using Physics Handles (#32_be_urc)
93 Refactoring Rules (#33_be_urc)
94 Introducing Unreal’s TArray (#34_be_urc)
95 Iterating over TArray with for (#35_be_urc)
96 Debugging Game Issues (#36_be_urc)
97 Managing Texture Tiling (#37_be_urc)
98 Pointer Protection Process (#38_be_urc)
99 Exposing Events to Blueprint (#39_be_urc)
100 Using Blueprint Timeline (#40_be_urc)
101 Everything in its Place (#41_be_urc)
102 Using Variables in Blueprint (#42_be_urc)
103 SFX & Audio Clips (#43_be_urc)
104 Section 3 Wrap-Up (#xx_be_urc)

Section 4: Battle Tank (bt_urc)

105 Intro, Notes & Section 4 Assets (#1_bt_urc)
106 Battle Tank Overview (#1b_bt_urc)
107 S04 Game Design Document (GDD) (#2_bt_urc)
108 Setting Up a GitHub “Repo” (#3_bt_urc)
109 Creating & Deleting Landscapes (#4_bt_urc)
110 Landscape Setup & Scaling (#5_bt_urc)
111 A Landscaping Process (#6_bt_urc)
112 Upgrading Engine Version (#7_bt_urc)
113 Using Landscape Layers (#8_bt_urc)
114 Flat Shading Low Poly Landscapes (#9_bt_urc)
115 More Landscaping Tools (#10_bt_urc)
116 Tank Control System (#11_bt_urc)
117 Actors from Multiple Meshes (#12_bt_urc)
118 Improved Models
119 Configuring a Tank (#13_bt_urc)
120 3rd Person Camera Control (#14_bt_urc)
121 Fixing 3rd Person Camera Rotation (#15_bt_urc)
122 User Interface (UI) in Unreal (#16_bt_urc)
123 Main Menu Screens (#17_bt_urc)
124 UI Scale Box, Buttons & Mouse (#18_bt_urc)
125 Controller Ready Navigation (#19_bt_urc)
126 Creating Unreal Engine UI with UMG and C++
127 Trial Packaging Your Game (#20_bt_urc)
128 Delegating to Components (#21_bt_urc)
129 Using virtual and override (#22_bt_urc)
130 Overloading and Polymorphism (#22b_bt_urc)
131 Virtual Functions and Vtables (#22c_bt_urc)
132 Creating an AI Controller Class (#23_bt_urc)
133 Get the Player Controller with C++ (#24_bt_urc)
134 Add Tick() to PlayerController (#25_bt_urc)
135 Creating an Out Parameter Method (#26_bt_urc)
136 Finding Screen Pixel Coordinates (#27_bt_urc)
137 Using DeprojectScreenToWorld (#28_bt_urc)
138 Using LineTraceSingleByChannel() (#29_bt_urc)
139 Unify Player & AI Aiming (#30_bt_urc)
140 Create Default Sub Objects in C++ (#31_bt_urc)
141 BlueprintCallable() (#32_bt_urc)
142 SuggestProjectileVelocity() (#33_bt_urc)
143 Predict Projectile Landing Point (#34_bt_urc)
144 Using FRotators in Unreal (#35_bt_urc)
145 The C++ Compilation Process (#35b_bt_urc)
146 Using Forward Declarations (#36_bt_urc)
147 BlueprintSpawnableComponent() (#37_bt_urc)
148 Review Our Execution Flow (#40_bt_urc)
149 How to Report Bugs (#41_bt_urc)
150 Using Clamp() to Limit Values (#42_bt_urc)
151 CHALLENGE - Turret Rotation (#43_bt_urc)
152 CHALLENGE - Turret Rotation Pt.2 (#44_bt_urc)
153 Setting Up Projectiles (#45_bt_urc)
154 Upgrading to Unreal 4.12 (#46_bt_urc)
155 A Note About The Movement Bug
156 Working Round Awkward Bugs (#47_bt_urc)
157 Using SpawnActor<>() to Spawn (#48_bt_urc)
158 Projectile Movement Components (#49_bt_urc)
159 Making AI Tanks Fire (#50_bt_urc)
160 EditAnywhere vs EditDefaultsOnly (#51_bt_urc)
161 Adding a Quit Button (#52_bt_urc)
162 Setup Track Throttles (#53_bt_urc)
163 ApplyForceAtLocation() in Action (#54_bt_urc)
164 Physics Materials & Friction (#55_bt_urc)
165 Fly-by-Wire Control System (#56_bt_urc)
166 Using BlueprintReadOnly (#57_bt_urc)
167 A Better Component Architecture (#58_bt_urc)
168 Completing Manual Tank Movement (#59_bt_urc)
169 Introducing AI Pathfinding (#60_bt_urc)
170 Dissecting RequestDirectMove() (#61_bt_urc)
171 DotProduct() Vector Operator (#62_bt_urc)
172 CrossProduct() Vector Operator (#63_bt_urc)
173 Finalising Your Class Code (#64_bt_urc)
174 How to Use Blueprint Variables (#65_bt_urc)
175 Using Enum(erations) in UE4 (#66_bt_urc)
176 Refactoring our Aiming Component (#67_bt_urc)
177 Attaching a Debugger to Unreal (#68_bt_urc)
178 Constructor & Begin Play Timing (#69_bt_urc)
179 Decoupling Your Architecture (#70_bt_urc)
180 BlueprintImplementableEvent (#71_bt_urc)
181 Using the ensure Assertion (#72_bt_urc)
182 Dependency Mapping (#73_bt_urc)
183 Talking Head - Real World Skills (#74_bt_urc)
184 Starting From Green (#75_bt_urc)
185 Aiming Without the Tank (#76_bt_urc)
186 Finishing our Refactoring (#77_bt_urc)
187 Adding TickComponent() Back (#78_bt_urc)
188 Are Two Floats Equal? (#79_bt_urc)
189 Programmatic Sideways Friction (#80_bt_urc)
190 OnComponentHit Event in 4.12 (#81_bt_urc)
191 Avoiding Boolean Flags (#82_bt_urc)
192 Improving Tank Aiming (#83_bt_urc)
193 Tweaking Tank AI (#84_bt_urc)
194 Making an Ammo Display (#85_bt_urc)
195 Making an AutoMortar (#86_bt_urc)
196 Improved Mortar Models
197 Using the Reference Viewer (#87_bt_urc)
198 Preparing for Particles (#88_bt_urc)
199 Introducing Particle Systems (#89_bt_urc)
200 Particle Bounding Boxes (#90_bt_urc)
201 Using FAttachmentTransformRules (#91_bt_urc)
202 Radial Forces & Caching (#92_bt_urc)
203 Using GetTimerManager() (#93_bt_urc)
204 Using TakeDamage() on Actors (#94_bt_urc)
205 BlueprintPure & Health Bars (#95_bt_urc)
206 The Observer Pattern (#96_bt_urc)
207 Finishing Off - Part 1 (#97_bt_urc)
208 Finishing Off - Part 2 (#98_bt_urc)
209 Section 4 Wrap-Up (#99_bt_urc)
210 Bonus - Switching Cameras (#100_bt_urc)
211 Get Started with Multiplayer
212 Fixing The Tank Suspension (#100b_bt_urc)
213 Upgrade to 4.19 And Bug Fixes (#101_bt_urc)
214 Real-world Vehicle Physics (#102_bt_urc)
215 Creating Physics Constraints (#103_bt_urc)
216 Making Springs (#104_bt_urc)
217 Converting The Spring To C++ (#105_bt_urc)
218 Attachment, Actors and Components (#106_bt_urc)
219 SpawnActorDeferred and BeginPlay (#107_bt_urc)
220 Attaching Constraints In C++ (#108_bt_urc)
221 Chaining Physics Constraints (#109_bt_urc)
222 Applying Wheel Driving Force (#110_bt_urc)
223 Solution: Implement GetWheels() (#111_bt_urc)
224 Tick Groups And Physics (#112_bt_urc)
225 Tweaking Linear & Angular Damping (#113_bt_urc)
226 BONUS: Fixing Collider Issues (#114_bt_urc)

Section 5: Testing Grounds FPS (tg_urc)

227 Testing Grounds Introduction (#1_tg_urc)
228 Testing Grounds GDD (#2_tg_urc)
229 WARNING: Tricky Content Ahead
230 Using Git LFS (Large File Support) (#3_tg_urc)
231 Marketing & Markdown (#4_tg_urc)
232 Use git clean to Revert Project (#5_tg_urc)
233 First Person Character Overview (#6_tg_urc)
234 The Third Person Character (#8_tg_urc)
235 Introducing AI Behaviour Trees (#9_tg_urc)
236 Introducing AI Blackboard Data (#10_tg_urc)
237 Target Points and Patrol Routes (#11_tg_urc)
238 Using Any Actor for Waypoints (#12_tg_urc)
239 Options for Grouping Actors (#13_tg_urc)
240 Blueprint Behaviour Tree Tasks (#14_tg_urc)
241 Modular Arithmetic & Cycles (#15_tg_urc)
242 Performance Profiling 101 (#16_tg_urc)
243 C++ AI Behaviour Tree Tasks (#17_tg_urc)
244 Reading Blackboard Data in C++ (#18_tg_urc)
245 The Consequences of Inheritance (#19_tg_urc)
246 Converting Blueprint to C++ (#20_tg_urc)
247 Composition over Inheritance (#21_tg_urc)
248 Talking Head: What We’ve Covered So Far (#21b_tg_urc)
249 How to Delete a C++ Class (#22_tg_urc)
250 Instanced Materials (#23_tg_urc)
251 Introducing AI Perception (#24_tg_urc)
252 OnTargetPerceptionUpdated Event (#25_tg_urc)
253 AI Hearing Perception in Unreal (#26_tg_urc)
254 The Animation Starter Pack (#27_tg_urc)
255 Changing a Character’s Animation (#28_tg_urc)
256 Customising a Character Blueprint (#29_tg_urc)
257 Sub Behaviour Trees (#30_tg_urc)
258 Talking Head - Introducing Sam (#31_tg_urc)
259 Talking Head - Refactoring Superpowers (#31b_tg_urc)
260 Simplifying Our Project (#32_tg_urc)
261 Renaming & Moving CPP (#33_tg_urc)
262 Solution: Renaming & Moving CPP (#34_tg_urc)
263 Holding a Gun with Skeletal Sockets (#35_tg_urc)
264 Understanding Animation Blueprints (#35b_tg_urc)
265 Creating Animation State Machines (#36_tg_urc)
266 Movement Blend Spaces (#37_tg_urc)
267 Offset Animations (#38_tg_urc)
268 Aiming Blend Spaces Offsets (#39_tg_urc)
269 Rotating with SetFocalPoint() (#40_tg_urc)
270 Character Movement vs Rotation (#41_tg_urc)
271 Control Rotation for Aim (#42_tg_urc)
272 Behaviour Tree Decorators (#43_tg_urc)
273 Behaviour Tree Services (#44_tg_urc)
274 Tweaking AI Behaviour (#45_tg_urc)
275 Debugging AI Behaviour (#46_tg_urc)
276 Refactoring to a Gun Actor (#47_tg_urc)
277 Attaching Actors to Components (#48_tg_urc)
278 Configuring the Gun (#49_tg_urc)
279 Moving Files from LFS to Git (#50_tg_urc)
280 To LFS or Not to LFS? (#51_tg_urc)
281 Child Actor Components (#52_tg_urc)
282 Introduction to Inverse Kinematics (#52b_tg_urc)
283 Inverse Kinematics with Animations (#53_tg_urc)
284 Comparing Blueprints with Diffs (#54_tg_urc)
285 Boolean Blending for Aim States (#55_tg_urc)
286 Adding Firing Animations (#56_tg_urc)
287 Animation Notify Events (#57_tg_urc)
288 Taking Damage in Blueprint (#58_tg_urc)
289 Death Animations and Refactors (#59_tg_urc)
290 Switching 1st and 3rd Person (#60_tg_urc)
291 Owner Invisible Meshes (#61_tg_urc)
292 Separating Firing from Gun Meshes (#62_tg_urc)
293 Aiming Our 1st Person Camera (#63_tg_urc)
294 Architecture of Infinite Runners (#64_tg_urc)
295 Spawning Terrain in the GameMode (#65_tg_urc)
296 Level Gating for Testing Grounds (#66_tg_urc)
297 Swapping Materials in Blueprint (#67_tg_urc)
298 Garbage Collecting Previous Tiles (#68_tg_urc)
299 Merging Our TP and FP Files (#69_tg_urc)
300 Hit vs Overlap Events (#70_tg_urc)
301 Dynamically Calculating NavMesh (#71_tg_urc)
302 Keep It Simple Stupid (#72_tg_urc)
303 Parallel Behaviour Tree Tasks (#73_tg_urc)
304 Custom BT Tasks and Decorators (#74_tg_urc)
305 External Build Data in 4.14+ (#75_tg_urc)
306 Physical Gun Architecture (#76_tg_urc)
307 Converting a Character BP to C++ (#77_tg_urc)
308 Who’s Pulled the Trigger? (#78_tg_urc)
309 Cooldown Nodes & Gameplay Tags (#79_tg_urc)
310 Animation Montages and Slots (#80_tg_urc)
311 Reattaching the Gun (#81_tg_urc)
312 Procedural Level Generation (#82_tg_urc)
313 Generating Random Numbers (#83_tg_urc)
314 Spawning Actors in the Tile (#84_tg_urc)
315 Sphere Casting in C++ (#85_tg_urc)
316 Configure Custom Trace Channels (#86_tg_urc)
317 Spawning into Free Space (#87_tg_urc)
318 Randomising Rotation & Scale (#88_tg_urc)
319 Flyweight Pattern for Foliage (#89_tg_urc)
320 Choosing Waypoint with EQS (#90_tg_urc)
321 Find Actors of Type from C++ (#91_tg_urc)
322 Plumbing an Actor Pool Setup (#92_tg_urc)
323 Using the Pool API (#93_tg_urc)
324 Using TArray for Pools (#94_tg_urc)
325 Rebuilding Navigation Meshes (#95_tg_urc)
326 Structs to Simplify Function Args (#96_tg_urc)
327 Spawning AI from C++ (#97_tg_urc)
328 Keeping Score (#98_tg_urc)
329 Understanding Function Templates (#98b_tg_urc)
330 Template Specialization (#98c_tg_urc)
331 Fixing Double Spawning (#98d_tg_urc)
332 Using the HUD Class (#99_tg_urc)
333 Post Processing for Tunnel Vision (#100_tg_urc)
334 Recruiting Play Testers (#101_tg_urc)
335 Smooth Blending the Camera (#102_tg_urc)
336 Possessing and the View Target (#103_tg_urc)
337 The Calm Before The Storm (#104_tg_urc)
338 Testing Grounds Wrap-up (#xxx_tg_urc)

Last updated Sat 6 Feb at 13:04 UK Time

Tell us what you think of these index posts

Privacy & Terms