메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석

한빛미디어

번역서

절판

  • 저자 : 히라야마 타카시
  • 번역 : 김성훈
  • 출간 : 2012-02-25
  • 페이지 : 1008 쪽
  • ISBN : 9788979148992
  • 물류코드 :1899
  • 초급 초중급 중급 중고급 고급
4.2점 (9명)
좋아요 : 52

세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석

저자는 주식회사 세가에서 <전뇌전기 버츄어 온 마즈>(PS2), <파워 스매시3>(PS3) 개발에 참여했다. 저자가 담당했던 세가의 신입 사원 교육 프로그램을 바탕으로 게임 프로그래밍에 필요한 기술을 책으로 담았다. 콘솔 게임에서 시작해서 2D 게임, DirectX에서 3D 게임까지 게임 제작 전반을 단계별로 설명한다. 현업에서의 게임 제작 경험을 바탕으로 왜 이 기술을 사용해야 하는지, 왜 이런 프로그래밍 기법을 사용하는지 설명하며 예제를 보여주므로 현업에서 원하는 기술의 기초를 학습할 수 있다.

  • 이미지 파일 사용법
  • 문자 처리
  • 평면 충돌 처리
  • 입력장치 처리: 키보드, 마우스, 조이스틱
  • 사운드 처리
  • 2D 그래픽 이론
  • 3D 그래픽의 기초: 은면소거, Z버퍼, 투시 변환, 행렬, 벡터
  • 입체의 충돌 처리
  • 라이팅, 레이 트레이스, 램버트 모델
  • 캐릭터 애니메이션
  • 게임 로딩: 분할 기법과 압축 기법
  • 폭탄맨 제작
  • 로보 파이트 제작
히라야마 타카시 저자

히라야마 타카시

교토대학 대학원 공학연구과에서 유전자 연구를 공부했고 수료 후 ㈜세가에 입사했다. 그 후 전뇌전기 버츄어 온 마즈(PS2) 및 파워 스매시3(아케이드, PS3) 개발에 참가하고 현재에 이르렀다. 전뇌전기 버츄어 온 마즈에서는 이펙트와 데모 등을 파워 스매시3에서는 그래픽 엔진과 직물 시뮬레이터 등 라이브러리를 담당했다.

김성훈 역자

김성훈

주로 IT 관련 서적을 번역하는 번역가다. 주요 번역서로는 『따라 하며 배우는 언리얼 엔진 5 입문』(한빛미디어, 2024), 『그림으로 배우는 5G 네트워크』(영진닷컴, 2022), 『그림으로 이해하는 IT 지식과 트렌드』(길벗, 2021), 『파이썬으로 배우는 머신러닝 입문』(성안당, 2021), 『Scratch가 보이는 그림책』(성안당, 2020), 『C가 보이는 그림책』(성안당, 2018), 『실무에서 바로 통하는 자바』(한빛미디어, 2017), 『안드로이드 개발 레벨업 교과서』(위키북스, 2017), 『프로그래밍이 보이는 그림책』(성안당, 2017), 『24가지 예제로 배우는 게임 수학&물리 입문』(길벗, 2014), 『세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석』(한빛미디어, 2012), 『웹 개발자를 위한 웹을 지탱하는 기술』(멘토르, 2011) 등이 있다.

 

CHAPTER  00  머리말
  01 이 책은 어떤 책인가
  02 대상 독자
    필요한 기술
  03 필요한 준비
    컴파일러와 운영체제
    DirectX
    CPU와 메모리
    그래픽 하드웨어
    그래픽과 음악 소재
  04 이 책 진행 방법
  05 이 책 학습 방법
  06 예제 코드
    소프트웨어 등 사용 허가서
 
Part  I    2차원 게임
 
