Book Image

Building an RPG with Unity 2018 - Second Edition

By : Vahé Karamian
Book Image

Building an RPG with Unity 2018 - Second Edition

By: Vahé Karamian

Overview of this book

In a role-playing game (RPG), users control a character, usually in the game's imaginary universe. Unity has become a top choice for developers looking to create these kinds of immersive RPGs. Building an RPG with Unity 2018, based on building some of the most common RPG features, teaches you tips, tricks, and techniques that can be applied to your own game. To start with, the book guides you through the fundamentals of role-playing games. You will learn the necessary aspects of building an RPG, such as structuring the game environment, customizing characters, controlling the camera, and designing other attributes such as inventory and weapons. You will also explore designing game levels by adding more features. Once you have understood the bigger picture, you will understand how to tackle the obstacles of networking in Unity and implement multiplayer mode for your RPG games. By the end of the book, you will be able to build upon the core RPG framework elements to create your own immersive games.
Table of Contents (16 chapters)
Title Page
Copyright and Credits
Packt Upsell

Improving GameMaster

The code we have so far works, but it is not very clean. Let's go ahead and structure the code a little better. Let's create a new script, called GameLevelController.cs. This new script will be handling the logic for our level management.

Level controller

A listing of GameLevelController.cs is as follows:

using UnityEngine;
using UnityEngine.SceneManagement;
namespace com.noorcon.rpg2e
public static class SceneName
public const string MainMenu = "MainMenu";
public const string CharacterCustomization = "CharacterCustomization";
public const string Level_1 = "Awakening";
public class GameLevelController
// let's have a reference to the current scene/level
public Scene CurrentScene
get { return SceneManager.GetActiveScene(); }
// keep the numerical level value
public int Level = 0;
public void OnLevelWasLoaded()
// if we are in the character customization scene,
// let's get a reference to the Base game object for future use.
if (CurrentScene.Equals(SceneName...