▶Book Description
Unity engine comes with a great set of features to help you build high-performance games. This Unity book is your guide to optimizing various aspects of your game development, from game characters and scripts, right through to animations.
You’ll explore techniques for writing better game scripts and learn how to optimize a game using Unity technologies such as ECS and the Burst compiler. The book will also help you manage third-party tooling used with the Unity ecosystem. You’ll also focus on the problems in the performance of large games and virtual reality (VR) projects in Unity, gaining insights into detecting performance issues and performing root cause analysis. As you progress, you’ll discover best practices for your Unity C# script code and get to grips with usage patterns. Later, you’ll be able to optimize audio resources and texture files, along with effectively storing and using resource files. You’ll then delve into the Rendering Pipeline and learn how to identify performance problems in the pipeline. In addition to this, you’ll learn how to optimize the memory and processing unit of Unity. Finally, you’ll cover tips and tricks used by Unity professionals to improve the project workflow.
By the end of this book, you’ll have developed the skills you need to build interactive games using Unity and its components.
▶What You Will Learn
- Apply the Unity Profiler to find bottlenecks in your app, and discover how to resolve them
- Discover performance problems that are critical for VR projects and learn how to tackle them
- Enhance shaders in an accessible way, optimizing them with subtle yet effective performance tweaks
- Use the physics engine to keep scenes as dynamic as possible
- Organize, filter, and compress art assets to maximize performance while maintaining high quality
- Use the Mono framework and C# to implement low-level enhancements that maximize memory usage and prevent garbage collection
▶Key Features
- Optimize graphically intensive games using the latest features of Unity such as Electronic Clearance Service (ECS) and the Burst compiler
- Explore techniques for solving performance issues with your VR projects
- Learn best practices for project organization to save time through an improved workflow
▶Who This Book Is For
The book is intended for intermediate Unity game developers who wants to maximize the performance of their game. The book assumes familiarity with C# programming.
▶What this book covers
- Chapter 1, Evaluating Performance Problems, provides an exploration of the Unity Profiler and a series of methods to profile our application, detect performance bottlenecks, and perform root cause analysis.
- Chapter 2, Scripting Strategies, deals with the best practices for our Unity C# script code, minimizing MonoBehaviour callback overhead, improving inter-object communication, and more.
- Chapter 3, The Benefits of Batching, explores Unity's dynamic batching and static batching systems, and how they can be utilized to ease the burden on the rendering pipeline.
- Chapter 4, Optimizing Your Art Assets, helps you to understand the underlying technology behind art assets and learn how to avoid common pitfalls with importing, compression, and encoding.
- Chapter 5, Faster Physics, is about investigating the nuances of Unity's internal physics engines for both 3D and 2D games, and how to properly organize our physics objects for improved performance.
- Chapter 6, Dynamic Graphics, provides an in-depth exploration of the rendering pipeline, and how to improve applications that suffer rendering bottlenecks in the GPU or CPU, how to optimize graphical effects such as lighting, shadows, and particle effects, ways in which to optimize shader code, and some graphics optimization specific for mobile devices.
- Chapter 7, Optimizations for Virtual and Augmented Reality, focuses on the new entertainment mediums of VR and AR, and includes several techniques for optimizing performance that is unique to apps built for these platforms.
- Chapter 8, Masterful Memory Management, examines the inner workings of the Unity engine, the Mono framework, and how memory is managed within these components to protect our application from excessive heap allocations and runtime garbage collection.
- Chapter 9, The Data-Oriented Technology Stack, examines the new Unity optimizations for multithreading intensive games: DOTS. We introduce the new C# Job System, the new Unity ECS, and the burst compiler.
- Chapter 10, Tactical Tips and Tricks, concludes the book with a multitude of useful techniques used by Unity professionals to improve project workflow and scene management.