Book Image

Elevating Game Experiences with Unreal Engine 5 - Second Edition

By : Gonçalo Marques, Devin Sherry, David Pereira, Hammad Fozi
Book Image

Elevating Game Experiences with Unreal Engine 5 - Second Edition

By: Gonçalo Marques, Devin Sherry, David Pereira, Hammad Fozi

Overview of this book

Immerse yourself in the Unreal game projects with this book, written by four highly experienced industry professionals with many years of combined experience with Unreal Engine. Elevating Game Experiences with Unreal Engine 5 will walk you through the latest version of Unreal Engine by helping you get hands-on with the game creation projects. The book starts with an introduction to the Unreal Editor and key concepts such as actors, blueprints, animations, inheritance, and player input. You'll then move on to the first of three projects, building a dodgeball game, where you'll learn the concepts of line traces, collisions, projectiles, user interface, and sound effects. You’ll also discover how to combine these concepts to showcase your new skills. The second project, a side-scroller game, will help you implement concepts such as animation blending, enemy AI, spawning objects, and collectibles. And finally, you'll cover the key concepts in creating a multiplayer environment as you work on the third project, an FPS game. By the end of this Unreal Engine book, you'll have a broad understanding of how to use the tools that the game engine provides to start building your own games.
Table of Contents (21 chapters)

Exposing enumerations to the editor

An enumeration is a user-defined data type that holds a list of integer constants, where each item has a human-friendly name assigned by you, which makes the code easier to read. As an example, if we wanted to represent the different states that a character can be in, we could use an integer variable where 0 means it’s idle, 1 means it’s walking, and so on. The problem with this approach is that when you see code such as if(State == 0), it’s hard to remember what 0 means unless you are using some type of documentation or comments to help you. To fix this problem, you should use enumerations, where you can write code such as if(State == EState::Idle), which is much more explicit and easier to understand.

In C++, you have two types of enums – the older raw enums and the new enum classes, which were introduced in C++11. If you want to use the new enum classes in the editor, your first instinct might be to do it in the...