CHAPTER  01  처음 만드는 게임
  1.1 퍼즐 게임을 만들자
    예제
    준비
    메인 루프
    처리 내용을 작성한다
    검사
  1.2 예제 코드
    헤더 포함
    스테이지 데이터 상수
    열거형
    함수 프로토타입
    main 함수
    스테이지 초기화
    화면 그리기
    갱신
    클리어 판정
    정리
  1.3 스테이지 데이터를 읽자
    준비
    데이터 형식
    스테이지 크기
    오류 처리
    예제 코드
  1.4 C++ 보충
    이름공간
    템플릿
    생성자와 소멸자
    초기 설정
    멤버함수에서 const
    두 가지 delete
    문자열 상수
  1.5 팁: 플래그와 비트 연산
    플래그
    플래그 저장
    계산으로 플래그를 추출하는 방법
    곱셈 나눗셈과 시프트 연산
    비트 연산을 사용한다
    플래그를 온으로 하자
    플래그를 오프로 하자
    여러 플래그를 한 번에 조작한다
    16진수
  1.6 팁: 포인터와 메모리
    메모리는 배열이다
    포인터
    포인터와 배열
    0 포인터
    포인터 형
    new와 delete
    배열과 new 차이
    포인터 정리
  1.7 팁: 참조
    참조와 포인터
    성능 향상을 위한 포인터와 참조
    참조 문제점
    참조 '반환'에 주의
  1.8 정리
 
CHAPTER  02  점에서 시작하는 2D 그래픽
  2.1 2D 그래픽
    라이브러리
  2.2 준비
    라이브러리 경로를 설정한다
    디버그와 릴리스
    환경변수
    멤버함수
    앞 장에 cout, cin과의 차이
  2.3 점을 찍자
    예제 코드
  2.4 배달맨을 이식한다
    그래픽이 나오지 않는 배달맨 만들기
    배달맨에 그래픽을 덧붙인다
    그래픽을 확대한다
  2.5 팁: 종료 처리
    종료 처리용 함수
    종료 처리가 필요한 이유
  2.6 정리
 
CHAPTER  03  이미지 파일을 사용하자
  3.1 파일에서 이미지를 읽는다
    이미지 형식
    DDS 이미지를 준비한다
    DDS 구조를 조사한다
    데이터를 추출하자
    사각형 화면에 붙인다
    이미지 일부를 잘라내자
    배달맨에 적용하자
  3.2 그래픽 버전인 배달맨 예제 코드
    전체 구성
    maincpp
    Statecpp
    Filecpp
    Imagecpp
  3.3 알파 채널을 사용한다
    알파 테스트
    배달맨에 도입한다
    알파 블렌딩
    배달맨에 적용하자
  3.4 포함 관계 결정 방법
    전통적인 방법
    문제점은 무엇인가
    정의와 선언
    인클루드 가드
    결국 어떻게 하면 되는가
    헤더 인클루드를 생각하는 의미
  3.5 팁: 알파 블렌딩 최적화
    정수로 계산한다
    시프트를 지우자
  3.6 팁: 가산 블렌딩
  3.7 정리
 
CHAPTER  04  실시간 게임
  4.1 실시간 게임
    어디를 수정해야 하는가
    새로운 입력 함수: Framework::isKeyOn()
    입력 페이스 조정
  4.2 애니메이션을 만들자
  4.3 애니메이션이 들어간 배달맨 예제 코드
    Stateh
    Statecpp
  4.4 프레임 레이트를 구한다
    프레임 레이트 계산
  4.5 프레임 레이트 차이에 대응한다
    프레임 레이트를 고정한다
    unsigned 범위를 넘었을 때 대처
  4.6 팁: 프레임 레이트에 맞게 게임 속도를 바꾸는 방법
    좋은 점과 나쁜 점
    만들어 본다
    예제 코드
    unsigned와 int
    가변 프레임 레이트와 고정 프레임 레이트 비교
  4.7 팁: 티어링 문제
    티어링을 어떻게 잡을 수 있을까
  4.8 정리
 
CHAPTER  05  간단한 시퀀스 전이
  5.1 라이브러리 추가 기능
    입력 취득 기능
    프레임 레이트 관련 기능
    편리한 매크로
  5.2 단순한 방법
    if 문으로 한다
    switch 문을 사용한다
  5.3 시퀀스를 늘리자
    시퀀스 사양
    이것은 간단한 과제인가
  5.4 코드 검사
    자원 로드와 해제에 관한 문제
    시퀀스에 걸쳐 있는 자원 문제
    계층 구조 시퀀스 전이
    전이 트리거를 어디에 둘까
    계층 간 이동
  5.5 예제 코드
    파일 배치
    프로젝트 설정
    클래스 구성
    데이터 배치
    maincpp
    Sequence/Parenth
    Sequence/Parentcpp
    Game::Parent
    1초 대기
    몇 가지 기능 추가
    stringstream
  5.6 정리
 
