게임 프로그래밍 패턴
더 빠르고 깔끔한 게임 코드를 구현하는 13가지 디자인 패턴
Regular price
$39.33
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
비슷한 기능을 매번 새롭게 코딩하는 개발자들에게 바치는 트리플 A 게임을 지탱하는 설계 방법론
[게임 프로그래밍 패턴]은 20년 경력의 개발자가 게임을 만들며 발견한 13가지 패턴을 정리한 책이다. 저자는 GoF의 디자인 패턴을 승계하고 가다듬어 게임에 특화된 프로그래밍 디자인 패턴을 정립했고, 이를 통해 성능을 높이면서도 구조적으로 훌륭한 소프트웨어를 설계하는 법을 알려준다. 이 패턴들은 당신의 게임 코드를 더 깨끗하고, 더 이해하기 쉽고, 무엇보다 더 빠르게 만들어줄 것이다.
[게임 프로그래밍 패턴]은 20년 경력의 개발자가 게임을 만들며 발견한 13가지 패턴을 정리한 책이다. 저자는 GoF의 디자인 패턴을 승계하고 가다듬어 게임에 특화된 프로그래밍 디자인 패턴을 정립했고, 이를 통해 성능을 높이면서도 구조적으로 훌륭한 소프트웨어를 설계하는 법을 알려준다. 이 패턴들은 당신의 게임 코드를 더 깨끗하고, 더 이해하기 쉽고, 무엇보다 더 빠르게 만들어줄 것이다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
높은 성능과 탄탄한 구조를 한 번에 잡는 13가지 게임 디자인 패턴
게임은 다른 어떤 분야 소프트웨어보다 성능이 중요하다. 그러나 개발자들은 일정 때문에 '땜질'을 하게 되고, 구조적인 문제는 해결되지 않는다. 기능이 추가되기라도 하면 기존 코드베이스에 답이 있는데도 찾지 못해 다시 맨땅에 헤딩을 한다. 이에 저자는 성능을 높이면서도 구조적으로 훌륭한 소프트웨어 설계에 대한 책을 쓰게 된다.
'디자인 패턴'이란 용어는 GoF의 동명의 책에 의해 이제는 마치 하나의 경전으로 자리 잡았다. 저자는 이 방법론을 승계하고 가다듬어 게임에 특화된 디자인 패턴을 수립하여 이 책에서 공개한다. 소프트웨어 구조에 대한 기초 없이 당면 과제의 해결에 급급한 국내 개발자들에게, 좋은 성능과 유지보수를 동시에 잡을 수 있는 설계 방법론을 제시하는 필독서다.
1부에서는 게임에서 구조와 성능의 관계에 대해 살펴보고, 2부에서는 게임 개발의 관점에서 GoF의 디자인 패턴을 돌아본 다음, 본격적으로 3~6부에서 게임에 특화된 13가지 디자인 패턴을 순서, 행동, 디커플링, 최적화 네 분류로 나눠 살펴본다. 각 패턴은 다시 의도, 동기, 패턴, 언제 쓸 것인가, 주의사항, 예제 코드, 디자인 결정, 관련자료 8개의 절로 일관되게 구성되었으므로 레퍼런스로 활용할 수도 있다.
이런 개발자들에게 이 책을 바친다.
- 흩어져 있는 코드를 제대로 된 하나로 합치느라 끙끙대고 있는가?
- 코드베이스가 커질수록 어디가 바뀌었는지 찾기 어려워지는가?
- 게임을 만들수록 온갖 것들이 섞인 부대찌개가 되고 있다는 생각이 드는가?
- 게임에 적용할 수 있는 디자인 패턴은 없는지 궁금한가?
- '캐시 일관성'이나 '객체 풀'은 들어봤는데, 그걸 이용해 게임을 빠르게 만들 방법은 모르는가?
게임은 다른 어떤 분야 소프트웨어보다 성능이 중요하다. 그러나 개발자들은 일정 때문에 '땜질'을 하게 되고, 구조적인 문제는 해결되지 않는다. 기능이 추가되기라도 하면 기존 코드베이스에 답이 있는데도 찾지 못해 다시 맨땅에 헤딩을 한다. 이에 저자는 성능을 높이면서도 구조적으로 훌륭한 소프트웨어 설계에 대한 책을 쓰게 된다.
'디자인 패턴'이란 용어는 GoF의 동명의 책에 의해 이제는 마치 하나의 경전으로 자리 잡았다. 저자는 이 방법론을 승계하고 가다듬어 게임에 특화된 디자인 패턴을 수립하여 이 책에서 공개한다. 소프트웨어 구조에 대한 기초 없이 당면 과제의 해결에 급급한 국내 개발자들에게, 좋은 성능과 유지보수를 동시에 잡을 수 있는 설계 방법론을 제시하는 필독서다.
1부에서는 게임에서 구조와 성능의 관계에 대해 살펴보고, 2부에서는 게임 개발의 관점에서 GoF의 디자인 패턴을 돌아본 다음, 본격적으로 3~6부에서 게임에 특화된 13가지 디자인 패턴을 순서, 행동, 디커플링, 최적화 네 분류로 나눠 살펴본다. 각 패턴은 다시 의도, 동기, 패턴, 언제 쓸 것인가, 주의사항, 예제 코드, 디자인 결정, 관련자료 8개의 절로 일관되게 구성되었으므로 레퍼런스로 활용할 수도 있다.
이런 개발자들에게 이 책을 바친다.
- 흩어져 있는 코드를 제대로 된 하나로 합치느라 끙끙대고 있는가?
- 코드베이스가 커질수록 어디가 바뀌었는지 찾기 어려워지는가?
- 게임을 만들수록 온갖 것들이 섞인 부대찌개가 되고 있다는 생각이 드는가?
- 게임에 적용할 수 있는 디자인 패턴은 없는지 궁금한가?
- '캐시 일관성'이나 '객체 풀'은 들어봤는데, 그걸 이용해 게임을 빠르게 만들 방법은 모르는가?
목차
목차
Part I 도입
CHAPTER 1 구조, 성능, 게임
__1.1. 소프트웨어 구조란?
__1.2. 비용은?
__1.3. 성능과 속도
__1.4. 나쁜 코드의 장점
__1.5. 균형 잡기
__1.6. 단순함
__1.7. 마치며
Part II 디자인 패턴 다시 보기
CHAPTER 2 명령
__2.1. 입력키 변경
__2.2. 액터에게 지시하기
__2.3. 실행취소와 재실행
__2.4. 클래스만 좋고, 함수형은 별로인가?
__2.5. 관련자료
CHAPTER 3 경량
__3.1. 숲에 들어갈 나무들
__3.2. 수천 개의 인스턴스
__3.3. 경량 패턴
__3.4. 지형 정보
__3.5. 성능에 대해서
__3.6. 관련자료
CHAPTER 4 관찰자
__4.1. 업적 달성
__4.2. 작동 원리
__4.3. "너무 느려"
__4.4. "동적 할당을 너무 많이 해"
__4.5. 남은 문제점들
__4.6. 오늘날의 관찰자
__4.7. 미래의 관찰자
CHAPTER 5 프로토타입
__5.1. 프로토타입 디자인 패턴
__5.2 프로토타입 언어 패러다임
__5.3. 데이터 모델링을 위한 프로토타입
CHAPTER 6 싱글턴
__6.1. 싱글턴 패턴
__6.2. 싱글턴을 왜 사용하는가?
__6.3. 싱글턴이 왜 문제라는 거지?
__6.4. 대안
__6.5. 싱글턴에 남은 것
CHAPTER 7 상태
__7.1. 추억의 게임 만들기
__7.2. FSM이 우리를 구원하리라
__7.3. 열거형과 다중 선택문
__7.4. 상태 패턴
__7.5. 상태 객체는 어디에 둬야 할까?
__7.6. 입장과 퇴장
__7.7. 단점은?
__7.8. 병행 상태 기계
__7.9. 계층형 상태 기계
__7.10. 푸시다운 오토마타
__7.11. 얼마나 유용한가?
Part III 순서 패턴
CHAPTER 8 이중 버퍼
__8.1. 의도
__8.2. 동기
__8.3. 패턴
__8.4. 언제 쓸 것인가?
__8.5. 주의사항
__8.6. 예제 코드
__8.7. 디자인 결정
__8.8. 관련자료
CHAPTER 9 게임 루프
__9.1. 의도
__9.2. 동기
__9.3. 패턴
__9.4. 언제 쓸 것인가?
__9.5. 주의사항
__9.6. 예제 코드
__9.7. 디자인 결정
__9.8. 관련자료
CHAPTER 10 업데이트 메서드
__10.1. 의도
__10.2. 동기
__10.3. 패턴
__10.4. 언제 쓸 것인가?
__10.5. 주의사항
__10.6. 예제 코드
__10.7. 디자인 결정
__10.8. 관련자료
Part IV 행동 패턴
CHAPTER 11 바이트 코드
__11.1. 의도
__11.2. 동기
__11.3. 패턴
__11.4. 언제 쓸 것인가?
__11.5. 주의사항
__11.6. 예제 코드
__11.7. 디자인 결정
__11.8. 관련자료
CHAPTER 12 하위 클래스 샌드박스
__12.1. 의도
__12.2. 동기
__12.3. 패턴
__12.4. 언제 쓸 것인가?
__12.5. 주의사항
__12.6. 예제 코드
__12.7. 디자인 결정
__12.8. 관련자료
CHAPTER 13 타입 객체
__13.1. 의도
__13.2. 동기
__13.3. 패턴
__13.4. 언제 쓸 것인가?
__13.5. 주의사항
__13.6. 예제 코드
__13.7. 디자인 결정
__13.8. 관련자료
Part V 디커플링 패턴
CHAPTER 14 컴포넌트
__14.1. 의도
__14.2. 동기
__14.3. 패턴
__14.4. 언제 쓸 것인가?
__14.5. 주의사항
__14.6. 예제 코드
__14.7. 디자인 결정
__14.8. 관련자료
CHAPTER 15 이벤트 큐
__15.1. 의도
__15.2. 동기
__15.3. 패턴
__15.4. 언제 쓸 것인가?
__15.5. 주의사항
__15.6. 예제 코드
__15.7. 디자인 결정
__15.8. 관련자료
CHAPTER 16 서비스 중개자
__16.1. 의도
__16.2. 동기
__16.3. 패턴
__16.4. 언제 쓸 것인가?
__16.5. 주의사항
__16.6. 예제 코드
__16.7. 디자인 결정
__16.8. 관련자료
Part VI 최적화 패턴
CHAPTER 17 데이터 지역성
__17.1. 의도
__17.2. 동기
__17.3. 패턴
__17.4. 언제 쓸 것인가?
__17.5. 주의사항
__17.6. 예제 코드
__17.7. 디자인 결정
__17.8. 관련자료
CHAPTER 18 더티 플래그
__18.1. 의도
__18.2. 동기
__18.3. 패턴
__18.4. 언제 쓸 것인가?
__18.5. 주의사항
__18.6. 예제 코드
__18.7. 디자인 결정
__18.8. 관련자료
CHAPTER 19 객체 풀
__19.1. 의도
__19.2. 동기
__19.3. 패턴
__19.4. 언제 쓸 것인가?
__19.5. 주의사항
__19.6. 예제 코드
__19.7. 디자인 결정
__19.8. 관련자료
CHAPTER 20 공간분할
__20.1. 의도
__20.2. 동기
__20.3. 패턴
__20.4. 언제 쓸 것인가?
__20.5. 주의사항
__20.6. 예제 코드
__20.7. 디자인 결정
__20.8. 관련자료
CHAPTER 1 구조, 성능, 게임
__1.1. 소프트웨어 구조란?
__1.2. 비용은?
__1.3. 성능과 속도
__1.4. 나쁜 코드의 장점
__1.5. 균형 잡기
__1.6. 단순함
__1.7. 마치며
Part II 디자인 패턴 다시 보기
CHAPTER 2 명령
__2.1. 입력키 변경
__2.2. 액터에게 지시하기
__2.3. 실행취소와 재실행
__2.4. 클래스만 좋고, 함수형은 별로인가?
__2.5. 관련자료
CHAPTER 3 경량
__3.1. 숲에 들어갈 나무들
__3.2. 수천 개의 인스턴스
__3.3. 경량 패턴
__3.4. 지형 정보
__3.5. 성능에 대해서
__3.6. 관련자료
CHAPTER 4 관찰자
__4.1. 업적 달성
__4.2. 작동 원리
__4.3. "너무 느려"
__4.4. "동적 할당을 너무 많이 해"
__4.5. 남은 문제점들
__4.6. 오늘날의 관찰자
__4.7. 미래의 관찰자
CHAPTER 5 프로토타입
__5.1. 프로토타입 디자인 패턴
__5.2 프로토타입 언어 패러다임
__5.3. 데이터 모델링을 위한 프로토타입
CHAPTER 6 싱글턴
__6.1. 싱글턴 패턴
__6.2. 싱글턴을 왜 사용하는가?
__6.3. 싱글턴이 왜 문제라는 거지?
__6.4. 대안
__6.5. 싱글턴에 남은 것
CHAPTER 7 상태
__7.1. 추억의 게임 만들기
__7.2. FSM이 우리를 구원하리라
__7.3. 열거형과 다중 선택문
__7.4. 상태 패턴
__7.5. 상태 객체는 어디에 둬야 할까?
__7.6. 입장과 퇴장
__7.7. 단점은?
__7.8. 병행 상태 기계
__7.9. 계층형 상태 기계
__7.10. 푸시다운 오토마타
__7.11. 얼마나 유용한가?
Part III 순서 패턴
CHAPTER 8 이중 버퍼
__8.1. 의도
__8.2. 동기
__8.3. 패턴
__8.4. 언제 쓸 것인가?
__8.5. 주의사항
__8.6. 예제 코드
__8.7. 디자인 결정
__8.8. 관련자료
CHAPTER 9 게임 루프
__9.1. 의도
__9.2. 동기
__9.3. 패턴
__9.4. 언제 쓸 것인가?
__9.5. 주의사항
__9.6. 예제 코드
__9.7. 디자인 결정
__9.8. 관련자료
CHAPTER 10 업데이트 메서드
__10.1. 의도
__10.2. 동기
__10.3. 패턴
__10.4. 언제 쓸 것인가?
__10.5. 주의사항
__10.6. 예제 코드
__10.7. 디자인 결정
__10.8. 관련자료
Part IV 행동 패턴
CHAPTER 11 바이트 코드
__11.1. 의도
__11.2. 동기
__11.3. 패턴
__11.4. 언제 쓸 것인가?
__11.5. 주의사항
__11.6. 예제 코드
__11.7. 디자인 결정
__11.8. 관련자료
CHAPTER 12 하위 클래스 샌드박스
__12.1. 의도
__12.2. 동기
__12.3. 패턴
__12.4. 언제 쓸 것인가?
__12.5. 주의사항
__12.6. 예제 코드
__12.7. 디자인 결정
__12.8. 관련자료
CHAPTER 13 타입 객체
__13.1. 의도
__13.2. 동기
__13.3. 패턴
__13.4. 언제 쓸 것인가?
__13.5. 주의사항
__13.6. 예제 코드
__13.7. 디자인 결정
__13.8. 관련자료
Part V 디커플링 패턴
CHAPTER 14 컴포넌트
__14.1. 의도
__14.2. 동기
__14.3. 패턴
__14.4. 언제 쓸 것인가?
__14.5. 주의사항
__14.6. 예제 코드
__14.7. 디자인 결정
__14.8. 관련자료
CHAPTER 15 이벤트 큐
__15.1. 의도
__15.2. 동기
__15.3. 패턴
__15.4. 언제 쓸 것인가?
__15.5. 주의사항
__15.6. 예제 코드
__15.7. 디자인 결정
__15.8. 관련자료
CHAPTER 16 서비스 중개자
__16.1. 의도
__16.2. 동기
__16.3. 패턴
__16.4. 언제 쓸 것인가?
__16.5. 주의사항
__16.6. 예제 코드
__16.7. 디자인 결정
__16.8. 관련자료
Part VI 최적화 패턴
CHAPTER 17 데이터 지역성
__17.1. 의도
__17.2. 동기
__17.3. 패턴
__17.4. 언제 쓸 것인가?
__17.5. 주의사항
__17.6. 예제 코드
__17.7. 디자인 결정
__17.8. 관련자료
CHAPTER 18 더티 플래그
__18.1. 의도
__18.2. 동기
__18.3. 패턴
__18.4. 언제 쓸 것인가?
__18.5. 주의사항
__18.6. 예제 코드
__18.7. 디자인 결정
__18.8. 관련자료
CHAPTER 19 객체 풀
__19.1. 의도
__19.2. 동기
__19.3. 패턴
__19.4. 언제 쓸 것인가?
__19.5. 주의사항
__19.6. 예제 코드
__19.7. 디자인 결정
__19.8. 관련자료
CHAPTER 20 공간분할
__20.1. 의도
__20.2. 동기
__20.3. 패턴
__20.4. 언제 쓸 것인가?
__20.5. 주의사항
__20.6. 예제 코드
__20.7. 디자인 결정
__20.8. 관련자료
저자
저자
로버트 나이스트롬
저자 로버트 나이스트롬 Robert Nystrom은 20년 경력의 베테랑 프로그래머. 10년 이상 게임을 만들었고, 8년간 EA에서 근무하며 [매든 NFL] 시리즈 같은 대작부터 [헨리 해츠워스]까지 다양한 타이틀에 참여했다. PC, 게임큐브, PS2, Xbox, X360, DS 등 다양한 플랫폼에서 게임을 만들었지만, 가장 자랑스러워하는 건 다른 개발자들을 위해 직접 만든 개발 도구와 라이브러리 들이다. 재사용 가능하고 아름다운 코드를 통해 그들이 창의력을 발휘하는 모습을 보며 기쁨을 느낀다. 현재 배우자와 두 딸과 함께 시애틀에 살고 있다. 친구들을 위해 요리를 하고 좋은 맥주를 권하는 모습이 자주 목격된다고 한다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.
$99 이상 무료 배송
3% 리워드 크레딧 적립
Secure Payment

