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

Using the UPROPERTY macro

The UPROPERTY macro is placed above the definition of standard C++ class variables to declare Unreal-recognized class properties. The UPROPERTY macro can have specifiers and metadata for different use cases.

The UPROPERTY syntax

Let’s take a look at the UPROPERTY syntax:

UPROPERTY([specifier1, specifier2, …], [meta(key1=value, key2=value2, … )]Type VariableName;

Let’s break it down:

  • As with function parameters, the specifiers and metadata are enclosed by a pair of parentheses
  • The square brackets are used to indicate that the enclosed content is optional
  • The ellipsis means that you can include more items
  • The metadata keys are only valid in the editor, and not for any game logic

Let’s look at two examples. The first example shows how to define a simple UPROPERTY variable:

UPROPERTY()bool bHasWeapon;

This example defines the bHasWeapon property without any specifiers and metadata...