CHAPTER  06  문자를 출력하는 방법
  6.1 폰트용 이미지
  6.2 문자 그리기 함수
    ASCII 코드
  6.3 사용하기 편하게
    클래스화
    배경을 투명하게 만들자
    색을 바꾼다
    표시 위치 지정
    오류 검사
  6.4 사용한다
  6.5 예제 코드
    싱글톤
  6.6 저작권에 주의하자!
  6.7 예제 라이브러리 기능
  6.8 정리
 
CHAPTER  07  처음 시작하는 액션 게임
  7.1 사용할 라이브러리
    문자 그리기
    난수
  7.2 '폭탄맨'을 만들자
  7.3 예제 코드
    라이브러리를 대응시킨다
    시퀀스만 만들어 보자
    시퀀스만 추가한 예제 코드
  7.4 일단 배경을 출력한다
    이미지를 준비한다
    State 클래스를 바꿔 쓴다
    움직이지 않는 오브젝트 클래스를 정비한다
    스테이지 형태
    그리자
  7.5 움직이는 오브젝트를 배치한다
    움직이는 오브젝트 클래스
    배치
    움직이게 한다
  7.6 드디어 게임을 하자
  7.7 정리
 
CHAPTER  08  평면 충돌 처리
  8.1 충돌 검출
    정사각형 교차 판정
    데이터 표현 방법
    교차 판정 코드
  8.2 충돌 응답
    충돌하면 움직이지 않는다
    충돌 직전에 멈춘다
    이동시켜 처리한다
    어느 방법이 좋을까
  8.3 복수 충돌 문제
    충돌하면 움직이지 않는다
    충돌 직전에 멈춘다
    겹쳐 있으면 이동시킨다
    어느 것을 선택할 것인가
  8.4 충돌 응답과 조작성
    겉보기와 실체 크기를 다르게 한다
    충돌하면 벽면을 따라 미끄러지게 한다
    가로 이동과 세로 이동을 따로 다룬다
    움직이는 캐릭터를 원형으로 한다
    어느 방법을 택해야 하는가
  8.5 움직이는 것끼리 충돌한다
  8.6 폭탄맨 충돌 처리
    DynamicObject 확장
    움직이는 것끼리
    움직이는 것과 움직이지 않는 것 판정
    폭탄 설치 문제
    연쇄 폭발
  8.7 정리
 
CHAPTER  09  다양한 입력장치
  9.1 입력장치 인스턴스 취득
  9.2 키보드
  9.3 마우스
  9.4 조이스틱
  9.5 폭탄맨을 조이스틱으로 조작한다
    라이브러리를 은폐하는 것
    예제 코드
  9.6 정리
 
CHAPTER  10  좀 더 나은 시퀀스 전이
  10.1 도대체 무엇이 문제였을까
  10.2 상속을 사용한다
      기반 클래스
      파생 클래스
      파생 클래스와 기저 크래스
      가상 소멸자
  10.3 실제로 사용하자
      예제 코드
  10.4 팁: 시퀀스 이동 코드를 짧게 한다
      문제는 어디에 있는가
      잘못된 분기를 바로잡는다
      예제 코드
  10.5 팁: 계층 간 시퀀스 이동 코드도 짧게 한다
      dynamic cast
      계층마다 기반 클래스를 다시 정의한다
      예제 코드
      이렇게까지 할 필요가 있을까
  10.6 팁: 상속을 좀 더 자세히
      상속을 흉내낸다
      상속은 무엇을 희생하고 있는가
      상속은 언제 사용해야 하는가
      순수 가상 함수
  10.7 정리
 
CHAPTER  11  소리를 내다
  11.1 사운드 라이브러리
      데시벨
      예제 코드
  11.2 팁: 컴퓨터에서 소리를 재생한다는 것
      라이브러리
  11.3 팁: 소리 높이와 크기
      소리 높이
      소리 크기
  11.4 팁: 음색
  11.5 팁: 소리 겹침
  11.6 팁: 도레미 원리
      도레미로 놀아보자
  11.7 팁: 악보를 읽어 연주한다
      예제 코드
  11.8 팁: WAV 파일 읽기
      WAV 파일 내용
  11.9 팁: Sound 모듈을 사용한 웨이브 합성
  11.10 정리
 
