Game Programming Gems 4

1.1 게임 디버깅의 과학

  • The Science of Debugging Games - Steve Rabin

1.2 HTML 기반의 로깅 및 디버깅 시스템

  • An HTML-Based Logging and Debugging System - James Boer

1.3 클럭: 게임의 심장 박동

  • The Clock: Keeping Your Finger on the Pulse of the Game - Noel Llopis

1.4 커다란 크로스플랫폼 라이브러리의 설계와 유지

  • Designing and Maintaining Large Cross-Platform Libraries - David Etherton

1.5 자유목록 템플릿을 이용한 메모리 단편화 해결

  • Fight Memory Fragmentation with Templated Freelists - Paul Glinker

1.6 C++ 일반 트리 컨테이너

  • A Generic Tree Container in C++ - Bill Budge

1.7 약한 참조와 널 객체의 미덕

  • The Beauty of Weak References and Null Objects - Noel Llopis

1.8 게임 개체 관리를 위한 시스템

  • 메시지 기반 개체 시스템 소개
  • 모든 것은 메시지로부터 일어난다

저자

  • A System for Managing Game Entities - Matthew Harmon

1.9 Windows와 Xbox를 위한 주소 공간 관리식 동적 배열

  • Address-Space Managed Dynamic Arrays for Windows and the Xbox - Matt Pritchard

1.10 임계 감쇠식 가속/감속 평활화

  • Critically Damped Ease-In/Ease-Out Smoothing - Thomas Lowe

1.11 유연한 즉석 객체 관리자

  • #gpg1 - 범용 핸들 기반 자원 관리자와 핸들 기반 스마트 포인터를 사용한 객체 관리에는 일정한 제약이 존재
  • 정적인 객체 관리 방식
  • 실행시점에서 형식 정보를 평가할 수 있게 해, 동적인 객체 관리 문제를 해결하려고 한다
  • 자료 주도적 게임 하위 시스템 안에서 실행시점 유연성을 제공하는 객체 관리 시스템을 소개
  • RTTI(Runtime Type Identification) 사용
  • 소스 코드를 봐야 알겠다.

저자

  • A Flexible, On-the-Fly Object Manager - Natalya Tatarchuk

1.12 커스텀 RTTI 속성을 이용한 객체 스트리밍와 편집

  • Using Custom RTTI Properties to Stream and Edit Objects - Frederic My

1.13 속도를 희생하지 않고 XML 사용하기

  • Using XML without Sacrificing Speed - Mark T. Price

2.1 메르센느 트위스터를 이용한 조브리스트 해시

  • Zobrist Hash Using the Mersenne Twister - Toby Jones

2.2 절두체와 카메라 정보 추출

  • Extracting Frustum and Camera Information - Waldemar Celes

2.3 커다란 세계 좌표의 정밀도 문제 해결

  • Solving Accuracy Problems in Large World Coordinates - Peter Freese

2.4 비균일 스플라인

  • Nonuniform Splines - Thomas Lowe

2.5 공분산 행렬을 이용해서 좀 더 잘 들어맞는 경계입체 만들기

  • Using the Covariance Matrix for Better-Fitting Bounding Objects - James M. Van Verth

2.6 역기구학을 위한 야코비 전치법

  • The Jacobian Transpose Method for Inverse Kinematics - Marco Sporel

3.1 죽음의 열 손가락: 전투 무력화 알고리즘들

  • Ten Fingers of Death: Algorithms for Combat Killing - Don Stoner, Roger Smith

3.2 CPU가 제한된 시스템을 위한 차량 물리 시뮬레이션

  • Vehicle Physics Simulation for CPU-Limited Systems - Marcin Pancewicz, Paul Bragiel

3.3 벌레뜨 기반 물리 엔진 작성

  • Writing a Verlet-Based Physics Engine - Nick Porcino

3.4 강체 동역학의 구속조건들

  • Constraints in Rigid Body Dynamics - Russ Smith

3.5 동역학 시뮬레이션을 위한 빠른 접촉 줄이기

  • Fast Contact Reduction for Dynamics Simulation - Adam Moravanszky, Pierre Terdiman

3.6 상호작용적인 수면

  • Interactive Water Surfaces - Jerry Tessendorf

3.7 다층 물리를 이용한 빠른 변형

  • Fast Deformations with Multilayered Physics - Thomas Di Giacomo

3.8 빠르고 안정적인 변형을 위한 양상 해석

  • Modal Analysis for Fast, Stable Deformation - James F. O’Brien

4.1 3인칭 카메라 네비게이션

  • Third-Person Camera Navigation - Jonathan Stone

4.2 이야기식 전투: AI를 이용해서 액션 게임의 긴장감 높이기

  • Narrative Combat: Using AI to Enhance Tension in an Action Game - Borut Pfeifer

