본문 바로가기

카테고리 없음

게임 프로그래밍 패턴

디자인 패턴은 게임 개발에 필수는 아니다. 하지만 조금이라도 규모가 있는 게임을 개발한다면 단연 필수라고 생각한다. 규모가 큰 프로젝트에서 생각없이 코딩을 하고 결과물을 만들어 낸다면 나중에 큰 고생을 하는건 누구나 경험해본 사실 일 것이다. 이러한 패턴을 게임개발에 빗대어 알기 쉽게 설명해준 책이다. 이번 기회에 공부하여 좀 더 발전하는 계기를 가져야겠다.

비슷한 기능을 매번 새롭게 코딩하는 개발자들에게 바치는 트리플 A 게임을 지탱하는 설계 방법론 이 책은 20년 경력의 개발자가 게임을 만들며 발견한 13가지 패턴을 정리한 책이다. 저자는 GoF의 디자인 패턴을 승계하고 가다듬어 게임에 특화된 프로그래밍 디자인 패턴을 정립했고, 이를 통해 성능을 높이면서도 구조적으로 훌륭한 소프트웨어를 설계하는 법을 알려준다. 이 패턴들은 당신의 게임 코드를 더 깨끗하고, 더 이해하기 쉽고, 무엇보다 더 빠르게 만들어줄 것이다.

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. 관련자료