CHAPTER  12  회전, 확대, 이동
  12.1 회전
      좌표를 돌리는 간단한 방법
      삼각함수
      삼각함수를 사용해 회전시킨다
      좀 더 나은 방법
  12.2 벡터와 행렬 도입
      벡터형 도입
      행렬 도입
  12.3 정점
  12.4 확대·축소
      코드로 만들자
  12.5 확대·축소하면서 회전시킨다
      코드로 만들자
  12.6 행렬이 지닌 위력
      이동을 행렬로 표현한다
      확대·축소를 행렬로 나타낸다
      복수 조작을 하나로 모은다
  12.7 팁: 왜 이 공식으로 회전이 될까
  12.8 팁: 제대로 돌려보자
      래스터라이즈
  12.9 팁: 수학 속 행렬
      행렬과 벡터 곱
      행렬과 행렬 곱
  12.10 정리
 
CHAPTER  13  하드웨어 파워
  13.1 사용할 라이브러리
  13.2 그래픽 하드웨어로 삼격형을 그린다
      흰색 삼각형을 그린다
      색칠한 삼각형을 그린다
  13.3 삼각형에 이미지를 붙인다
      텍스처를 만든다
      텍스처를 사용한다
      텍스처 좌표
      텍스처와 정점 병용
  13.4 알파 블렌드
  13.5 회전, 확대·축소, 이동
      변환 순서를 생각한다
      행렬을 사용해 drawTriangle2D()를 호출한다
  13.6 폭탄맨을 이식한다
      텍스처 잘라내기
      예제 코드
  13.7 정리
 
Part  II    3차원 게임
 
  14.1 라이브러리
      텍스처 등록
  14.2 3D 액션 게임 '로보 파이트'를 만들려면
      로보 파이트에 필요한 것
  14.3 삼각형을 그린다
  14.4 가까운 쪽을 가까이에 그린다
      반투명과 Z 버퍼법
  14.5 멀리 있는 것을 작게 그리기
      거리로 나눈다
      직접 했을 때 문제점
      그래픽 하드웨어를 이용하자
  14.6 좌표 교환
      좌표축 방향
      z축을 반전한다
      행렬과 벡터 확장
       3차원 회전 행렬
      어떻게 보이는지 생각한다
      두 개 축 이상 회전이 필요할 때
      뷰 변환 행렬
  14.7 투시 변환도 행렬로
      무엇을 하고 있었는지 떠올린다
      또 하나 z 범위 변환
      화각 도입
      종횡비 보정
      행렬 완성
      모든 변환 합성
  14.8 로보 파이트를 만들기 시작하자
      클래스 설계
      메인 루프
      로보 클래스 선언
      스테이지 클래스 선언
      그림을 출력하는 경로를 생각한다
      시점 조작과 투시 변환
      로보를 출력하자
      시점 이동을 만든다
      로보를 움직인다
      텍스처를 붙인다
      시선 방향을 따라 이동 방향을 수정한다
  14.9 팁: Z 버퍼 정밀도 문제
  14.10 정리
 
CHAPTER  15  라이브러리 제작법
  15.1 전체 설계
      리소스와 인스턴스
  15.2 리소스 내역
      정점 버퍼 클래스
      인덱스 버퍼 클래스
      배치 클래스
      그리기 인스턴스 클래스
      리소스 컨테이너 클래스
      카메라 클래스
  15.3 사용해보자
  15.4 파일에서 로드한다
      너무 정직한 방법
      XML처럼 만들자
      유사 XML을 라이브러리에
  15.5 팁: 라이브러리를 게임에서 분리한다
      비주얼 스튜디오 프로젝트 설정
  15.6 정리
 
CHAPTER  16  유사 XML 읽기
  16.1 파일 형식을 결정한다
  16.2 사전 준비
      std::string
      단순화
  16.3 처리 흐름
      Document 클래스
      Element 클래스
  16.4 문자열 해석
      상태 전이 집합으로 분해한다
      실제로 분해한다
  16.5 코드로 만든다
  16.6 사용해보자
      필요한 함수
  16.7 예제 코드
      Texture 클래스
      배치와 이름공간
      추가에 관한 문제
      문자열에서 수치로 변환
      사용자 코드
  16.8 팁: 쓰기
      사용자가 코드를 작성한다
      어트리뷰트 설정
      추가
  16.9 정리
 
