Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Game Development Projects with Unreal Engine

You're reading from  Game Development Projects with Unreal Engine

Product type Book
Published in Nov 2020
Publisher Packt
ISBN-13 9781800209220
Pages 822 pages
Edition 1st Edition
Languages
Authors (4):
Hammad Fozi Hammad Fozi
Profile icon Hammad Fozi
Gonçalo Marques Gonçalo Marques
Profile icon Gonçalo Marques
David Pereira David Pereira
Profile icon David Pereira
Devin Sherry Devin Sherry
Profile icon Devin Sherry
View More author details

Table of Contents (19) Chapters

Preface
1. Unreal Engine Introduction 2. Working with Unreal Engine 3. Character Class Components and Blueprint Setup 4. Player Input 5. Line Traces 6. Collision Objects 7. UE4 Utilities 8. User Interfaces 9. Audio-Visual Elements 10. Creating a SuperSideScroller Game 11. Blend Spaces 1D, Key Bindings, and State Machines 12. Animation Blending and Montages 13. Enemy Artificial Intelligence 14. Spawning the Player Projectile 15. Collectibles, Power-Ups, and Pickups 16. Multiplayer Basics 17. Remote Procedure Calls 18. Gameplay Framework Classes in Multiplayer

Levels

Levels, in gaming, are a section or a part of a game. Since many games are quite large, they are broken down into different levels. A level of interest is loaded into the game for the player to play, and then when they are done with that, another level may be loaded in (while the current one will be loaded out) so that the player can proceed. To complete a game, a player usually needs to complete a set of specific tasks to move on to the next level, eventually completing the game.

A Game Mode can be directly applied to the level. The level, upon loading, will use the assigned Game Mode class to handle all logic and gameplay for that particular level and override the game mode of the project for this level. This can be applied using the World Settings tab after opening a level.

A Level Blueprint is a blueprint that runs with the level, but cannot be accessed outside the scope of the level. Game Mode can be accessed in any blueprint (including the level blueprint) by the Get Game Mode node. This can later be cast to your Game Mode class, to obtain a reference to it.

Note

A level can only have one Game Mode class assigned to it. However, a single Game Mode class can be assigned to multiple levels to imitate similar functionality and logic.

The Unreal Pawn Class

The Pawn class, in Unreal, is the most basic class of actors that can be possessed (either by a player or AI). It also graphically represents the player/bot in the game. Code inside this class should have everything to do with the game entities, including interaction, movement, and ability logic. The player can still only possess a single pawn at any time in the game. Also, the player can unpossess one pawn and possess another pawn during gameplay.

The Default Pawn

Unreal Engine gives developers a DefaultPawn class (which inherits from the base Pawn class). On top of the Pawn class, this class contains additional code that allows it to move within the world, as you would in the editor version of the game.

The Spectator Pawn

Some games offer features to spectate games. Let's say you're waiting for a friend to finish their game before joining you, so you go ahead and spectate their game. This gives you the ability to observe the game the player is playing, through a camera that you can move around to get a view of the players or the game. Some games also offer spectate modes that can travel back in time, to show a particular action of the game that happened in the past or at any point in the game.

As the name suggests, this is a special type of pawn that provides sample functionality to spectate a game. It contains all the basic tools (such as the Spectator Pawn Movement component) required to do so.

The Unreal Player Controller Class

The Player Controller class can be thought of as the player. It is essentially the soul of a pawn. A Player Controller takes input from the user and feeds it to the pawn and other classes for the player to interact with the game. However, you must take note of the following points while dealing with this class:

  • Unlike the pawn, there can only be one Player Controller that the player represents in a level. (Just like when you travel in an elevator. While inside one, you can only control that elevator, but you can then exit it and enter another elevator in order to control that one.)
  • The Player Controller persists throughout the game, but the pawn may not (for example, in a battle game, the player character may die and respawn, but the Player Controller would remain the same).
  • Due to the temporary nature of the pawn and the permanent nature of the Player Controller, developers need to keep in mind which code should be added to which class.

Let's understand this better through the next exercise.

Exercise 2.04: Setting Up the Game Mode, Player Controller, and Pawn

This exercise will use the blank project we created in Exercise 2.01, Creating an Empty C++ Project. We'll be adding our Game Mode, Player Controller, and Pawn class to the game and will be testing to see if our code works in Blueprints.

The following steps will help you complete this exercise:

  1. Open the project we created in Exercise 2.01, Creating an Empty C++ Project.
  2. Right-click inside the Content Browser and select Blueprint Class.
  3. Under the All Classes section, find and select the Game Mode class:
    Figure 2.16: Selecting the Game Mode class

    Figure 2.16: Selecting the Game Mode class

  4. Set its name to BP_MyGameMode.
  5. Repeat Steps 2-4 and select the Pawn class from under the Common Classes section, as shown in the preceding screenshot. Set the name of this class to BP_MyPawn.
  6. Repeat Steps 2-4 and select the Player Controller class under the Common Classes section, as shown in the preceding screenshot. Set the name of this class to BP_MyPC:
    Figure 2.17: Game Mode, Pawn, and Player Controller names

    Figure 2.17: Game Mode, Pawn, and Player Controller names

  7. Open BP_MyGameMode and open the Event Graph tab:
    Figure 2.18: Event Graph tab in Blueprint

    Figure 2.18: Event Graph tab in Blueprint

  8. Left-click and drag from the white pin in the Event BeginPlay node and then release the left mouse button to gain an Options menu. Type print and select the print node highlighted in the list:
    Figure 2.19: Print String node (Blueprint)

    Figure 2.19: Print String node (Blueprint)

  9. In the resultant Print String node that gets placed under the In String parameter, type My Game Mode has started!.
  10. Now, press the Compile and Save buttons on the top menu bar.
  11. Repeat Steps 7-10 for both the BP_MyPawn and BP_MyPC classes, setting the In String parameter to My Pawn has started! and My PC has started!, respectively.
  12. Finally, open the World Settings tab, and under the Game Mode section, use the dropdown to set the GameMode Override, Default Pawn Class, and Player Controller Class options to our respective classes:
    Figure 2.20: World Settings and Game Mode setup

    Figure 2.20: World Settings and Game Mode setup

  13. Click Play to play your game and see the three print statements on the top. This means that the current GameMode Override, Default Pawn Class, and Player Controller Class options have been set to your specified classes and are running their code:
    Figure 2.21: Output prints

Figure 2.21: Output prints

Note

You can locate the completed exercise code files on GitHub, in the Chapter02 -> Exercise2.04 -> Ex2.04-Completed.rar directory, at the following link: https://packt.live/3k7nS1K

After extracting the .rar file, double-click the .uproject file. You will see a prompt asking Would you like to rebuild now?. Click Yes on that prompt so that it can build the necessary intermediate files, after which it should open the project in Unreal Editor automatically.

Now that you know the basic classes and how they work in Unreal, in the next section, we will be looking at animations, what processes are involved, and how they complete them. We'll follow this with an exercise.

You have been reading a chapter from
Game Development Projects with Unreal Engine
Published in: Nov 2020 Publisher: Packt ISBN-13: 9781800209220
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}