4.3 NPC 의사결정: 무작위성 다루기

  • NPC Decision Making: Dealing with Randomness - Karen Pivazyan

4.4 객체지향적인 효용 기반 의사결정 아키텍처

  • An Object-Oriented Utility-Based Decision Architecture - John Hancock

4.5 분산 추론 투표 아키텍처

  • A Distributed-Reasoning Voting Architecture - John Hancock

4.6 끌개와 밀개

  • Attractors and Repulsors - John M. Olsen

4.7 RTS 게임을 위한 개선된 벽 건설

  • Advanced Wall Building for RTS Games - Mario Grimani

4.8 프로그래밍 가능한 그래픽 하드웨어를 이용한 인공 신경망 시뮬레이션

  • Artificial Neural Networks on Programmable Graphics Hardware - Thomas Rolfes

5.1 포스터 품질 스크린샷

  • Poster Quality Screenshots - Steve Rabin

5.2 닫히지 않은 메시를 위한 GPU 그림자 입체 구축

  • GPU Shadow Volume Construction for Nonclosed Meshes - Warrick Buchanan

5.3 원근 그림자 맵

  • Perspective Shadow Maps - Carsten Dachsbacher, George Drettakis, Marc Stamminger

5.4 결합된 깊이 및 ID 기반 그림자 버퍼

  • Combined Depth and ID-Based Shadow Buffers - Kurt Pelzer

5.5 정적 그림자를 기하구조에 새겨 넣기

  • Carving Static Shadows into Geometry - Alex Vlachos

5.6 그림자 입체와 최적화된 메시를 위한 실시간 조명 조정

  • Alex Vlachos, Chris Oat

5.7 실시간 망점처리: 빠르고 간단한 양식화된 셰이딩

  • Bert Freudenberg, Maic Masuch, Thomas Strothotte

5.8 3차원 모형에 팀 색상을 적용하는 기법들

  • Techniques to Apply Team Colors to 3D Models - Greg Seegert

5.9 빠른 세피아 색조 변환

  • Fast Sepia Tone Conversion - Marwan Y. Ansari

5.10 표본화된 장면 휘도를 이용한 동적 감마 보정

  • Dynamic Gamma Using Sampled Scene Luminance - Dave McCoy, Michael Dougherty

5.11 열과 아지랑이 후처리 효과

  • Heat and Haze Post-Processing Effects - Chris Oat, Natalya Tatarchuk

5.12 사원수를 이용한 하드웨어 스키닝

  • Jim Hejl

5.13 모션 캡처 자료 압축

  • Motion Capture Data Compression - Søren Hannibal

5.14 3차원 뼈대 기반 관절 캐릭터를 위한 빠른 충돌 검출

  • Fast Collision Detection for 3D Bones-Based Articulated Characters - Adam Lake, Carl S. Marshall, Oliver Heim

5.15 지평선을 이용한 지형 차폐 선별

  • Terrain Occlusion Culling with Horizons - Glenn Fiedler

6.1 일반적인 로비 설계와 개발

  • General Lobby Design and Development - Shekhar Dhupelia

6.2 서버 당 수 천의 클라이언트들

  • Thousands of Clients per Server - Adam Martin

6.3 효율적인 MMP 게임 상태 저장

  • Efficient MMP Game State Storage - Justin Quimby

6.4 클라이언트-서버 환경에서 병렬 상태기계의 실용적인 적용 방법

  • Practical Application of Parallel-State Machines in a Client-Server Environment - Steve Rabin

6.5 비트 패킹: 한 가지 네트웍 압축 기법

  • Bit Packing: A Network Compression Technique - Pete Isensee

6.6 다중서버 기반 MMORPG를 위한 시간 및 일관성 관리

  • Time and Consistency Management for Multiserver-Based MMORPGs - Tao Zhang

7.1 OpenAL에 대한 간략한 소개

  • A Brief Introduction to OpenAL - Joe Valenzuela

7.2 간단한 실시간 립싱크 시스템

  • A Simple Real-Time Lip-Synching System - Jake Simpson

7.3 동적 변수와 오디오 프로그래밍

  • Dynamic Variables and Audio Programming - James Boer

7.4 오디오 스크립팅 시스템 만들기

  • Creating an Audio Scripting System - Borut Pfeifer

7.5 EAX와 ZoomFX를 이용한 환경 음향 솔루션 구현

  • Implementing an Environmental Audio Solution Using EAX and ZoomFX - Scott Velasquez

7.6 게임 물리에 기반한 실시간 음 합성 제어

  • Controlling Real-Time Sound Synthesis from Game Physics - Frank Luchs