Book Image

Unreal Engine 4.X By Example

By : Benjamin Carnall
Book Image

Unreal Engine 4.X By Example

By: Benjamin Carnall

Overview of this book

With Unreal Engine 4 being made free to use, for any keen game developer it is quickly becoming the most popular game engine in today’s development industry. The engine offers a rich feature set that can be customized and built upon through the use of C++. This book will cover how to work with Unreal Engine’s tool set all the way from the basics of the editor and the visual scripting system blueprint to the in-depth low-level creation of content using C++. This book will provide you with the skills you need to create feature-rich, captivating, and refined game titles with Unreal Engine 4. This book will take you through the creation of four unique game projects, designed so that you will be ready to apply the engine’s rich development capabilities. You will learn not only to take advantage of the visual tools of the engine, but also the vast and powerful programming feature set of Unreal Engine 4.
Table of Contents (17 chapters)
Unreal Engine 4.X By Example
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Game modes and servers


Alright, finally we can create our game mode. For this network shooter, our game mode is going to control traveling between levels, assigning teams, and spawning/respawning players. To do this, our game mode is going to have to detect a few things. Firstly, we are going to have to override how the game mode detects a new player joining the server session. We also have to make sure we assign this new player a team and spawn them properly. We already have a GameMode generated for us that was created with the template.

Game mode class definition

Navigate to NSGameMode.h and modify the class definition underneath our ETeam enum so it matches the following:

UCLASS(minimalapi)
class ANSGameMode : public AGameMode
{
    GENERATED_BODY()

public:
    ANSGameMode();
    virtual void BeginPlay() override;
    virtual void Tick(float DeltaSeconds) override;
    virtual void PostLogin(APlayerController* NewPlayer) override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason...