{"product_id":"138492","title":"Learning Game Design Patterns with Unity ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPB8ywPCWY3Y9h5rh96nVzxoOvyW.png?v=1765063755\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Learning Game Design Patterns with Unity \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/114854688\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\u003cdiv\u003e \u003cb\u003eIf you want to develop games elegantly, learn design patterns.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e This book is written for any game developer who is ready to start working with advanced programming techniques and design patterns in Unity.\u003cbr\u003e Learn the core principles of software design patterns and learn how to build their components efficiently.\u003cbr\u003e The second edition covers design patterns through practical examples, and includes explanations of Game Design Documents (GDD) and Unity programming. \u003cbr\u003eBy the end of this book, you'll be able to apply design patterns to Unity to create a systematic, scalable, and optimized process.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e You can preview some of the book's contents.\u003cbr\u003e \u003cspan\u003ePreview\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e About the Author and Translator xi\u003cbr\u003e Introduction to the Technical Reviewer xii\u003cbr\u003e Translator's Preface xiii\u003cbr\u003e Beta Reader Review xiv\u003cbr\u003e Acknowledgments xvi\u003cbr\u003e About this book xvii\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART 1 | BASICS\u003cbr\u003e CHAPTER 1 | BEFORE YOU GET STARTED 3\u003c\/b\u003e\u003cbr\u003e 1.1 Notes for the 2nd edition 3\u003cbr\u003e 1.2 Philosophy of the Book 4\u003cbr\u003e 1.3 What is a design pattern? 4\u003cbr\u003e 1.4 What topics are not covered in this book? 5\u003cbr\u003e 1.5 Game Project 5\u003cbr\u003e 1.6 Summary 6\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 2 | GAME DESIGN 7\u003c\/b\u003e\u003cbr\u003e 2.1 Planning Document 8\u003cbr\u003e 2.2 Summary 18\u003cbr\u003e 2.3 Reading 18\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 3 | A Brief Introduction to Unity Programming 19\u003c\/b\u003e\u003cbr\u003e 3.1 What You Should Already Know 19\u003cbr\u003e 3.2 C# Features 20\u003cbr\u003e 3.3 Unity Engine Features 24\u003cbr\u003e 3.4 Summary 26\u003cbr\u003e 3.5 Reading 26\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART 2 | CORE PATTERNS\u003cbr\u003e CHAPTER 4 | Implementing a Game Manager with Singletons 29\u003c\/b\u003e \u003cbr\u003e4.1 Technical Requirements 30\u003cbr\u003e 4.2 Understanding the Singleton Pattern 30\u003cbr\u003e 4.3 Designing a Game Manager 31\u003cbr\u003e 4.4 Implementing a Game Manager 32\u003cbr\u003e 4.5 Summary 38\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 5 | Managing Character State with State Patterns 39\u003c\/b\u003e\u003cbr\u003e 5.1 Technical Requirements 39\u003cbr\u003e 5.2 Overview of the State Pattern 40\u003cbr\u003e 5.3 Defining Character States 41\u003cbr\u003e 5.4 Implementing the State Pattern 42\u003cbr\u003e 5.5 Pros and Cons of the State Pattern 49\u003cbr\u003e 5.6 Considering Alternatives 50\u003cbr\u003e 5.7 Summary 51\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 6 | MANAGING GAME EVENTS WITH THE EVENT BUS 53\u003c\/b\u003e\u003cbr\u003e 6.1 Technical Requirements 54\u003cbr\u003e 6.2 Understanding the Event Bus Pattern 54\u003cbr\u003e 6.3 Implementing a Race Event Bus 58\u003cbr\u003e 6.4 Considering Alternatives 65\u003cbr\u003e 6.5 Summary 65\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 7 | Implementing a Replay System with the Command Pattern 67\u003c\/b\u003e\u003cbr\u003e 7.1 Technical Requirements 68\u003cbr\u003e 7.2 Understanding Command Patterns 68\u003cbr\u003e 7.3 Designing a Replay System 71\u003cbr\u003e 7.4 Implementing a Replay System 72\u003cbr\u003e 7.5 Looking at Alternatives 81\u003cbr\u003e 7.6 Summary 81\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 8 | Optimizing with the Object Pool Pattern 83\u003c\/b\u003e\u003cbr\u003e 8.1 Technical Requirements 84 \u003cbr\u003e8.2 Understanding the Object Pool Pattern 84\u003cbr\u003e 8.3 Implementing the Object Pool Pattern 86\u003cbr\u003e 8.4 Looking at Alternatives 93\u003cbr\u003e 8.5 Summary 93\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 9 | Decoupling Components with the Observer Pattern 95\u003c\/b\u003e\u003cbr\u003e 9.1 Technical Requirements 95\u003cbr\u003e 9.2 Understanding the Observer Pattern 96\u003cbr\u003e 9.3 Separating Core Components with the Observer Pattern 98\u003cbr\u003e 9.4 Implementing the Observer Pattern 99\u003cbr\u003e 9.5 Alternatives 106\u003cbr\u003e 9.6 Summary 106\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 10 | Implementing Power-Ups with the Visitor Pattern 107\u003c\/b\u003e\u003cbr\u003e 10.1 Technical Requirements 108\u003cbr\u003e 10.2 Understanding Visitor Patterns 108\u003cbr\u003e 10.3 Designing a Power-Up Mechanism 110\u003cbr\u003e 10.4 Implementing the Power-Up Mechanism 111\u003cbr\u003e 10.5 Summary 119\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 11 | Implementing Drones with Strategic Patterns 121\u003c\/b\u003e\u003cbr\u003e 11.1 Technical Requirements 122\u003cbr\u003e 11.2 Understanding Strategy Patterns 122\u003cbr\u003e 11.3 Designing Enemy Drones 124\u003cbr\u003e 11.4 Implementing Enemy Drones 126\u003cbr\u003e 11.5 Alternatives 132\u003cbr\u003e 11.6 Summary 133\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 12 | Implementing Weapon Systems Using Decorators 135\u003c\/b\u003e\u003cbr\u003e 12.1 Technical Requirements 135 \u003cbr\u003e12.2 Understanding the Decorator Pattern 136\u003cbr\u003e 12.3 Designing Weapon Systems 138\u003cbr\u003e 12.4 Implementing Weapon Systems 139\u003cbr\u003e 12.5 Alternatives 149\u003cbr\u003e 12.6 Summary 149\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 13 | Implementing a Level Editor with Spatial Division 151\u003c\/b\u003e\u003cbr\u003e 13.1 Technical Requirements 152\u003cbr\u003e 13.2 Understanding Spatial Partitioning Patterns 152\u003cbr\u003e 13.3 Designing the Level Editor 154\u003cbr\u003e 13.4 Implementing a Level Editor 156\u003cbr\u003e 13.5 Alternatives 161\u003cbr\u003e 13.6 Summary 162\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART 3 | Alternative Patterns\u003cbr\u003e CHAPTER 14 | Tune Your System with Adapters 165\u003c\/b\u003e\u003cbr\u003e 14.1 Technical Requirements 165\u003cbr\u003e 14.2 Understanding the Adapter Pattern 166\u003cbr\u003e 14.3 Implementing the Adapter Pattern 169\u003cbr\u003e 14.4 Summary 173\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 15 | Hiding Complexity with the Facade Pattern 175\u003c\/b\u003e\u003cbr\u003e 15.1 Technical Requirements 176\u003cbr\u003e 15.2 Understanding the Facade Pattern 176\u003cbr\u003e 15.3 Designing a Motorcycle Engine 178\u003cbr\u003e 15.4 Implementing a Motorcycle Engine 178\u003cbr\u003e 15.5 Looking at Alternatives 184\u003cbr\u003e 15.6 Summary 184\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 16 | Managing Dependencies with the Service Locator Pattern 185\u003c\/b\u003e\u003cbr\u003e 16.1 Technical Requirements 185 \u003cbr\u003e16.2 Understanding the Service Locator Pattern 186\u003cbr\u003e 16.3 Implementing the Service Locator Pattern 188\u003cbr\u003e 16.4 Looking at Alternatives 193\u003cbr\u003e 16.5 Summary 193\u003cbr\u003e\u003cbr\u003e Search 195\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eDetailed image\u003c\/b\u003e \u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate3989\/MidCate004\/398833572(1).jpg\" border=\"0\" alt=\"Detailed Image 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eInto the book\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e Before you start typing any code, there are important steps you need to take in the game development process.\u003cbr\u003e It's about writing a game plan.\u003cbr\u003e A game plan is a blueprint for the entire project.\u003cbr\u003e The primary purpose of a game plan is to document an overall vision of the game's core concepts and guide a multi-disciplinary team of developers throughout the lengthy development process.\u003cbr\u003e\u003cbr\u003e --- p.7\u003cbr\u003e\u003cbr\u003e For example, the Singleton pattern allows you to quickly create a simple code architecture that wraps and manages all of your game's core systems in individual manager classes. \u003cbr\u003eYou can also implement a manager that exposes a clean, intuitive interface that hides the complexity within the game, or you can implement a manager that is easily accessible and has only one instance at a time.\u003cbr\u003e It's a very plausible approach.\u003cbr\u003e However, singletons create strong coupling between core components, making unit testing very difficult.\u003cbr\u003e\u003cbr\u003e --- p.29\u003cbr\u003e\u003cbr\u003e The event bus pattern is closely related to messaging systems and the publish\/subscribe pattern.\u003cbr\u003e Calling it a publish\/subscribe system is a more accurate term for what the event bus does.\u003cbr\u003e The keyword for the event bus pattern is bus.\u003cbr\u003e In computer terms, bus refers to a connection between components.\u003cbr\u003e In Chapter 6, an object that can be an event publisher or receiver is a component.\u003cbr\u003e\u003cbr\u003e --- p.54\u003cbr\u003e \u003cbr\u003eThe core purpose of the Observer pattern is to establish a one-to-many relationship between objects, where one object acts as a subject and the other objects act as observers.\u003cbr\u003e An object that assumes the subject role is responsible for notifying observers when changes occur internally.\u003cbr\u003e This is similar to the publisher-subscriber relationship, where objects subscribe to and receive notifications of specific events.\u003cbr\u003e The key difference is that in the Observer pattern, the subject and the observer are aware of each other and are therefore lightly coupled.\u003cbr\u003e\u003cbr\u003e --- p.96\u003cbr\u003e\u003cbr\u003e One thing to note is that the facade pattern and the adapter can often be confused.\u003cbr\u003e The main difference is that the Facade pattern sets up a simplified front interface as a complex system.\u003cbr\u003e The Adapter pattern reconciles incompatible systems while maintaining a consistent interface to clients. \u003cbr\u003eBoth the Adapter pattern and the Facade pattern are structural patterns, but they are related because they have completely different purposes.\u003cbr\u003e\n\n\u003c\/div\u003e\n\u003cdiv\u003e --- p.167\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eTaking game development to the next level using design patterns\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e You've read the introduction to Unity game development, but you're still unsure how to create a good one? Want to develop games in a more elegant way than others? Then here's the Unity Design Patterns Guide.\u003cbr\u003e\u003cbr\u003e Design patterns are reusable methods for solving common software development problems.\u003cbr\u003e The author of this book seeks to apply design patterns to Unity to develop games more efficiently.\u003cbr\u003e Using a performance-sensitive racing game as an example, each chapter presents a recurring game programming problem and solves it using design patterns appropriate for the Unity API.\u003cbr\u003e \u003cbr\u003eGame Prototype Planning Document, basic C# and Unity concepts are explained in Chapters 1-3.\u003cbr\u003e Chapters 4 through 13 introduce core game development patterns.\u003cbr\u003e Chapter 4 covers the Singleton pattern, Chapter 5 the State pattern, Chapter 6 the Event Bus pattern, Chapter 7 the Command pattern, Chapter 8 the Object Pool pattern, Chapter 9 the Observer pattern, Chapter 10 the Visitor pattern, Chapter 11 the Strategy pattern, Chapter 12 the Decorator pattern, and Chapter 13 the Space Partitioning pattern.\u003cbr\u003e Chapters 14 through 16 describe the Adapter pattern, Facade pattern, and Service Locator pattern as alternative patterns to replace complex subsystems, respectively.\u003cbr\u003e\u003cbr\u003e By following along with the 13 patterns applied using a racing game as an example, you'll get a feel for which design patterns to use in your own games.\u003cbr\u003e I recommend this book to game developers who want to shed their beginner label and advance to the next level.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eKey Contents\u003c\/b\u003e \u003cbr\u003e■ Professional Unity code design using industry-standard development patterns\u003cbr\u003e ■ Finding the right pattern to implement a specific game mechanic or feature\u003cbr\u003e ■ Core game mechanics and components that can be modified without writing a single line of code\u003cbr\u003e ■ Practical Object-Oriented Programming (OOP) Techniques and Their Use in Unity Projects\u003cbr\u003e ■ Establishment of a unique game development system including a level editor\u003cbr\u003e ■ How to apply existing design patterns that can be used with the Unity API \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e GOODS SPECIFICS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePublication date:\u003c\/strong\u003e October 31, 2022\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 216 pages | 188*245*20mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13:\u003c\/strong\u003e 9791192469508\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10:\u003c\/strong\u003e 119246950X \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893248393258,"sku":"138492","price":35.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/9f5af6c27b6400c2176d67e362e00521.jpg?v=1765393916","url":"https:\/\/librairie.coreenne.fr\/en\/products\/138492","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}