CHAPTER  17  느리지 않은 코드를 작성하려면
  17.1 알고리즘과 계산량 오더
      간단한 예
      계산량 오더
  17.2 데이터 구조 기초
      데이터 구조 성질
      정렬되지 않은 배열
      정렬되어 있는 배열
      리스트
      이진 트리
      정렬된 이진 트리
      조작을 제한한다
  17.3 스루풋과 레이턴시
      CPU 명령
      더욱 큰 주제
  17.4 병렬성
      병렬화 비용
  17.5 메모리 문제
      메모리에 해당하는 레이턴시를 짧게 하는 두 가지 방법
      모아서 처리하기
      캐시에 대해 생각해보자
      어떻게 하면 좋을까
  17.6 STL과 데이터 구조
      이터레이터
      vector
      list
      set
      map
      포인터를 넣을까 실체를 넣을까
  17.7 어디가 느린가
  17.8 팁: 함수 호출에 걸리는 무게
      클래스 간 처리 분담을 변경한다
      호출 횟수를 줄인다
      인라인화한다
  17.9 팁: 빠른 계산과 느린 계산
      나눗셈
  17.10 정리
 
CHAPTER  18  입체 충돌 처리
  18.1 직육면체 충돌 처리
      응답 문제
      예제 코드
      직육면체로는 할 수 없는 일
  18.2 부동 소수점 수를 사용한 충돌 검출
      어떤 형상이 필요할까
      구와 구 교차 판정
      충돌 응답
      내적과 각도
      충돌 응답으로 돌아가서
      복수 충돌
      지면에 똑바로 서고 싶다
  18.3 삼각형과 선분 교차 판정
      기하학 형상 표현 방법
      연립방정식으로 한 번에 구하는 방법
      두 단계로 판정한다
      외적과 법선
      t를 구한다
      삼각형 안에 있는가
      코드로 만든다
  18.4 실용적인가
      이음새 문제
  18.5 남겨진 문제
      속도 문제
      응답 문제
      계산 정밀도 문제
  18.6 정리
 
CHAPTER  19  로보 파이트 설계
  19.1 시퀀스 전이
  19.2 조작계
      이동
      점프
      선회
      무기 발사
      예제 코드
  19.3 총을 쏘다
      탄환 클래스
      탄환 데이터 구조
      유도탄
      예제 코드
  19.4 하나로 모은다
      추가 요소
      예제 코드
  19.5 프론트엔드
      카메라와 관계없는 그래픽
      예제 코드
  19.6 여전히 부족한 것
  19.7 정리
 
CHAPTER  20  빛이 닿는다는 것
  20.1 물체가 보인다는 것
      레이 트레이스
      무리한 레이 트레이스
      간략화
  20.2 빛이 감소하는 과정
      태양에서 물체까지
      면 각도
      반사하는 비율
      물체에서 카메라까지
  20.3 계산하자
      실제로 계산하는 식을 세운다
      속임수를 쓰다
      색에 대한 이야기
      예제 코드
  20.4 로보 파이트에 넣자
  20.5 팁: 속도 개선 힌트
      로컬 좌표로 계산한다
      법선을 미리 준비한다
      정점에 법선을 연결한다
      예제 코드
  20.6 팁: 조금 더 나은 그림을 만들려면
  20.7 정리
 
CHAPTER  21  캐릭터가 움직이기 시작한다
  21.1 상대 이동
      초보자 애니메이션
      상대 이동 개념
      복수 좌표계
      좌표계 이동
      행렬 합성
      태양계 구현
      하루와 한달
  21.2 계층 모델 클래스
      Node 클래스
  21.3 자동으로 트리 구조 구축
      데이터 파일에 친자 관계를 기술한다
      Tree 클래스
      초기값도 파일에 넣는다
      노드와 트리 리소스화
      노드 정의
  21.4 애니메이션 데이터화
      데이터화 실현
      애니메이션 데이터 세부 사항
      예제 코드
  21.5 보간법
       1차 함수 보간
       2차 함수 보간
      미분
      다시 2차 함수 보간으로
       3차 함수 보간
      기울기를 주고 보간한다
       3차 함수 보간 코드
  21.6 로보 파이트에 넣는다
  21.7 팁: 연립방정식 vs 정해진 기울기
  21.8 팁: 부족한 것
      애니메이션 전환
      정점 블렌딩
      IK
      깨끗한 회전 보간
  21.9 정리
 
