Unreal Engine 4.x Scripting with C++ Cookbook - Second Edition
Learn |
|
---|---|
About |
Unreal Engine 4 (UE4) is a popular and award-winning game engine that powers some of the most popular games. A truly powerful tool for game development, there has never been a better time to use it for both commercial and independent projects. With more than 100 recipes, this book shows how to unleash the power of C++ while developing games with Unreal Engine. This book takes you on a journey to jumpstart your C++ and UE4 development skills. You will start off by setting up UE4 for C++ development and learn how to work with Visual Studio, a popular code editor. You will learn how to create C++ classes and structs the Unreal way. This will be followed by exploring memory management, smart pointers, and debugging your code. You will then learn how to make your own Actors and Components through code and how to handle input and collision events. You will also get exposure to many elements of game development including creating user interfaces, artificial intelligence, and writing code with networked play in mind. You will also learn how to add on to the Unreal Editor itself. With a range of task-oriented recipes, this book provides actionable information about writing code for games with UE4 using C++. By the end of the book, you will be empowered to become a top-notch developer with UE4 using C++ as your scripting language! |
Features |
|
Page Count | 708 |
Course Length | 21 hours 14 minutes |
ISBN | 9781789809503 |
Date Of Publication | 29 Mar 2019 |
Introduction |
Technical requirements |
Installing Visual Studio |
Creating and building your first C++ project in Visual Studio |
Changing the code font and color in Visual Studio |
Extension – changing the color theme in Visual Studio |
Formatting your code (Autocomplete settings) in Visual Studio |
Shortcut keys in Visual Studio |
Extended mouse usage in Visual Studio |
Installing Unreal Engine 4 (UE4) |
Creating your first project in UE4 |
Creating your first level in UE4 |
UE4 – hot reloading |
UE4 – logging with UE_LOG |
UE4 – making an FString from FStrings and other variables |
Introduction |
Technical requirements |
Unmanaged memory – using malloc( ) / free( ) |
Unmanaged memory – using new/delete |
Managed memory – using NewObject< > and ConstructObject< > |
Managed memory – de-allocating memory |
Managed memory – smart pointers (TSharedPtr, TWeakPtr, TAutoPtr) to track an object |
Using TScopedPointer to track an object |
Unreal's garbage collection system and UPROPERTY( ) |
Forcing garbage collection |
Breakpoints and stepping through code |
Finding bugs and using call stacks |
Using the profiler to identify hot spots |
Introduction |
Technical requirements |
Axis Mappings – keyboard, mouse, and gamepad directional input for an FPS character |
Axis Mappings – normalized input |
Action Mappings – one-button responses for an FPS character |
Adding Axis and Action Mappings from C++ |
Mouse UI input handling |
UMG keyboard UI shortcut keys |
Collision – letting objects pass through one another using Ignore |
Collision – picking up objects using Overlap |
Collision – preventing interpenetration using Block |
Introduction |
Technical requirements |
Exposing UInterface methods to Blueprint from a native base class |
Implementing UInterface functions in Blueprint |
Overriding C++ UInterface functions through Blueprints |
Calling Blueprint-defined interface functions from C++ |
Introduction |
Technical requirements |
Core/Logging API – defining a custom log category |
Core/Logging API – FMessageLog to write messages to the Message Log |
Core/Math API – rotation using FRotator |
Core/Math API – rotation using FQuat |
API – rotation using FRotationMatrix to have one object face another |
GameplayAbilities API – triggering an actor's gameplay abilities with game controls |
GameplayAbilities API - Implementing stats with UAttributeSet |
GameplayAbilities API – implementing buffs with GameplayEffect |
GameplayTasks API – making things happen with GameplayTasks |
HTTP API – downloading webpages using web requests |
HTTP API – displaying downloaded progress |