Reader small image

You're reading from  Creating an RTS Game in Unity 2023

Product typeBook
Published inOct 2023
Reading LevelN/a
PublisherPackt
ISBN-139781804613245
Edition1st Edition
Languages
Tools
Right arrow
Author (1)
Bruno Cicanci
Bruno Cicanci
author image
Bruno Cicanci

Bruno Cicanci is a software engineer and game developer with professional experience on different technologies and platforms. Since 2009, Bruno helped to develop and publish many games, mainly using Unity for mobile devices. He writes about game development on his personal blog, which led him to present many talks at universities and events. Bruno holds a Computer Science BS. Degree and a specialization and Game Production and Programming. In the last decade, he worked at prestigious game studios such as Glu Mobile, Electronic Arts, and Aquiris. He is currently developing games and reusable technologies at Ubisoft. Originally from Sao Paulo, Brazil, Bruno currently resides in London, UK with his wife and two adorable cats.
Read more about Bruno Cicanci

Right arrow

Preface

Real-time strategy (RTS) is a very challenging and competitive game genre, one of the first esports before the term even existed, and the base for many other genres and subgenres, showing the importance of RTS to the game industry.

My first contact with PC gaming was in the late 1990s, and I have unforgettable memories of StarCraft and, especially, Warcraft III – two amazing RTS games that got me into PC gaming. In the last couple of decades, the RTS genre has expanded into other subgenres and was also the foundation for multiplayer online battle arena (MOBA) hits such as Dota and League of Legends.

With the Unity Engine, one of the most used game engines in recent years, we have everything that we need to build the most amazing games. In this book, we will get the most out of the built-in features in the Unity Engine, allowing us to focus on creating an RTS game that has mechanics and gameplay inspired by the classics of this genre.

You could say that we are living in a golden age of game development, where we are no longer limited by technology but by our own creativity!

Who this book is for

If you are a beginner game developer who wants to learn the skills to develop a professional RTS game, a programmer thinking of getting into the games industry and need to develop a portfolio, or even an indie game developer who is looking for inspiration to release your own games, this book is for you.

Professional game developers and programmers with experience in C# or game designers and artists that seek a practical guide to bring game ideas to life will also benefit from this book.

What this book covers

In Chapter 1, Introducing Real-Time Strategy Games, we will learn what an RTS game is, the level and game design characteristics of this genre, and see the game design document of Dragoncraft, the game you will make in this book.

In Chapter 2, Setting Up Unity and the Dragoncraft Project, we will install the Unity Engine and our IDE, as well as setting up our project and importing the packages we will use from the Unity Asset Store.

In Chapter 3, Getting Started with Our Level Design, we start developing the first features of our RTS game by creating a level scene and the map using Prefabs, and then we will create a custom editor tool to speed up the level design and implement the camera movement.

In Chapter 4, Creating the User Interface and HUD, we will create our game UI using Unity’s Canvas and UI elements, and we will also add more cameras to render 3D objects in the UI.

In Chapter 5, Spawning an Army of Units, you will learn how to create a flexible system to configure units using ScriptableObjects, spawn the new Warrior unit using the Object Pooling pattern, and update the UI using the Message Queue pattern.

In Chapter 6, Commanding an Army of Units, we will see how to select the units on the map and give them a command to move to any position in a scene.

In Chapter 7, Attacking and Defending Units, you will learn how to implement the attack and defense for the units using the Command pattern, and we will add a new Mage unit and create a ranged attack by throwing a fireball.

In Chapter 8, Implementing the Pathfinder, you will learn the different strategies to implement a Pathfinder algorithm, and then we will see how we can use the unit’s NavMesh system with our units.

In Chapter 9, Adding Enemies, it is time to start adding enemies to our game by creating a configuration and spawning each of the three different types – an Orc, a Golem, and a Dragon.

In Chapter 10, Creating an AI to Attack the Player, you will learn how to set up Unity’s physics settings, detect collision and calculate damage, and make enemies chase the units.

In Chapter 11, Adding Enemies to the Map, we will create spawn points on the map to add enemies in the level configuration and make them patrol a specific area, and we will also create fog to cover the unexplored parts of the map.

In Chapter 12, Balancing the Game’s Difficulty, you will learn how to use unit tests to simulate battles between units and enemies, as well as how to analyze the results and iterate on a character’s configuration to balance the difficulty.

