Table of contents : Cover Title Page Copyright and Credits Dedicated Contributors Table of Contents Preface Section 1 – Our First Level Chapter 1: Designing a Game from Scratch Game concept Game idea Input controls Winning and losing Game characters Hero Enemies Gameplay Game-world layout Starting condition Ending condition Point system HUD The difficulty balance Difficulty balance questions Implementation plan Documentation Game Design Document (GDD) GDD formats GDD creation tools Elevator pitch High concept Tips for creating GDDs Summary Chapter 2: Setting Up Unity Why use a game engine such as Unity? Past and present industry insight Game engines Benefits of using Unity Installing Unity Unity Technical Requirements Unity installs Installing Unity with Unity Hub Creating projects Creating a project Project structure Summary Chapter 3: Working with Scenes and Game Objects Manipulating scenes The purpose of a scene The Scene View Creating our first GameObject Navigating the Scene View Manipulating GameObjects GameObjects and components Understanding components Manipulating components Object hierarchies Parenting objects Possible uses Prefabs Creating Prefabs Prefab-instance relationship Prefab variants Saving scenes and projects Saving our changes Project structure Summary Chapter 4: Grayboxing with Terrain and ProBuilder Creating a Landscape with Terrain Discussing Height Maps Creating and configuring Height Maps Authoring Height Maps Adding Height Map details Creating Shapes with ProBuilder Installing ProBuilder Creating a Shape Manipulating the mesh Adding details Summary Chapter 5: Importing and Integrating Assets Importing assets Importing assets from the internet Importing assets from the Asset Store Integrating assets Integrating terrain textures Integrating meshes Integrating textures Configuring assets Configuring meshes Configuring textures Assembling the scene Summary Section 2 – Improving Graphics and Sound Chapter 6: Materials and Effects with URP and Shader Graph Introducing shaders Shader pipeline The Render Pipeline and URP URP's Built-in Shaders Creating Shaders with Shader Graph Creating our first Shader Graph Using textures Combining Textures Applying transparency Creating Vertex Effects Summary Chapter 7: Visual Effects with Particle Systems and Visual Effect Graph Introduction to particle systems Creating a basic particle system Using advanced modules Creating fluid simulations Creating a waterfall effect Creating a bonfire effect Creating complex simulations with Visual Effect Graph Installing Visual Effect Graph Creating and analyzing a Visual Effect Graph Creating a rain effect Summary Chapter 8: Lighting Using the Universal Render Pipeline Applying lighting Discussing lighting methods Configuring ambient lighting with skyboxes Configuring lighting in URP Applying shadows Understanding shadow calculations Configuring performant shadows Optimizing lighting Understanding static lighting Baking lightmaps Applying static lighting to static objects Summary Chapter 9: Fullscreen Effects with Postprocessing Using PostProcessing Setting up a profile Using basic effects Using advanced effects Advanced effects Summary Chapter 10: Sound and Music Integration Importing audio Audio types Configuring the import settings Integrating and mixing audio Using 2D and 3D AudioSources Using an Audio Mixer Summary Chapter 11: User Interface Design Understanding Canvas and RectTransform Creating a UI with Canvas Positioning elements with RectTransform Canvas object types Integrating assets for the UI Creating UI controls Creating a responsive UI Adapting object positions Adapting object sizes Summary Chapter 12: Creating a UI with the UI Toolkit Why learn UI Toolkit? Creating UIs with UI Toolkit Installing UI Toolkit Creating UI Documents Editing UI Documents Creating UI Stylesheets Making a Responsive UI with UI Toolkit Dynamic positioning and sizing Dynamic Scaling Using relative positions Summary Chapter 13: Creating Animations with Animator, Cinemachine, and Timeline Using Skinning Animations with Animator Understanding skinning Importing skeletal animations Integration using Animation Controllers Creating dynamic cameras with Cinemachine Creating camera behaviors Creating dolly tracks Creating cutscenes with Timeline Creating animation clips Sequencing our intro cutscene Summary Section 3 – Scripting Level Interactivity with C# Chapter 14: Introduction to C# and Visual Scripting Creating Scripts Initial setup Creating a C# Script Adding fields Creating a Visual Script Using events and instructions Events and instructions in C# Events and instructions in Visual Scripting Using fields in instructions Common beginner C# script errors Summary Chapter 15: Implementing Movement and Spawning Implementing movement Moving objects through Transform Using Input Understanding Delta Time Implementing spawning Spawning Objects Timing actions Destroying Objects Summary Chapter 16: Physics Collisions and Health System Configuring Physics Setting shapes Physics Object types Filtering collisions Detecting collisions Detecting Trigger events Modifying the other Object Moving with Physics Applying forces Tweaking Physics Summary Chapter 17: Win and Lose Condition Creating Object Managers Sharing Variables with the Singleton design pattern Sharing Variables with Visual Scripting Creating Managers Creating Game Modes Improving our code with events Summary Chapter 18: Scripting the UI, Sounds, and Graphics Scripting the UI Showing information in the UI Programming the Pause menu Scripting feedback Scripting visual feedback Scripting audio feedback Scripting animations Summary Chapter 19: Implementing Game AI for Building Enemies Gathering information with sensors Creating Three-Filters sensors with C# Creating Three-Filters sensors with Visual Scripting Debugging with Gizmos Making decisions with FSMs Creating the FSM in C# Creating transitions Creating the FSM in Visual Scripting Executing FSM actions Calculating our scene's Pathfinding Using pathfinding Adding the final details Summary Chapter 20: Scene Performance Optimization Optimizing graphics Introduction to graphic engines Using the Frame Debugger Using batching Other optimizations Optimizing processing Detecting CPU- and GPU-bound Using the CPU Usage Profiler General CPU optimization techniques Optimizing memory Memory allocation and the garbage collector Using the Memory Profiler Summary Section 4 – Releasing Your Game Chapter 21: Building the Project Building a project Debugging the Build Debugging Code Profiling performance Summary Chapter 22: Finishing Touches Iterating your game Testing and feedback Interpreting feedback Releasing your game Pre-release Release Post-release Summary Chapter 23: Augmented Reality in Unity Using AR Foundation Creating an AR Foundation project Using tracking features Building for mobile devices Building for Android Building for iOS Creating a simple AR game Spawning the Player and Enemies Coding the Player and Enemy behavior Summary About Packt Other Books You May Enjoy Index