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