Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
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!
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.
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, 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
C#
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.
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!
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:
When we wish to draw your attention to a particular part of a code block, the relevant lines or...
Dateiformat: ePUBKopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.