Part  III   판매용 제품으로 가는 길
 
  22.1 전체 검사를 하면 속도가 느리다
  22.2 속도를 개선할 때 기본
      두 가지 아이디어
      충돌 검출은 '검색'이다
  22.3 정렬에 바탕을 둔 방법
      아주 단순한 방법
      양 끝을 정렬한다
      만난 사람 리스트
      코드로 만든다
      조금씩 개량
      정렬에 의한 방법을 사용할 때 약점
  22.4 분할에 의한 방법
      균등 분할
      std::list를 사용해서 만든다
      개수를 정해서 배열로 만들자
      균등 공간 분할을 사용할 때 약점
      균등 공간 분할 용도
  22.5 팁: 균등 분할을 추가로 개량
      조금씩 new하면서 용량 제한을 없앤다
      list 자체를 줄인다
      더욱 빠르게 한다
  22.6 팁: 고도의 공간 분할
      k-d tree를 만든다
      예제 코드
      k-d tree 용도
  22.7 정리
 
CHAPTER  23  로딩
  23.1 왜 로딩 시간이 길어지는가
  23.2 파일 로더 클래스
      일단 사용 방식을 정하자
      예제 코드
      우선 한 프레임에 한 파일로 한다
      한 프레임에 정해진 양만 로드한다
  23.3 파일 결합에 의한 속도 개선
      파일 결합 전략
      파일 결합은 언제 해야 하는가
      읽기 프로그램
      파일을 열거한다
      Archiver1 예제를 사용한다
      읽는 쪽
  23.4 압축에 의한 속도 개선
      압축 종류
      연장 압축
      사전 압축
      실제 사용을 고려한다
  23.5 팁: 멀티 스레드에 의한 비동기 처리
      스레드 만들기
      공유 자원 문제
      공유 자원에는 자물쇠를 걸자
      Mutex를 사용한다
      메모리에 정말로 쓰고 있는가
      스레드 세이프
      로더를 멀티 스레드화한다
  23.6 팁: 부호화
      부호화 예
      부호화 사용 방법
  23.7 팁: 내부를 감추기 위한 결합과 압축
  23.8 정리
 
CHAPTER  24  float 사용 방법
  24.1 자릿수에 한계가 있다는 것
  24.2 float 내부
      float 읽는 법
      float 정밀도
  24.3 어중간한 수에 의한 오차
  24.4 어느 정도 오차가 나는가
      덧셈
      뺄셈
      곱셈과 나눗셈
      상대오차는 어느 정도일까
  24.5 오차 길들이기
      계산 순서를 바꿔서 회피한다
      다항식
      계산 횟수를 줄인다
      = =와 ! =를 사용하지 않는다
      큰 값을 넣지 않는다
      뺀 것으로 나눈다
      대소 판정
       10과 1f
  24.6 특별한 수
      제로
      무한대
      비수
      오류를 찾는 방법
      비정규수
  24.7 정리
 
CHAPTER  25  부속 라이브러리 사양
  25.1 라이브러리 클래스
      싱글톤
      실체가 따로 있는 클래스
      보통 클래스
  25.2 시작 환경 설정
      파일을 로드한다
      명령창 문자열
      모니터 갱신 주기를 사용하는 고정 프레임 레이트(수직 동기)
  25.3 Framework 모듈
      DebugScreen 클래스
  25.4 WindowCreator 모듈
  25.5 FileIO 모듈
      아카이브 사용법
  25.6 Base 모듈
  25.7 Math 모듈
      Random 클래스
      각도 단위
  25.8 Threading 모듈
      Thread
      Semaphore
      Mutex
      Event
      getCurrentThreadId()
      스레드 수
  25.9 Input 모듈
  25.10 Sound 모듈
  25.11 PseudoXml 모듈
  25.12 Graphics 모듈
      대략적인 사용 방법
      DrawCube 예제
  25.13 Scene 모듈
      PrimitiveRenderer
      StringRenderer
      Collisonmesh
      CollisonDetctor
  25.14 안티앨리어싱
  25.15 최종 버전 라이브러리에 로보 파이트를 이식한다
  25.16 X 파일
  25.17 정리
 
