
Migrate a first person level to a new project, save the level, move the level folder, update redirector references, and set the editor startup map to first person.
Increase the tetra streaming pool size by editing defaultengine.ini and setting r.streaming.poolsize to a value based on your system’s vram, e.g., 3000 for 8 gb VRAM.
Create a GameModeBase class in Unreal Engine, compile it, and build a blueprint based on it to manage player spawn, default game mode, and basic multiplayer behavior.
Create and bind an input action IA jump and an input mapping context IMC to the spacebar, enabling character movement via the local player's enhanced input subsystem.
Bind the input action Jump using the enhanced input component and a callback within the input mapping context. Configure trigger as Presses so the action fires once per key press.
Bind move action with W, A, S, D to a vector2D. Clamp input magnitude, move with addMovementInput in camera-based directions, and orient rotation to movement.
Create a start cycle state in the animation blueprint to smoothly transition from idle to JogForward, with automatic progress to cycle and return to idle when not moving.
Create a stop cycle state in the animation blueprint to smooth transitions between moving, stopping, and idling, using non-looping stop sequences, transition rules, and timing adjustments.
Migrate footstep and jump sounds from the game animation sample into your project, organizing an animation and audio folder structure in Unreal Engine.
Explore creating a sound attenuation asset for footstep and jumpstep cues, set inner radius and full knob distance, and visualize range with a debug sphere for audible fade.
Learn to convert a bone’s local space transform to the root-relative max space transform by composing bone poses from pelvis to the target bone.
Automatically add an animation notify to track in blueprint when object touches ground by checking z and using frame time. Use a guard boolean to ensure one notify per contact.
Apply the footstep modifier to the running animation, make the canAdd property non-editable in the foot data structure, and rename the notify to a shorter footstep name.
Explore how to distinguish jumping and falling states in Unreal Engine, using velocity z and in-air conditions to drive animation blueprints and state machines for accurate character movement.
Calculate the rotation delta between current and previous frames to drive a 1D lean blend space that tilts the character left or right during turns.
Bind a left mouse click to the attack input action iaAttack in Unreal Engine. Connect the action to player character's input component and trigger the attack component's local input press.
Set up an unsigned 8-bit tag index to cycle through four attack animations, resetting to zero when it reaches the total, and update it after each montage.
Learn to prevent attack spamming in Unreal Engine by using a boolean state (bAttacking) to gate attacks, update state with onSetAttacking, and synchronize animation montages with gameplay state.
Learn to implement server remote procedure calls (rpc) in Unreal Engine multiplayer, ensuring server authority, listen-server setup, and reliable client–server synchronization for attacks.
Create a replicated attack state struct to hold e-attacking and attack index, enabling server-client consistency by using a unified state and preparing to replace attack index with attack count.
Replace attack index with attack count, incrementing on each attack with a 16-bit value, and add a function to map attack montages by count while ensuring server and client synchronized.
Create a new animNotify for open combo window, override its name and color in C++, and apply it at key frames in the melee combat montage to enable combo changes.
Blend locomotion and combat poses in Unreal Engine using layer blend per bone, slot combat, and mesh space rotation to attack while running.
Organize your Unreal project by migrating the first person level and related assets, then adjust gamemode overrides in world settings and move global, material, mesh, and texture folders.
Enable network emulation to test multiplayer latency and observe client-server attack replication with a client predicting attacks. Learn how Unreal's Gameplay Ability System provides client prediction to reduce input delay.
Configure Rider to enable gameplay ability system flagging in Unreal Engine, index engine and third-party code, then restart editor. Add gameplay abilities, tags, and tasks modules and refresh Rider view.
Override the possesses by callback on the server to initialize AbilityActorInfo in the ability system component after possession by the controller. Mirror on client after the flyer state replicates.
Create first attack gameplay ability in a blueprint, print activation, end ability to prevent looping, print end ability in red, then compile, save, and assign to the Ability System Component.
Use the flyMontageAndWait ability task to play the attacking montage in unreal engine, specifying the montage and ending the ability on montage conflict or during blending out, interrupted, or cancelled.
Learn how instancing policy controls how abilities are instantiated, comparing instances per execution (no state) with instance per actor (one instance per actor that supports replication and RPC).
Discover how net execution policy decides where an ability runs—server, client, or both—and the order of execution for replication. Use local-predicted for basic attack.
Learn to use the wait gameplay event ability task to pause an ability until an attack montage or notify ends, then end the ability to reactivate quickly.
Convert flight montage and weight from blueprint to C++, implementing an ability task that plays the attack montage with stop when end disabled and binds conflict, interrupt, and cancel delegates.
Combine all attack montages into one full combo montage by duplicating slow A and adding B, C, and D, then remove links for controlled playback.
Create and define gameplay tags for open and close combo windows, enabling tag-driven transitions through multiple combo stages (1–6) and updating the cpp to remove legacy events.
Listen for the close combo window event, replace open with close in the task workflow, and implement a closeComboWindow callback to trigger on combo close.
Reset sessionName to nameNone when the end ability triggers, and guard with an active check to run the cleanup only once, even across multiple function calls.
Build a value bar widget blueprint to show health, mana, and stamina above a character, using a canvas panel, progress bar, and text block with proper sizing and alignment.
Create a C++ class derived from UserWicked to implement a value bar widget. Bind a progress bar and text, implement updateValue to format and display the value.
Create a custom widget component class in c++ and attach it to the character's root, moving it 100 units upward and configuring screen-space drawing and size.
Create an attribute set for health and max health using GameFlightAttributeData with base and current values, expose via uProperty, and use AttributeValueGetter and AttributeAccessorBasic to integrate with the AbilitySystemComponent.
Create a BlueFrameFunctionLibrary named mcoHelper to host static helper functions for head authority checks on actors, with null checks and integration into the mcoAbilitySystem component.
Update the health bar by attribute value using the ability system component, fetch held and max held values, and refresh the overhead widget with the updateHeldBar method.
Optimize Unreal Engine code by caching the casted object pointer wickedOverhead and casting only when null, using a getter with forward declaration and the QProperty macro, reducing updateHeldBar overhead.
Demonstrate sphere trace hit detection in an attacking animation by building a blueprint actor, looping a 0.5 second single trace (later multi), and visualizing results with debug draws.
Replace sphere trace single with sphere trace multi to hit all characters, returning an array of hits, then use a for-each loop to process each hit.
Implement hit detection in Unreal Engine by sending GameFlightEvent via animNotifyState for hitDetectionEvent. Create a hitDetection GameFlightTag, override notify methods, and centralize event sending with mcoHelper and SkeletalMeshComponent.
Fix a function name collision in Unreal Engine by renaming a non-overriding input function to combo input fresh, ensuring proper override and a clean build with no warnings.
Process hit results by looping through the hitResult array from sphereTraceMulti, extracting and logging each victimActor's name, with null checks and a single flyer standalone test.
Create and apply a new GameFlightEffect to reveal the victim’s health, adjusting the health attribute, and apply it to the target via the AbilitySystemComponent, then test in basic attack.
Override the preAttributeChain to claim the health currentValue before changes, clamp newValue between 0 and maxHealth, and update the health attribute so currentValue never goes below zero during attacks.
Practice server-side sphere trace for damage in multiplayer by validating hit detection on the server, ensuring health replication to clients and a consistent client experience.
Refactor by merging SophiaTray and processHitResult into performTrayAndProcessHitResult, with parameters TrayStack, givenTrayColor, actor to ignore array, and by-count reference. Recompile Unreal Editor, run standalone, and confirm hit detection still works.
Learn to fill gaps between consecutive traces in Unreal Engine by tracking previous and current trace start and end, computing the fill step, and iterating traces.
This course focuses on professional Unreal Engine development workflows, best practices, scalability, Multiplayer systems, and high-performance architecture using both C++ and Blueprint.
The course is heavily focused on Multiplayer game development, including networking architecture, Replication, RPCs, Relevancy, Client Prediction, and Gameplay Ability System (GAS) workflows commonly used in online games such as RPGs and MOBAs.
Unlike beginner courses that focus mainly on getting a game to work, this course focuses on how professional studios actually build large-scale Unreal Engine projects. The goal is not just functionality, but maintainability, modularity, performance, scalability, workflow efficiency, and long-term project organization.
This course heavily emphasizes Unreal Engine C++ development while also covering Blueprint workflows, Animation Blueprints, Multiplayer systems, and Gameplay Ability System (GAS). You will learn how different systems communicate with each other, how to avoid common architecture mistakes, and how to design projects that are easier to expand over time.
Many lectures go into extremely detailed topics — sometimes focusing entirely on a single checkbox, option, workflow detail, or optimization technique that most developers overlook. These small details often make a major difference in performance, scalability, maintainability, and development speed.
You will also learn professional approaches to Multiplayer game development, including Replication, RPCs, Client Prediction, and GAS integration for RPG or MOBA-style projects.
This course is designed for developers who already understand Unreal Engine fundamentals and want to move beyond simply “making the game work.” The focus of this course is learning professional workflows, scalable architecture, modular systems, and real-world Unreal Engine best practices used in larger productions.
The course targets Unreal Engine 5.7+ and future Unreal Engine versions as the engine evolves.
Important Notes
This course uses Unreal Engine 5.7+
Future course updates will continue supporting newer Unreal Engine versions whenever possible
This is an ongoing course that will receive long-term content updates over time
The course is heavily focused on Multiplayer game development workflows and best practices