Book Image

Building an RPG with Unreal 4.x

By : Steve Santello
Book Image

Building an RPG with Unreal 4.x

By: Steve Santello

Overview of this book

Now that Unreal Engine 4 has become one of the most cutting edge game engines in the world, developers are looking for the best ways of creating games of any genre in the engine. This book will lay out the foundation of creating a turn-based RPG in Unreal Engine 4.12. The book starts by walking you through creating a turn-based battle system that can hold commands for party members and enemies. You’ll get your hands dirty by creating NPCs such as shop owners, and important mechanics, that make up every RPG such as a currency system, inventory, dialogue, and character statistics. Although this book specifically focuses on the creation of a turn-based RPG, there are a variety of topics that can be utilized when creating many other types of genres. By the end of the book, you will be able to build upon core RPG framework elements to create your own game experience.
Table of Contents (17 chapters)
Building an RPG with Unreal 4.x
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Setting up the abilities array


In Chapter 3, Exploration and Combat, we created a character class info for learned abilities, which was done in FCharacterClassInfo.h, which is an array used to hold an array of abilities for each character that inherits a class. We need to extend this array so that it is adopted by any game character to hold abilities that they learn throughout the game. To do this, open GameCharacter.h by navigating to Source | RPG. In class RPG_API UGameCharacter : public UObject, add a public UPROPERTY to learned abilities and allow it to be editable anywhere:

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = CharacterInfo)
  TArray<FString> LearnedAbilities;

Next, open GameCharacter.cpp located in the same folder, and set LearnedAbilities to be equal to LearnedAbilities from the class info that we created the variable in:

character->LearnedAbilities = character->ClassInfo->LearnedAbilities;

This will allow each instance of a party member to hold its own...