Game Programming Gems 2
1.1 C++ 게임의 최적화
저자
- Optimization for C++ Games - Andrew Kirmse
1.2 인라인 함수 대 매크로
저자
- Inline Functions Versus Macros - Peter Dalton
1.3 추상 인터페이스를 이용한 프로그래밍
저자
- Programming with Abstract Interfaces - Noel Llopis
1.4 DLL로부터 C++ 클래스 내보내기
저자
- Exporting C++ Classes from DLLs - Herb Marselas
1.5 DLL 지옥과 존재하지 않는 OS 함수들에 대한 방어 전략
저자
- Protect Yourself from DLL Hell and Missing OS Functions - Herb Marselas
1.6 동적인 형 정보
저자
- Dynamic Type Information - Scott Wakeling
1.7 범용 C++ 멤버 접근을 위한 속성 클래스
- string을 이름으로 가지고 값(int, float, …)을 가지는 property class.
- property들을 들고 있으며 등록과 값 할당 등을 담당하는 propertySet class
- reflection 사용 대신 PropertySet 클래스를 만들어 에디터와 데이터 연동.
class GameObject : public PropertySet
{
int m_test;
};
Register("test_value", &m_test);
Property * property = property_set.Lookup("test_value");
...
저자
- A Property Class for Generic C++ Member Access - Charles Cafrelli
see also
- game programming gems 5 - 템플릿을 이용한 C++ 반영(reflection) 기능 구현
1.8 게임 개체 팩토리
- 데이터 주도(data-driven)로 개체(entity)를 생성할 수 있는 프레임워크 소개
- flyweight pattern, template method pattern, strategy pattern 사용
저자
- A Game Entity Factory - Francois Dominic Laramee
1.9 C++를 위한 폐기 메커니즘의 구현
- 기존에 사용하던 인터페이스를 수정할 일이 있을 때, 새 버전을 추가하고 이전 버전에 폐기(deprecated) 마크를 하는 방법을 많이 사용한다.
- 이걸 시스템 적으로 관리하자는 아이디어
- 폐기된 함수가 호출된 곳의 위치라던지 개수를 세어서 알려주도록 구현
- MSVC를 사용한다면 따로 만들 필요없이 제공하는 deprecated 지시자를 사용하면 된다
저자
- Adding Deprecation Facilities to C++ - Noel Llopis
1.10 드롭-인 디버그 메모리 관리자
저자
- A Drop-in Debug Memory Manager - Peter Dalton
1.11 게임에 내장되는 프로파일링 모듈
- 왜 게임 내장 프로파일링 모듈이 필요한지 설명하고 이렇게 이렇게 하자는 내용
- QueryPerformanceCounter()와 QueryPerformanceFrequency() 부담이 상당해서 인라인 어셈 사용
- rdtsc
- CPU 5% 이하, 동작 중이지 않을때는 1% 이하
- 카운터 표시 빈도를 조정할 수 있게 하자
- 30 프레임마다 한번씩 표시해도 충분
저자
- A Built-in Game Profiling Module - Jeff Evertt
1.12 윈도우즈 기반 게임을 위한 선형적 프로그래밍 모델
저자
- Linear Programming Model for Windows-based Games - Javier F. Otaegui
1.13 스택 와인딩
저자
- Stack Winding - Bryon Hapgood
1.14 스스로 수정하는 코드
저자
- Self-Modifying Code - Bryon Hapgood
1.15 파일을 이용한 파일 관리
저자
- File Management Using Resource Files - Bruno Sousa
1.16 게임 입력의 기록 및 재생
저자
- Game input Recording and Playback - Bruce Dawson
1.17 유연한 텍스트 파싱 시스템
저자
- A Flexible Text Parsing System - James Boer
1.18 범용 트위커
저자
- A Generic Tweaker - Lasse Staff Jensen
1.19 순정난수 생성
저자
- Genuine Random Number Generation - Pete Isensee
1.20 블룸 필터를 이용한 계산 성능의 향상
저자
- Using Bloom Filters to improve Computational Performance - Mark Fischer
1.21 3ds Max 스킨 익스포터 및 애니메이션 툴킷
저자
- 3ds max Skin Exporter and Animation Toolkit - Marco Tombesi
1.22 비디오 게임에서의 웹 카메라 활용
저자
- Using Web Cameras in Video Games - Nathan d’Obrenan
2.1 부동소수점 비법들 : IEEE 부동소수점을 통한 성능 향상
저자
- Floating-Point Tricks: Improving Performance with IEEE Floating Point - Yossarian King
2.2 벡터와 평면 충돌 기법들
저자
- Vector and Plane Tricks - John M. Olsen
2.3 3D 선분에 대한 빠르고 충실한 교차 판정
저자
- Fast, Robust Intersection of 3D Line Segments - Graham Rhodes
2.4 역탄도 계산
저자
- Inverse Trajectory Determination - Aaron Nicholls
2.5 평행 수송 프레임
저자
- The Parallel Transport Frame - Carl Dougan
2.6 매끄러운 C2 사원수 기반의 공간 이동 경로
저자
- Smooth C2 Quaternion-based Flythrough Paths - Alex Vlachos
2.7 재귀적 차원 클러스터링 : 충돌 검출을 위한 빠른 알고리즘
저자
- Recursive Dimensional CLustering: A Fast Algorithm for Collision Detection - Steve Rabin
2.8 프랙탈의 프로그래밍
저자
- Programming Fractals - Jesse Laeuchli
3.1 AI 최적화 전략들
저자
- Strategies for Optimizing AI - Steve Rabin
3.2 게임 객체 AI를 위한 마이크로 스레드
저자
- Micro-Threads for Game Object AI - Bruce Dawson
3.3 마이크로 스레드를 통한 AI 관리
저자
- Managing AI with Micro-Threads - Simon Carter
3.4 RTS 게임의 명령 큐잉을 위한 기반 구조
저자
- An Architecture for RTS Command Queuing - Steve Rabin
3.5 고성능 타일 기반 시선 및 검색 시스템
저자
- A High-Performance Tile-Based Line-of-Sight and Search System - Matt Pritchard
3.6 영향력분포도 기법
저자
- Influence Mapping - Paul Tozour
3.7 전략적 판단 기법
저자
- Strategic Assessment Techniques - Paul Tozour
3.8 3D 액션 게임을 위한 지형 분석
저자
- Terrain Reasoning for 3D Action Games - William van der Sterren
3.9 가시점 길찾기를 위한 확장된 기하 구조
저자
- Expanded Geometry for Points-of-Visibility Pathfinding - Thomas Young
3.10 가시점 길찾기의 최적화
저자
- Optimizing Points-of-Visibility Pathfinding - Thomas Young
3.11 먹고 먹히는 플로킹 : 포식자와 먹이
저자
- Flocking with Teeth: Predators and Prey - Steven Woodcock
3.12 C++로 구현한 범용 퍼지 상태 기계
저자
- A Generic Fuzzy State Machine in C++ - Eric Dybsand
3.13 퍼지 시스템에서 조합의 폭발적 증가를 방지하려면
저자
- Imploding Combinatorial Explosion in a Fuzzy System - Michael Zarozinski
3.14 게임에서의 신경망 활용 : 구체적인 예
저자
- Using a Neutral Network in a Game: A Concrete Example - John Manslow
4.1 VIPM 방법들의 비교
저자
- Comparison of VIPM Methods - Tom Forsyth
4.2 맞물린 타일들을 이용한 단순화된 지형 시스템
저자
- Simplified Terrain Using Interlocking Tiles - Greg Snook
4.3 빠른 가시성 제외, 레이 트레이싱, 범위 검색을 위한 구 트리
저자
- Sphere Trees for Fast Visibility Culling, Ray Tracing and Range Searching - John W. Ratcliff
4.4 압축된 축 정렬 경계상자 트리
저자
- Compressed Axis-Aligned Bounding Box Trees - Miguel Gomez
4.5 직접 접근 쿼드트리 참조
저자
- Direct Access Quadtree Lookup - Matt Pritchard
4.6 어항 굴절의 근사
저자
- Approximating Fish Tank Refractions - Alex Vlachos
4.7 인쇄 해상도의 스크린샷 만들기
저자
- Rendering Print Resolution Screenshots - Alex Vlachos, Evan Hart
4.8 임의의 표면에 데칼 적용하기
저자
- Applying Decals to Arbitrary Surfaces - Eric Lengyel
4.9 하늘 상자를 이용한 원경 렌더링
저자
- Rendering Distans Scenery with Skyboxes - Jason Shankel
4.10 캐릭터 자신에 대한 그림자 만들기
저자
- Self-Shadowing Characters - Alex Vlachos, Dave Gosselin, Jason L. Mitchell
4.11 명작 Super Mario 64의 3인칭 조종 및 애니메이션
저자
- Classic Super Mario 64 Third-Person Control and Animation - Steve Rabin
5.1 카툰 렌더링 : 실시간 외곽선 변 검출 및 렌더링
저자
- Cartoon Rendering: Real-Time Silhouette Edge Detection and Rendering - Carl S. Marshall
5.2 텍스쳐 매핑과 프로그래밍 가능한 정점 셰이더를 이용한 카툰 렌더링
저자
- Cartoon Rendering Using Texture Mapping and Programmable Vertex Shaders - Adam Lake
5.3 동적인 픽셀 당 조명 기법
저자
- Dynamix Per-Pixel Lighting Technique - Dan Ginsburg, Dave Gosselin
5.4 3D 하드웨어를 이용한 절차적 구름 생성
저자
- Generating Procedural Clouds using 3D Hardware - Kim Pallister
5.5 빠른 렌즈 플레어를 위한 텍스쳐 마스킹
저자
- Texture Masking for Faster Lens Flare - Chris Maughan
5.6 실용적인 우선순위 버퍼 그림자
저자
- Practical Priority Buffer Shadows - D. Sim Dietrich Jr.
5.7 임포스터 : 장면에 소품 추가하기
저자
- Impostors: Adding Clutter - Tom Forsyth
5.8 하드웨어 가속 절차적 텍스쳐 애니메이션을 위한 연산들
저자
- Operations for Hardware-Accelerated Procedural Texture Animation - Greg James
6.1 게임 오디오 설계 패턴
저자
- Game Audio Design Patterns - Scott Patterson
6.2 샘플 기반 신디사이저에서의 즉각적인 음성 재사용을 위한 기법
저자
- Thomas Engel
6.3 소프트웨어 기반 DSP 효과들
저자
- Software-based DSP Effects - Ian Lewis
6.4 상호작용적인 디지털 오디오 처리 파이프라인
저자
- Interactive Processing Pipeline for Digital Audio - Keith Weiner
6.5 게임을 위한 기본적인 음악 시퀀서
저자
- Scott Patterson
6.6 게임을 위한 상호작용적 음악 시퀀서
저자
- Scott Patterson
6.7 저수준 사운드 API
저자
- Ian Lewis