Book Image

Unreal Engine 5 Game Development with C++ Scripting

By : ZHENYU GEORGE LI
Book Image

Unreal Engine 5 Game Development with C++ Scripting

By: ZHENYU GEORGE LI

Overview of this book

Unreal Engine is one of the most popular and accessible game engines in the industry, creating multiple job opportunities. Owing to C++ scripting's high performance, advanced algorithms, and engineering maintenance, it has become the industry standard for developing commercial games. However, C++ scripting can be overwhelming for anyone without a programming background. Unreal Engine 5 Game Development with C++ Scripting will help you master C++ and get a head start on your game development journey. You’ll start by creating an Unreal Engine C++ project from the shooter template and then move on to building the C++ project and the C++ code inside the Visual Studio editor. You’ll be introduced to the fundamental C++ syntax and essential object-oriented programming concepts. For a holistic understanding of game development, you’ll also uncover various aspects of the game, including character creation, player input and character control, gameplay, collision detection, UI, networking, and packaging a completed multiplayer game. By the end of this book, you’ll be well-equipped to create professional, high-quality games using Unreal Engine 5 with C++, and will have built a solid foundation for more advanced C++ programming and game development technologies.
Table of Contents (18 chapters)
1
Part 1 – Getting Started with Unreal C++ Scripting
6
Part 2 – C++ Scripting for Unreal Engine
12
Part 3: Making a Complete Multiplayer Game

Checking an Actor instance’s actual class type

In Unreal, the OOP approach regularly utilizes inheritance to declare class relations. Even though inheritance has the advantage of code reuse, it has the limitation of storing and returning instances while only knowing the base class types.

Based on the inheritance design pattern, type casting very often occurs in OOP. An example in Unreal scripting is that when a collision triggers an overlap event, the two parameters of the event function are both AActor* type pointers, whereas they should be of the APlayerAvatar*, AEnemy*, or ADefenseTower* type.

To find out whether AActor* is another child class type pointer, we use the Cast function to cast the AActor* pointer to the required type of pointer (APangaeaCharacter*, for example) and check whether the result is nullptr or not. If the Cast operation fails, it means that the actor is not the type of actor we need:

void AWeapon::OnWeaponBeginOverlap(AActor* OverlappedActor...