이미 소장하고 있다면 판매해 보세요.
지은이·옮긴이 소개 xi
기술 감수자 소개 xii 옮긴이 머리말 xiii 베타리더 후기 xiv 감사의 글 xvi 이 책에 대하여 xvii PART 1 | 기초 CHAPTER 1 | 시작하기 전에 3 1.1 2판의 참고 사항 3 1.2 책의 철학 4 1.3 디자인 패턴이란 무엇인가? 4 1.4 이 책에서 다루지 않는 주제는? 5 1.5 게임 프로젝트 5 1.6 정리 6 CHAPTER 2 | 게임 기획서 7 2.1 기획서 8 2.2 정리 18 2.3 읽을거리 18 CHAPTER 3 | 유니티 프로그래밍 간략 설명 19 3.1 이미 알고 있어야 하는 것 19 3.2 C# 기능 20 3.3 유니티 엔진 기능 24 3.4 정리 26 3.5 읽을거리 26 PART 2 | 핵심 패턴 CHAPTER 4 | 싱글턴으로 게임 매니저 구현하기 29 4.1 기술적 요구 사항 30 4.2 싱글턴 패턴 이해하기 30 4.3 게임 매니저 디자인하기 31 4.4 게임 매니저 구현하기 32 4.5 정리 38 CHAPTER 5 | 상태 패턴으로 캐릭터 상태 관리하기 39 5.1 기술적 요구 사항 39 5.2 상태 패턴의 개요 40 5.3 캐릭터 상태 정의하기 41 5.4 상태 패턴 구현하기 42 5.5 상태 패턴의 장단점 49 5.6 대안 살펴보기 50 5.7 정리 51 CHAPTER 6 | 이벤트 버스로 게임 이벤트 관리하기 53 6.1 기술적 요구 사항 54 6.2 이벤트 버스 패턴 이해하기 54 6.3 레이스 이벤트 버스 구현하기 58 6.4 대안 살펴보기 65 6.5 정리 65 CHAPTER 7 | 커맨드 패턴으로 리플레이 시스템 구현하기 67 7.1 기술적 요구 사항 68 7.2 커맨드 패턴 이해하기 68 7.3 리플레이 시스템 설계하기 71 7.4 리플레이 시스템 구현하기 72 7.5 대안 살펴보기 81 7.6 정리 81 CHAPTER 8 | 오브젝트 풀 패턴으로 최적화하기 83 8.1 기술적 요구 사항 84 8.2 오브젝트 풀 패턴 이해하기 84 8.3 오브젝트 풀 패턴 구현하기 86 8.4 대안 살펴보기 93 8.5 정리 93 CHAPTER 9 | 옵저버 패턴으로 컴포넌트 분리하기 95 9.1 기술적 요구 사항 95 9.2 옵저버 패턴 이해하기 96 9.3 옵저버 패턴으로 핵심 컴포넌트 분리하기 98 9.4 옵저버 패턴 구현하기 99 9.5 대안 살펴보기 106 9.6 정리 106 CHAPTER 10 | 방문자 패턴으로 파워업 구현하기 107 10.1 기술적 요구 사항 108 10.2 방문자 패턴 이해하기 108 10.3 파워업 메커니즘 설계하기 110 10.4 파워업 메커니즘 구현하기 111 10.5 정리 119 CHAPTER 11 | 전략 패턴으로 드론 구현하기 121 11.1 기술적 요구 사항 122 11.2 전략 패턴 이해하기 122 11.3 적 드론 디자인하기 124 11.4 적 드론 구현하기 126 11.5 대안 살펴보기 132 11.6 정리 133 CHAPTER 12 | 데커레이터를 사용하여 무기 시스템 구현하기 135 12.1 기술적 요구 사항 135 12.2 데커레이터 패턴 이해하기 136 12.3 무기 시스템 디자인하기 138 12.4 무기 시스템 구현하기 139 12.5 대안 살펴보기 149 12.6 정리 149 CHAPTER 13 | 공간 분할로 레벨 에디터 구현하기 151 13.1 기술적 요구 사항 152 13.2 공간 분할 패턴 이해하기 152 13.3 레벨 에디터 디자인하기 154 13.4 레벨 에디터 구현하기 156 13.5 대안 살펴보기 161 13.6 정리 162 PART 3 | 대체 패턴 CHAPTER 14 | 어댑터로 시스템 조정하기 165 14.1 기술적 요구 사항 165 14.2 어댑터 패턴 이해하기 166 14.3 어댑터 패턴 구현하기 169 14.4 정리 173 CHAPTER 15 | 퍼사드 패턴으로 복잡성 숨기기 175 15.1 기술적 요구 사항 176 15.2 퍼사드 패턴 이해하기 176 15.3 오토바이 엔진 디자인하기 178 15.4 오토바이 엔진 구현하기 178 15.5 대안 살펴보기 184 15.6 정리 184 CHAPTER 16 | 서비스 로케이터 패턴으로 종속성 관리하기 185 16.1 기술적 요구 사항 185 16.2 서비스 로케이터 패턴 이해하기 186 16.3 서비스 로케이터 패턴 구현하기 188 16.4 대안 살펴보기 193 16.5 정리 193 찾아보기 195 |
저데이비드 바론
관심작가 알림신청David Baron
역구진수
관심작가 알림신청구진수의 다른 상품
코드를 입력하기 전에 게임 개발 과정에서 중요한 단계를 먼저 밟아야 한다. 바로 게임 기획서 작성이다. 게임 기획서는 전체 프로젝트의 청사진이다. 게임 기획서의 주요 목적은 게임의 핵심 개념에 대한 전반적인 시각을 문서로 작성해 긴 개발 과정 동안 여러 분야의 개발자 팀을 안내하는 것이다.
--- p.7 예를 들어 싱글턴 패턴으로 개별 매니저 클래스에서 게임의 모든 핵심 시스템을 래핑하고 관리하는 간단한 코드 아키텍처를 빠르게 만들 수 있다. 또한 매니저가 게임 내부의 복잡성을 숨기는 깔끔하고 직관적인 인터페이스를 노출하도록 하거나 매니저에 쉽게 접근하고 한 번에 하나의 인스턴스만 있도록 구현할 수도 있다. 굉장히 그럴듯하게 들리는 접근 방식이다. 그러나 싱글턴은 핵심 구성 요소 간의 결합을 강력하게 하여 유닛 테스트를 매우 어렵게 만든다. --- p.29 이벤트 버스 패턴은 메시징 시스템과 발행/구독 패턴과 가까운 관계이다. 발행/구독 시스템이라고 부르는 것이 이벤트 버스가 하는 일을 봤을 때 더 정확한 명칭이다. 이벤트 버스 패턴의 키워드는 버스다. 컴퓨터 용어인 버스는 구성 요소 간 연결을 의미한다. 6장에서는 이벤트 게시자 혹은 수신자가 될 수 있는 오브젝트가 구성 요소다. --- p.54 옵저버 패턴은 한 객체가 주체 역할을 하고 다른 객체가 관찰자 역할을 맡는 객체 간의 일대다 관계를 설정하는 것이 핵심 목적이다. 주체 역할을 맡는 객체는 내부에서 변경되었을 때 관찰자에게 알리는 책임을 진다. 이는 객체가 특정 이벤트 알림을 구독하고 수신하는 게시자와 구독자의 관계와 유사하다. 핵심 차이점은 옵저버 패턴에서는 주체와 관찰자가 서로를 알고 있어 가볍게 결합된다는 점이다. --- p.96 주의해야 할 점은 퍼사드 패턴과 어댑터가 종종 헷갈릴 수 있다는 점이다. 주요 차이점은 퍼사드 패턴은 단순화된 전면 인터페이스를 복잡한 시스템으로 설정한다는 점이다. 어댑터 패턴은 클라이언트에 일관적인 인터페이스를 유지하면서 호환되지 않는 시스템을 조정한다. 어댑터 패턴과 퍼사드 패턴 모두 구조적 패턴이지만 완전히 다른 목적을 가지고 있어 관련이 있다. --- p.167 |
디자인 패턴을 사용해 게임 개발의 넥스트 레벨로
유니티 게임 개발을 위한 입문서는 읽었는데, 어떻게 만들어야 잘 만드는 건지 모르시겠나요? 남들보다 우아한 방법으로 게임을 개발하고 싶으신가요? 그렇다면 여기, 유니티 디자인 패턴 가이드가 있습니다. 디자인 패턴은 일반적인 소프트웨어 개발 문제를 해결하는 데 재사용할 수 있는 방식입니다. 이 책의 저자는 유니티에도 디자인 패턴을 적용해 게임을 효율적으로 개발하는 방식을 찾고자 합니다. 성능에 민감한 레이싱 게임을 예제로 삼아 각 장에서 반복하여 게임 프로그래밍 문제를 제시하고, 이를 유니티 API에 적합한 디자인 패턴을 사용하여 해결합니다. 게임 프로토타입 기획서, 기본적인 C#과 유니티 개념은 1장~3장에서 설명합니다. 4장~13장에서는 게임 개발에 핵심적인 패턴을 소개합니다. 4장은 싱글턴 패턴, 5장은 상태 패턴, 6장은 이벤트 버스 패턴, 7장은 커맨드 패턴, 8장은 오브젝트 풀 패턴, 9장은 옵저버 패턴, 10장은 방문자 패턴, 11장은 전략 패턴, 12장은 데커레이터 패턴, 13장은 공간 분할 패턴을 다룹니다. 14장~16장에서는 복잡한 서브시스템을 대체할 대체 패턴으로 각각 어댑터 패턴, 퍼사드 패턴, 서비스 로케이터 패턴을 설명합니다. 레이싱 게임을 예시로 13가지 패턴을 적용해 따라가다 보면, 자신의 게임에 어떤 디자인 패턴을 사용해야 할지 감을 잡을 수 있을 것입니다. 초심자 딱지를 떼고 넥스트 레벨로 나아가고 싶은 게임 개발자에게 이 책을 추천합니다. 주요 내용 ■ 업계 표준 개발 패턴을 사용해 전문적인 유니티 코드 설계 ■ 특정 게임 메커니즘 또는 기능 구현을 위한 올바른 패턴 찾기 ■ 코드 한 줄 작성하지 않고도 수정할 수 있는 핵심 게임 메커니즘 및 구성 요소 ■ 실제 객체 지향 프로그래밍(OOP) 기법 및 유니티 프로젝트에서의 사용법 ■ 레벨 에디터 등 고유한 게임 개발 시스템 구축 ■ 유니티 API와 함께 사용할 수 있는 기존 디자인 패턴 적용법 |