
Explore Unreal Engine game coding with a focus on 4.25 transferable to 5, using C++, physics fundamentals across Nvidia and Chaos, and provided source code.
Explore Unreal Engine's multiplatform capabilities, world-class rendering, and tools from skeletal meshes and niagara to open world, hierarchical level of detail, and artificial intelligence systems.
Learn to set up the Epic Games Launcher, sign in, download and install updates, and choose between the stock Unreal Engine or building from source.
Explore stock versus customized Unreal Engine setups, and learn when to modify the engine by downloading from GitHub, including version control, upgrades, and console malleability.
Install a stock Unreal Engine via the Epic Games Launcher, selecting the latest engine version and awaiting installation. If you plan to compile from source, skip this lecture.
Learn how to download Unreal Engine from source code, link your Epic Games and GitHub accounts, and download a specific engine version as a zip for smooth integration.
Install the free Visual Studio Community 2019 for Unreal Engine development, selecting desktop with C++ and game development with C++, then sign in.
Install the UnrealVS extension in Visual Studio, customize the toolbar and the projects and solutions options, and adjust intellisense and squiggles to streamline Unreal Engine development.
Learn how to compile Unreal Engine from source, run GenerateProjectFiles.bat, resolve .NET 4.6.2 issues, build in Visual Studio, launch the editor, and prepare for version control.
Version control provides backup, sharing, and a time-machine history for code and data, usable locally or on a server, with Perforce or Git as common options.
Evaluate when to use version control for Unreal Engine projects and prepare the engine for upload. Set up Perforce Helix Core Server and P4V to manage assets and code.
Learn how to add a customized unreal engine to version control with Perforce, configure typemap and workspace mappings, and manage file uploads—including dlls and exes—by marking, submitting, and excluding binaries.
Explore core Unreal Engine terminology, from projects and UObjects to blueprints and AActor. Learn how levels, world, pawns, player state, player controller, and game modes organize gameplay.
Explore the Unreal Engine editor by creating a blueprint project with starter content, placing actors, editing components and materials, and adjusting lighting.
Develop core C++ skills for Unreal Engine game coding, focusing on fundamentals—declarations, expressions, pointers, functions, structures, classes, const correctness—and C++14 features.
Unreal Engine blueprints enable visual scripting in the editor, deriving from existing C++ or blueprint classes, customizing data, and adding code via graphical nodes for player input.
Compare C++ and blueprints in Unreal Engine to balance performance and debugging, with a preference for C++ for most code, and blueprints for class data customization and prototyping.
Adopt a robust Unreal Engine coding standard, following Epic's guidelines for class organization, naming conventions, comments, and safe parameter handling to ensure readable, maintainable code.
Examine Epic's rolling template to preview a prototype, noting static meshes, physics-enabled obstacles, a post-process setup, and a ball pawn with a camera for future coding.
Create your first UE4 project in Visual Studio, set MetalInMotion as startup, and explore core files like Build.cs, Target, and the basic game mode.
Explore the core class hierarchy in Unreal Engine by building a custom game mode, pawn, and debugging hud, using a stock player controller and camera manager.
Learn to create c++ classes in the Unreal editor, derive from pawn for a ball bearing, enable tick and physics, and build a blueprint with a static mesh called materialsphere.
learn to integrate provided source code for a ball bearing pawn in Unreal Engine, map input actions, and implement movement and camera with a spring arm.
Learn Unreal Engine file naming conventions, including prefixes T_ textures, M_ materials, S_ and SK_ meshes, BP_ blueprints, and a directory structure to prevent collisions.
Create a debugging hud in Unreal Engine by building a base hud class and a derived ball bearing hud. Render statistics using a hud canvas and font, with blueprint overrides.
Explore Unreal Engine's native dynamic arrays (TArray), learn how to declare, access, and modify elements with Add, Emplace, Insert, Remove, and Reset, iterate with ranged-for, and sort with simple lambdas.
Unreal engine's actor life-cycle includes construction, initialization, the main loop, and destruction. Initialize variables, create subobjects, use post initialize components and begin play, then tick each frame and end play.
Construct a test level in Unreal Engine by setting a player start, adjusting lighting and post-processing, and building obstacles with starter content shapes.
Examine the C++ blueprint divide in Unreal Engine and how a derived blueprint game mode links the pawn blueprint to balance clean C++ interfaces with flexible blueprint access.
Conclude by reviewing Unreal Engine project basics: actor life cycle, properties, blueprints and C++ integration, level design, input and physics, debugging HUDs, and next steps in math.
Build confidence in 3D math for game programming with visual explanations and apply core concepts and engine functions to solve practical problems.
Learn how the C++ compiler evaluates expressions in a fixed order, from parentheses to multiplication and division before addition and subtraction, and use parentheses to remove ambiguity.
Master degrees and radians in Unreal Engine, learn to convert between units, and note function and material expectations for angular velocity in radians and the zero-to-one sign range.
Master ratios as a parametric 0-to-1 scale used in game math, including interpolation and distance-based volume attenuation with logarithmic falloff. Clamp ratios between min and max values to drive calculations.
Explain sine, cosine, and tangent; plot circles with sine and cosine using atan2; discuss noise generation with multiple sine waves; apply tangent to camera field of view in Unreal.
Learn how abs and sign manage magnitude and direction in game coding, restoring the original sign after power or modulo operations, and distinguishing unit sign from sine.
Learn to use the power function to shape motion and easing by varying input values and the exponent, producing rapid pops or gradual ramps while remaining cpu-friendly.
Master interpolation, using a ratio to find values between two points. See zero map to from and one map to to, with a throttle example from minimum to maximum power.
Learn to create smooth motion by turning linear interpolation into ease in, ease out, and ease in out curves using a power-based smoothing function and sigmoidal shaping for animation code.
Blend previous and target yaw with frame-rate aware smoothing driven by delta seconds to keep camera rotation smooth, regardless of frame rate, and apply similar smoothing to vehicle light trails.
Learn how to generate random numbers in Unreal Engine using seed-based randomness, rand range, and helper functions. Understand how to manage determinism, predictability, and exclusive random streams for game logic.
Explore 3d vectors in Unreal Engine, using x, y, and z coordinates for positions and directions in a left-handed system. Master length, normalization, and vector addition, subtraction, and scaling.
Explore the dot product as a fast, versatile tool for 3D vectors, normals, and directions, using cosine angles and simple arithmetic to test frontness and intersections.
Explore cross products, a vector perpendicular to two inputs, via FVector CrossProduct, and use it with forward and up vectors to derive camera orientation and roll.
Explore quaternions as a compact orientation representation and learn how spherical interpolation moves between orientations along the shortest path.
Explore rotators as an intuitive orientation representation in Unreal Engine, using roll, pitch, and yaw in degrees; learn normalization, interpolation options, and converting rotators to quaternions or vectors.
Explore how transforms combine scale, rotation, and translation to move points in three-dimensional space with the F transform, and see transform position and transform vector no scale effects.
Explore coordinate spaces as frames of reference in Unreal Engine, and learn to transform between world space, vehicle space, and parent-child hierarchies using transform and get component transform.
In Unreal Engine, avoid FMatrix for day-to-day transforms; use FTransform, and reserve FMatrix for constructing orientation from forward, right, and up axes, where inversions are costly.
Apply the course math by testing formulas in a spreadsheet, visualizing results with lightweight tools, and steadily applying insights as you implement projects in Unreal Engine.
The lecture enhances the playable ball bearing by adding jump and dash mechanics, velocity clamping, and vector-based physics to improve control and increase fun, with level design opportunities.
Explain how to declare C++ functions for Unreal's reflection system, expose them to blueprints via blueprint callable or blueprint pure, and manage input/output parameters, references, and pointers.
Explore magnetism in Unreal Engine game coding by making level goals attract ball bearings, computing direction and distance, and applying a tunable magnetic force in the tick loop.
Learn to use the Unreal Engine console to issue commands, set variables, and configure console variables in config files for rapid testing and default state control.
Finish the game by detecting end states when all goals have ball bearings, using a goal check loop. Add background music and applause audio, and implement finish timer with restart.
Add sound effects, bearing bombs, and magnetic bearings to levels, design engaging environments around the playable bearing, and prepare for housekeeping lectures as you level up.
Explore Visual Studio build configurations, focusing on development editor for editor runs, development for running outside the editor, and test for optimized debugging, while ignoring others for now.
Learn to check in an Unreal Engine project to version control by adding content, config, and source folders while excluding caches, and connect the editor to source control.
Learn how to integrate the Perforce Helix plugin with Visual Studio to automatically check out files and streamline version control for Unreal Engine game coding.
Jump straight into Unreal Engine game coding by building a physics-driven vehicle that can drive upside down while enhancing graphics, audio, AI bots, guns, missiles, and camera work.
Explore basic physics principles in Unreal Engine, covering rigid body dynamics, physics bodies, forces and impulses, torque, mass, center of mass, and inertia tensor to build a vehicle dynamics model.
Create your second Unreal Engine project in C++, load the starter setup, and build a test level. Configure gravity, surface types, and object channels with missile and vehicle presets.
Modify Unreal Engine physics to support vehicle collisions by updating five core files, adding contact modification, inertia tensor, and center of mass controls for realistic balance.
Download and install the GRIP source code and data incrementally to keep up with each lecture, overwrite updated folders, and regenerate Visual Studio project files for interactive learning.
Build a custom vehicle dynamics model in Unreal Engine using a skeletal mesh and physics asset. Learn about center of mass, inertia overrides, and tuned mass to achieve stable handling.
Master the GRIP code in Unreal Engine by studying a minimal, progressively built vehicle and camera system, data assets, and modular blueprints, all while adhering to coding standards.
Explore building a physics-first vehicle in Unreal Engine, using a dedicated vehicle component to manage fixed-rate physics delta time with sub stepping, ensuring thread-safe interactions with the physics subsystem.
Learn how diagnostic checks and Unreal Engine macros guard code with check and verify, log issues to the output, and decide behavior across debug and shipping builds.
Explore implementing realistic vehicle suspension in Unreal Engine by using wheel contact sensors, line sweeps, and optimized estimation to control axle dynamics and maintain gameplay stability.
Explore Unreal Engine logging to diagnose issues by sending messages to the editor output log or Visual Studio, using a shared log category, verbosity levels, and the log macro.
Explore how to translate real-world physics into a drivable game vehicle by balancing gravity, drag, rolling resistance, downforce, and jet engine propulsion, with practical compromises for control and gameplay.
Explore Unreal Engine class specifiers via the UCLASS macro, focusing on abstract, blueprintable, and blueprint type. See how inheritance shapes defaults and blueprint usage and note transient properties for structs.
Explore how to simulate grip in Unreal Engine game coding, implementing longitudinal and lateral tire grip, wheel rotation, ground speed, braking, and suspension for a controllable vehicle.
Improve vehicle collisions by adding a secondary physics box attached to the vehicle mesh and apply contact modification to reduce rotational forces for vehicle contacts.
Learn how to implement drift in a vehicle in Unreal Engine by using rear-wheel lateral grip, drift angle adjustments, and drift states to balance control and style.
Explore how physics materials control friction and restitution, and how combined modes like min, mean, max shape interactions with surface types such as asphalt, metal, and rock.
Explore how the engine uses delta time to drive frames and how v-sync and smoothing reduce tearing and stutter, with guidance to enable smoothing and avoid fixed frame rates.
Reconcile the frame delta time with physics substeps by choosing the number of substeps and per-step delta time to balance accuracy and performance, using fixed timestep concepts and interpolation.
Explore how to control game timing with global and per-actor time dilation, using base time dilation and custom time dilation to slow or speed time, and the physics considerations involved.
Explore how to schedule future events with Unreal Engine timers, including timer handles and functions, and learn time sharing to spread vehicle AI updates across frames for CPU-friendly optimization.
Explore floating point precision in Unreal Engine coding, compare floats and doubles, and learn how rebasing current time keeps accuracy within a time-sharing structure.
Explore textures, materials, and particle systems in Unreal Engine, learn how textures feed materials, how materials act as shaders, and how data assets drive driving surface effects.
Learn how driving surfaces and wheel effects are implemented in pro Unreal Engine game coding, using per-wheel data structures to drive regular and fixed particle effects with dynamic dust color.
Explore vehicle body and tire impact effects, spawning dust clouds and sparks via particle systems. Play surface sounds and shake the camera to reinforce hard and normal collisions.
Learn automatic bidirectional traction control for vehicle dynamics, shifting grip bias between front and rear tires during reversal to achieve stable steering and improved handling.
Explore how engineers ameliorate vehicle dynamics through code tweaks, hacks, and tuning to balance realistic physics with engaging gameplay, prioritizing the player experience.
Enable continuous collision detection (CCD) to prevent tunneling of fast-moving bodies. Set max substep delta time to 0.01 for 100 hertz, and attach a small CCD sphere to vehicles.
Explore audio data assets, sound cues, and sound waves in Unreal Engine, then use attenuation, overrides, and the master sound class hierarchy to shape vehicle sounds with volume and pitch.
Learn to implement realistic vehicle audio in Unreal Engine using attached audio components, per-vehicle global volume, camera locations, and bell-curve attenuation to prioritize nearby vehicles.
Learn how splines underpin robot navigation, driving cues, and vehicle control in Unreal Engine, with control points, environmental space data, and cinematic cameras shaping gameplay.
Determine the closest point on a spline to a world position by iteratively refining with a binary chop approach, using squared distances, local-space conversion, and early exit optimizations for performance.
Discover how autonomous bots navigate with pursuit splines, compute ahead aiming points, and switch splines at junctions using weaving offsets and speed data to drive smoothly along tracks.
Develop bot-driven vehicle control by computing throttle for target speed, steering toward a spline waypoint, and applying human-like inputs via throttle, steering, and handbrake, with route decisions.
Discover how Unreal Engine bots use layered driving modes—from general maneuvering to recovering control and J turn reorientation—driven by local-space collision analysis and adaptive decision making.
Learn how bots use an attractable interface to chase speed pads, using distance and angle checks, pursuit splines, and cached world data to drive boosts.
Explore the current collision avoidance in the Meinhof project and the planned upgrade to a more advanced system, given robust collision response reducing the need for overhaul.
Hey there, and welcome to the course, Pro, Unreal Engine, Game Coding. aka, the Black Book, but why the Black Book? Well, just watch the short preview video if you want the full experience. But if you like reading, then around 25 years ago, when I was just entering the games industry, there emerged just such a black book. A book of graphics programming, full of coding voodoo written by the programming powerhouse that is Michael Abrash. And this black book, took many coders like myself, from being merely competent, to being able to produce something akin to magic on the screen. It was legendary.
Naturally, a lot has changed since then, and in this course we've crafted a new black book for a new generation, a series of masterclasses in Unreal Engine game coding for the 2020s. I want to give you guys, what it was, that Michael Abrash gave my generation. I'm going to take you from being an Unreal Engine virgin, to being a real pro, and a prized asset to any employer.
My last game, GRIP: Combat Racing, will be the focus for the latter half of this course, and we'll get to see an awful lot of what's going on under the hood there. We're going to expose all of its secrets. This journey will take you from being a C++ novice, all the way up to writing the most challenging racing game I've ever been involved with, and I've written a few. But if that sounds terrifying, don't worry, we've got this. We can do this, together.
I'll be presenting in a no-nonsense style, side-stepping a lot of the hokum you don't need to know, focusing intently on the stuff you really do, and providing rock-solid examples of how to apply what you'll be taught here. This is not academia, this is real-world getting it done, and getting it done well kind of coding. This is stuff taken straight from the battlefield of game development. After firmly establishing all of the fundamentals, I'll be imbuing you with tricks and techniques, algorithms and insights, gathered from decades of coding experience that you can apply across many game genres. We're going to turn you, into an Unreal Engine Ninja.
So get ready coder one, because we've got work to do.