CHAPTER  26  버그와 친해지는 법
  26.1 불조심과 불끄기
  26.2 버그 종류
      논리 버그
      기술 버그
      처리 지연
      메모리 오버플로우
  26.3 예방 혹은 불조심
      배열 범위 오류
      해제된 포인터에 접근
      초기화되지 않은 포인터 접근
      위험한 함수를 무분별하게 사용
      std::vector를 무분별하게 사용
      메모리 해제 잊음
      포인터를 추방한다
      GameLib의 클래스
      코딩 스타일
  26.4 치료 혹은 소화
      '분할' 응용
      기본은 이진 검색
      뒤로 미루지 않는다
      시제품은 버려라
      메모리 누수 검출
  26.5 로보 파이트 안전 사양
  26.6 팁: 메모리 누수 검출 내부
      new 내부
      delete 내부
      정보를 늘린다
      파일 이름과 줄 번호
  26.7 정리
 
CHAPTER  27  더욱 앞으로
  27.1 무엇을 배우면 좋을까
  27.2 도구
      명령창 도구
      GUI 도구
  27.3 AI
  27.4 네트워크
  27.5 셰이더
  27.6 참고문헌
      수학과 계산기 과학
      프로그래밍
      물리학
      컴퓨터 그래픽
  27.7 이런 책이 있었으면
      게임을 소재로 한 프로그래밍 책
      게임을 소재로 한 물리와 수학책
      누군가 써 주기를

예제가 잘 안되시는 분들은 자신의 버전의 Visual studio 를 이용해서, 제공되는 소스 라이브러리를 다시 빌드해서 사용하시면 됩니다. https://m.blog.naver.com/lunapro/220949568182 여기를 참고해서 라이브러리를 빌드하셔요.

책 내용 자체는 알찹니다.

프로그래밍 책에서는 예제소스를 보고 공부하는것이 제일 중요한데

예제소스에 있는 코멘트는 일어로 되어있는지 전부 깨져서 나오는군요.

예제소스의 코멘트에도 신경을 써서 배포했더라면 더 좋았을 생각이 듭니다.

책 가격도 비싼데 이미 구입했으니 어쩔 수 없지만... 불편하네요.

 

책을 구매할 예정인 분들은 본인이 코멘트 없는 소스코드가 주어져도 차분히 공부할 수 있는 인내심을 가지고 있는지 먼저 확인하시길 바랍니다...

cl.exe로 2장 이후의 예제들 컴파일 하는 방법좀 알려주세요.

리뷰 대부분의 내용이 소스코드에 대한 내용입니다.

책 출시 한달내에 구입했었습니다.

소스코드 정상 작동합니다.

해당 라이브러리 잘 작동합니다.

당시에 코드를 조금 수정해야 작동했는데 지금도 수정안한것 같습니다.(리뷰를 보니 그렇네요)

별로 어려운 문제는 아니었지만, 초보자분들은 작동하지 않는 코드를 다운로드하고 당황하셨을 것 같습니다.

이후 코드를 수정해서 올리지 않는 한빛미디어에 좋은(?)서비스가 감탄스럽습니다.

수정하라고 떠넘기지 말고 수정해서 올리면 될 것을...

코드에 주석 문제는 생각보다 심각합니다.

책을 읽으시면 저자는 독자에게 학습을 위한 내용을 예제로 제공합니다.

오히려 책에서 소개하는 내용보다 좀더 고급스런(?)내용을 예제로 보라면서 간단히 소개만 하고 독자에게 공부하라고 떠 넘깁니다.

이에 소스코드에 주석은 굉장히 중요한데
주석이 일어고, 깨져서 보이는 분들도 많을 겁니다.

그래서 코드는 굉장히 지저분하고,
분석하는데 아무런 도움도 받지 못합니다.(주석)

책 내용은 보기 나름입니다.
한가지 방법을 요구하지 않고 다양하게 생각하고 공부하는 습관을 만들게 하려고 말이 많은 저자에게 친근함도 느끼고,

좀 더 좋은(?) 방법을 제공하고 공부하라고 예제코드로 만들어 주는데 주석 번역이 안된것에서 오는 여러문제점이 한빛에 문제점으로 책이 많이 욕먹게 된 것 같습니다. 한빛의 다른책(일본저자)도 주석 번역 안해줍니다.