In Chapter 13, Producing and Gathering Resources, you will learn how to produce resources automatically and command units to gather resources on the map.

In Chapter 14, Crafting Buildings and Defense Towers, we will add buildings to upgrade the resource generation, learn how to upgrade units to make them stronger, and add a new tower defense unit to protect the settlement against enemies that are within its attack range.

In Chapter 15, Tracking Progression and Objectives, you will learn how to create and track objectives that will help in the game progression to determine whether the player won or lost the game.

In Chapter 16, Exporting and Expanding Your Game, you will learn how to export your game for desktop platforms manually and then automate the process using a build system, as well as see how you can expand the game by adding more content.

To get the most out of this book

To get the most out of this book, a basic understanding of programming concepts and the C# programming language is required. Some experience with any game development engine or framework would be an advantage.

It is recommended that you familiarize yourself with the Unity Engine features and the interface. The Unity website has a lot of beginner-friendly content that can help you get a good understanding of the engine quickly.

Since we will develop an RTS game, it is also recommended that you play a few RTS games or watch gameplay videos on YouTube, especially the games StarCraft and Warcraft III, which are the ones we will use as a reference and inspiration to develop the features of our Dragoncraft game.

Software covered in the book

Operating system requirements

Unity Engine version 2023.1 or above

Windows or macOS

Visual Studio Code or Visual Studio 2022

Windows or macOS

C#

Windows or macOS

You will need an internet connection to download Unity, IDEs, and the assets required for the project. The disk space required for Unity Engine 2023.1 and Visual Studio Code or Visual Studio 2022 may vary, but make sure you have at least 30 GB of disk space before installing the software. The project itself should require at least 4 GB. Although it is not required, a dedicated graphics card is recommended.

You can find more information about the Unity Engine requirements in their documentation at https://docs.unity3d.com/2023.1/Documentation/Manual/system-requirements.html.

Download the example code files

You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Creating-an-RTS-game-in-Unity-2023. If there’s an update to the code, it will be updated in the GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, folder names, filenames, and pathnames. Here is an example: “Add the following new Start method to the LevelManager class.”

A block of code is set as follows:

using UnityEngine;
namespace Dragoncraft
{
  public class LevelManager : MonoBehaviour
  {
    private void Start()
    {
    }
  }
}

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

private void Start()
{
  _initialPosition = transform.position;
  _camera = GetComponent<Camera>();
}

Bold: Indicates a new term, an important word, or words that you see on screen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “In the Inspector view, click on the Add Component button and search for the LevelComponent script.”

Tips or important notes

Appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, email us at customercare@packtpub.com and mention the book title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata and fill in the form.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packtpub.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Share Your Thoughts

Once you’ve read Creating an RTS Game in Unity 2023, we’d love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.

Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.

Download a free PDF copy of this book

Thanks for purchasing this book!

Do you like to read on the go but are unable to carry your print books everywhere?

Is your eBook purchase not compatible with the device of your choice?

Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.

Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical books directly into your application.

The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free content in your inbox daily

Follow these simple steps to get the benefits:

  1. Scan the QR code or visit the link below

https://packt.link/free-ebook/9781804613245

  1. Submit your proof of purchase
  2. That’s it! We’ll send your free PDF and other benefits to your email directly
lock icon
The rest of the chapter is locked
You have been reading a chapter from
Creating an RTS Game in Unity 2023
Published in: Oct 2023Publisher: PacktISBN-13: 9781804613245
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.
undefined
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 €14.99/month. Cancel anytime

Author (1)

author image
Bruno Cicanci

Bruno Cicanci is a software engineer and game developer with professional experience on different technologies and platforms. Since 2009, Bruno helped to develop and publish many games, mainly using Unity for mobile devices. He writes about game development on his personal blog, which led him to present many talks at universities and events. Bruno holds a Computer Science BS. Degree and a specialization and Game Production and Programming. In the last decade, he worked at prestigious game studios such as Glu Mobile, Electronic Arts, and Aquiris. He is currently developing games and reusable technologies at Ubisoft. Originally from Sao Paulo, Brazil, Bruno currently resides in London, UK with his wife and two adorable cats.
Read more about Bruno Cicanci