근데 웃긴건 해당 책들도 해당 코드를 보고 독자가 직접 분석해야 하는데 주석의 도움이 없습니다.

프로그래머 입장에서 주석없는 코드를 분석하는건 상당히 기분이 드럽습니다. 참고하세요 한빛미디어~

책을 50%밖에 활용하지 못하게 반강제적으로 만드는 행위입니다.

이 문제점은 책을 구입하시려는 분들은 고려하셔야 합니다.

책 내용이 아무리 좋아도 책 활용을 반강제적으로 방해하는 한빛미디어의 서비스에 이 책을 구입하시려는 분들을 만류 하고싶습니다.

이런 서비스 때문에 구입하면 돈이 아깝습니다.

예제코드 분석안하고 책만 보면 별 도움 안됩니다.

게임 제작 초보자면 도움이 될 수 있으나 책을 100%활용하지 못하고 반강제적으로 2~30%의 도움만 받기 때문에 다른책이 더 좋습니다.

아 진짜 비싼돈 주고 구입한 서적입니다..

입문자에게 있어서 책의 내용은 좋으나

문제는 책에서 제공하는 필수로 사용되는 예제용 라이브러리가

일본에서 만든 라이브러리이기에 주석이 전부 깨져서 보이지도 않고

visual studio 는 유니코드로 소스파일을 인코딩도 못하지

일일이 다른 편집기로 소스파일 열어서 유니코드로 인코딩하기도 귀찮고 짜증나고

그런데 솔찍히 예제와 라이브러리가 돌아가기만 해도 뭐라 안 합니다...

예제가 죄다 안 돌아간다는 겁니다.. ㄷㄷ;;

이거 돌아가게 삽질한게 가장 시간 낭비였던거 같습니다.

아 그냥 좀 공부만 집중하고 싶은데

이런거 예제가 안돌아가서 일일이 이런거에 삽질하니까 진짜 후...


책을 보는 내내 내용은 좋으나, 출판전 검수가 부족했다는 느낌이 게속해서 듭니다.

좋은 책을 출판하는것도 중요하지만, 마무리가 아쉽네요

제공되는 예제용 라이브러리가 개판이라 3점 드립니다.

이것만 아니였다면 좋은 서적이 되었을 텐데;.;;

책 내용이나 번역을 까는게 아닙니다

이 책은 제공되는 라이브러리를 사용하며 학습하는건데

제공되는 라이브러리와 예제가 안 돌아가면 정말 뭘 공부하고 뭘 하라는건지

지금 리뷰뎃글에 저와 같은 사람들이 얼마나 많은데

대책없이 아직도 아무 대응을 안하고 있는게 화나나네요 한숨만 나오네요

뭔가 사기당한 느낌? 이였습니다.

컴파일에 필요한 lib, include 경로 설정법을 파워포인트로 제작해 등록했습니다.

예제 소스 이용에 참고하시기 바랍니다.

http://www.hanb.co.kr/exam/1899/VS2010_link_error_howto.pptx

감사합니다.

내용은 좋은데 예제 위주로 돌아가다보니 컴파일이 전혀 안돼서

진행을 못하고있습니다.

2010이 안돼서 2008로 했는데 2장부터 전혀 안됩니다.

수정된 파일(수정.txt)에 내용은 제가 올린 내용과는 상관이 없는 내용 입니다.

수정된 파일은 abs 함수 사용때의 문제를 해결하기 위한거니....

29일 새로 올라온 GameLib2010_hanbit.zip은 다운이 안되네요.

대신에 기존에 있던 GamaLib2010은 원서 소스로 대처된거 같은데..

이건 잘되네요...

한빛소스 다운되면은 잘되는지 확인해봐야겠어요

2005, 2008 버전은 잘 모르겠으나 사람들이 잘 돌아간다네요
그런데 저는 2010을 사용중인데
2010에서는 소스가 안돌아 갑니다...
저는 저의 실수인줄 알고 열심히 삽질 했는데

http://blog.naver.com/kkimmw/70132261225
이곳이나

http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=last_comment&desc=desc&no=1916

이곳의 글을 보면 2010버전이 잘못되었다고 사람들이 많이 적어놓았네요

...별도의 게시판이 없어 여기에 글을 올립니다.
2010 버전 파일 제대로 고쳐서 올려 주세요........

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실