언리얼 게임 엔진 UDK와 스크립트 프로그래밍 세트
- 지은이리차드 무어, 레이첼 코돈
- ISBN : 9788960773912
- 59,000원
- 2013년 01월 28일 펴냄 (절판)
- 페이퍼백 | 828쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
[ 세트 구성: 전2권 ]
1) 『언리얼 게임 엔진 UDK 3: 게임 기획자와 레벨 디자이너를 위한』
2) 『언리얼스크립트 게임 프로그래밍: UDK 개발자를 위한』
『언리얼 게임 엔진 UDK 3』
<언리얼 토너먼트>, <기어즈 오브 워>, <리니지2>의 공통점은? 바로 언리얼 엔진을 사용했다는 것이다. 전 세계 수많은 게임 회사들이 최고 수준의 게임을 만들기 위해서 언리얼 엔진을 선택한다. 언리얼 개발킷은 에픽(Epic) 사에서 만든 막강한 통합형 게임 개발 툴로서 이를 이용해 수많은 게임들이 만들어지고 있다. 하지만 방대한 기능이 들어있는 만큼 처음 개발킷을 접하면 어떤 방식으로 게임을 개발해야 하는지 망설여지게 마련이다. 이 책 『언리얼 게임 엔진 UDK 3』는 방 하나로 시작해서 복도를 만들고 구조물을 배치하며 그림자와 동적인 라이트, 안개, 수면 효과 등 최종적으로 하나의 근사한 게임 레벨을 어떻게 만드는지 배울 수 있다.
이 책에서 다루는 내용
■ UDK 설치와 에디터를 사용하는 방법
■ 새로운 맵을 만드는 방법
■ 안개 효과, 수면 효과 같은 멋진 파티클 이펙트를 만드는 방법
■ 재미있는 물리를 표현하는 방법
■ 실제와 같은 지형을 만드는 방법
■ 키즈멧 사용법과 라이팅
■ 아이템 배치와 AI를 추가하는 방법
『언리얼스크립트 게임 프로그래밍』
이 책은 언리얼스크립트 언어를 이용해서 언리얼 개발 키트(UDK)에 기초한 게임을 프로그래밍하는 방법을 소개한다. UDK는 언리얼 엔진의 무료 버전으로서 그 강력한 기능과 유연한 확장성으로 게임 개발자들에게 널리 알려져 있다. 언리얼스크립트의 기초와 활용법을 체계적으로 설명한 자료가 매우 귀한 현실에서, 이 책은 UDK로 게임을 만들고자 하는 개발자에게 어둠 속의 등불과 같은 지침서가 되어줄 것이다. UDK와 프로그래밍 그 어느 쪽도 접해본 적 없는 독자를 대상으로 쉽고 친절하게 구성되어 있어서, 누구라도 이 책의 안내에 따라 하나의 예제 게임을 완성시켜가다 보면 어느새 UDK를 자유롭게 프로그래밍할 수 있는 실전 능력을 갖추게 될 것이다.
이 책에서 다루는 내용
■ UDK 프로젝트의 개발 환경을 구축하고 코드를 컴파일하고 테스트하는 방법
■ UDK에서 제공하는 코드를 확장하여 새로운 기능 구현
■ 자신만의 새로운 게임 규칙, 카메라 제어방식, HUD 만들기
■ 언리얼스크립트와 키즈멧을 연동하고 새로운 키즈멧 액션과 이벤트 정의하기
■ 온라인에서 실행되는 멀티플레이어 게임 개발과 테스트
■ 오류를 수정하고 코드를 최적화하는 노하우
■ DLLBind를 통해 UDK 외부 코드와 상호작용하기
1) 『언리얼 게임 엔진 UDK 3: 게임 기획자와 레벨 디자이너를 위한』
2) 『언리얼스크립트 게임 프로그래밍: UDK 개발자를 위한』
『언리얼 게임 엔진 UDK 3』
<언리얼 토너먼트>, <기어즈 오브 워>, <리니지2>의 공통점은? 바로 언리얼 엔진을 사용했다는 것이다. 전 세계 수많은 게임 회사들이 최고 수준의 게임을 만들기 위해서 언리얼 엔진을 선택한다. 언리얼 개발킷은 에픽(Epic) 사에서 만든 막강한 통합형 게임 개발 툴로서 이를 이용해 수많은 게임들이 만들어지고 있다. 하지만 방대한 기능이 들어있는 만큼 처음 개발킷을 접하면 어떤 방식으로 게임을 개발해야 하는지 망설여지게 마련이다. 이 책 『언리얼 게임 엔진 UDK 3』는 방 하나로 시작해서 복도를 만들고 구조물을 배치하며 그림자와 동적인 라이트, 안개, 수면 효과 등 최종적으로 하나의 근사한 게임 레벨을 어떻게 만드는지 배울 수 있다.
이 책에서 다루는 내용
■ UDK 설치와 에디터를 사용하는 방법
■ 새로운 맵을 만드는 방법
■ 안개 효과, 수면 효과 같은 멋진 파티클 이펙트를 만드는 방법
■ 재미있는 물리를 표현하는 방법
■ 실제와 같은 지형을 만드는 방법
■ 키즈멧 사용법과 라이팅
■ 아이템 배치와 AI를 추가하는 방법
『언리얼스크립트 게임 프로그래밍』
이 책은 언리얼스크립트 언어를 이용해서 언리얼 개발 키트(UDK)에 기초한 게임을 프로그래밍하는 방법을 소개한다. UDK는 언리얼 엔진의 무료 버전으로서 그 강력한 기능과 유연한 확장성으로 게임 개발자들에게 널리 알려져 있다. 언리얼스크립트의 기초와 활용법을 체계적으로 설명한 자료가 매우 귀한 현실에서, 이 책은 UDK로 게임을 만들고자 하는 개발자에게 어둠 속의 등불과 같은 지침서가 되어줄 것이다. UDK와 프로그래밍 그 어느 쪽도 접해본 적 없는 독자를 대상으로 쉽고 친절하게 구성되어 있어서, 누구라도 이 책의 안내에 따라 하나의 예제 게임을 완성시켜가다 보면 어느새 UDK를 자유롭게 프로그래밍할 수 있는 실전 능력을 갖추게 될 것이다.
이 책에서 다루는 내용
■ UDK 프로젝트의 개발 환경을 구축하고 코드를 컴파일하고 테스트하는 방법
■ UDK에서 제공하는 코드를 확장하여 새로운 기능 구현
■ 자신만의 새로운 게임 규칙, 카메라 제어방식, HUD 만들기
■ 언리얼스크립트와 키즈멧을 연동하고 새로운 키즈멧 액션과 이벤트 정의하기
■ 온라인에서 실행되는 멀티플레이어 게임 개발과 테스트
■ 오류를 수정하고 코드를 최적화하는 노하우
■ DLLBind를 통해 UDK 외부 코드와 상호작용하기
목차
목차
- 『언리얼 게임 엔진 UDK 3』
- 1 레벨 디자인 사령부
- 실습 예제 | UDK 다운로드하기, 설치 과정
- UDK 폴더 구조
- 실습 예제 | 에디터 실행
- 자동 저장
- 컨텐트 브라우저
- 실습 예제 | 이동, 회전
- 조작법
- UDK
- WASD 키 조작법
- 마야 사용자
- BSP
- 왜 BSP인가?
- BSP를 사용하지 않고 스태틱 메시만 이용해서 맵을 만들 수 있는가?
- 스태틱 메시의 우월함
- 스태틱 메시가 없이 브러시만 사용한 예
- 브러시와 스태틱 메시를 동시에 사용한 예
- 실습 예제 | BSP 브러시와 스태틱 메시 사용
- 가산, 감산 모드
- 가산 모드
- 감산 모드
- 언리얼 크기, 비율
- 그리드 스냅핑
- 뷰포트 옵션
- 정리
- 첫 번째 맵
- 실습 예제 | 파일 저장과 이름 지정
- 왜 CSG인가?
- 실습 예제 | 빌더 브러시와 첫 번째 큐브
- 감산 모드
- 브러시 순서
- 실습 예제 | 지오메트리 에디팅 툴
- 실습 예제 | 본격적인 방 만들기
- 실습 예제 | 라이트 설치, 플레이어 시작점
- 실습 예제 | 복도와 두 번째 방
- 실습 예제 | CSG 표면에 재질 적용
- 표면 속성
- 실습 예제 | 맵 테스트, 봇 추가
- 정리
- 방향성 라이트(Directional light)
- 포인트 라이트(Point lights)
- 스포트라이트(Spot lights)
- 스카이라이트
- 실습 예제 | 다양한 종류의 라이트
- 포인트 라이트
- 스포트라이트
- 방향성 라이트
- 스카이라이트
- 실습 예제 | 라이트 맵
- 실습 예제 | CSG 표면의 라이트 맵 조절
- 실습 예제 | 표면의 라이트 맵 해상도 줄이기
- 실습 예제 | 스태틱 메시의 라이트 맵
- 정리
- 재질이란?
- 실습 예제 | 새로운 재질 생성
- 실습 예제 | 재질에 텍스처 추가
- 실습 예제 | 반짝거리는 금속 재질 제작
- 실습 예제 | 노멀 맵 추가
- 실습 예제 | 게임 월드에 재질 적용
- 실습 예제 | 재질에 맞는 텍스처 적용
- 실습 예제 | 컬러 스펙큘러 하이라이트
- 실습 예제 | 디퓨즈에 색상 추가
- 실습 예제 | 읽기 쉽게 재질 만들기
- 정리
- 실습 예제 | 파티클의 기본
- 실습 예제 | 새로운 파티클 이미터 추가
- 실습 예제 | 연기 효과
- 실습 예제 | 하이트 포그 추가
- 파라미터 설정
- 사용 예
- 대기의 실안개
- 바닥 안개
- 짙은 안개
- 실습 예제 | 수면 생성
- 실습 예제 | 워터 볼륨
- 실습 예제 | 수중 표현
- 실습 예제 | 기본 문, 엘리베이터
- 실습 예제 | UT 스타일의 엘리베이터
- 실습 예제 | 애니메이션 반복
- 실습 예제 | 물체 회전
- 실습 예제 | 특정 오브젝트를 붙이기
- 실습 예제 | 첫 번째 지형 제작
- 실습 예제 | 재질 적용
- 실습 예제 | 데코 레이어스
- 실습 예제 | 라이트 매핑
- 게임 플레이 요소 추가
- 실습 예제 | 이름 규칙
- 실습 예제 | 플레이어 시작점 추가
- 실습 예제 | 에디터에서 게임 실행
- 실습 예제 | 픽업 아이템 배치
- 실습 예제 | 무기 배치
- 실습 예제 | 점프 패드 배치
- 실습 예제 | 다양한 게임 오브젝트 추가
- 봇 경로
- 실습 예제 | 경로 노드 추가
- 정리
- 실습 예제 | 간단한 시퀀스
- 실습 예제 | 간단한 UIScene
- 실습 예제 | 기본적인 컷 씬
- 시스템 요구사양
- 최소 요구사양
- 실습 예제 | UDK 설치하기
- 폴더 구조의 개요
- Binaries
- Development
- Engine
- UDKGame
- 코딩을 위한 외부 프로그램의 사용
- 콘텍스트
- 실습 예제 | 콘텍스트 설치하기
- 실습 예제 | 콘텍스트 환경설정
- 언코드엑스
- 실습 예제 | 언코드엑스 설치하기
- 실습 예제 | 언코드엑스 환경설정
- nFringe
- WOTgreal
- 프로젝트 셋업
- 실습 예제 | AwesomeGame 프로젝트의 생성
- 컴파일과 테스트
- 실습 예제 | AwesomeActor를 컴파일하고 테스트하기
- 주석에 관한 짧은 조언
- 요약
- 변수와 배열
- 불리언 변수
- 실습 예제 | 불리언 변수의 사용
- 정수와 실수
- 실습 예제 | 정수의 사용
- 실습 예제 | 실수의 사용
- 문자열
- 실습 예제 | 문자열의 사용
- 열거형
- 실습 예제 | 열거형의 사용
- 배열
- 실습 예제 | 배열의 사용
- 동적 배열
- 실습 예제 | 동적 배열의 사용
- 구조체
- 실습 예제 | 구조체의 사용
- 벡터
- 실습 예제 | 벡터의 사용
- 회전자
- 실습 예제 | 회전자의 사용
- 변수의 속성
- 기본속성 영역
- 실습 예제 | 기본속성 영역의 사용
- 편집 가능한 변수
- 실습 예제 | 편집 가능한 변수의 사용
- 설정 변수
- 실습 예제 | 설정 변수 만들기
- 일반 연산자
- 표준 산술연산
- 실습 예제 | 수학!
- 나머지 연산자
- 실습 예제 | 나머지 연산자의 사용
- 비교 연산자
- 실습 예제 | 비교
- 논리 연산자
- 실습 예제 | 논리 연산자의 사용
- 결합
- 실습 예제 | 결합 연산자의 사용
- 변수와 관련된 함수들
- 정수 관련 함수
- 실수 관련 함수
- 문자열 관련 함수
- 벡터 관련 함수
- 회전자 관련 함수
- 변수와 관련된 함수들
- 흐름 제어
- If else
- 실습 예제 | if/else의 사용
- For
- 실습 예제 | for의 사용
- While
- 실습 예제 | 무한 반복
- Do until
- Switch
- 실습 예제 | switch의 사용
- Return
- Goto
- 요약
- 클래스란 무엇인가?
- 실습 예제 | 모든 객체는 동일하게 탄생한다
- 상속
- 실습 예제 | 클래스 트리에서 상속 확인하기
- 실습 예제 | 자체 무기의 제작
- 실습 예제 | 상속을 이용한 실험
- 함수 재정의
- 실습 예제 | 고유한 GameInfo와 PlayerController 만들기
- 실습 예제 | 함수 재정의 실험
- 변수로서의 액터
- 실습 예제 | Actor 변수를 이용한 실험
- 캐스팅
- 실습 예제 | 액터 변수의 캐스팅
- 실습 예제 | 캐스팅 적용의 실제적인 사례
- 요약
- 클래스 만들기
- Awesome Game의 급조된 기획 문서
- 클래스 구성하기
- 무기
- 실습 예제 | 무기 클래스의 제작과 상속
- 클래스 변경자
- Placeable
- Notplaceable
- Abstract
- 실습 예제 | abstract 변경자의 사용
- Native
- Config
- Hidecategories
- 실습 예제 | hidecategories 변경자의 사용
- Hidedropdown
- Object 클래스와 Actor 클래스
- 주요 언리얼스크립트 클래스들
- GameInfo 클래스
- 실습 예제 | AwesomeGame의 확장
- 실습 예제 | 무기 발사!
- 실습 예제 | Pawn 클래스 다듬기
- Controller 클래스
- 실습 예제 | Controller 클래스의 확장
- 실습 예제 | 아니, 내 왼쪽이라고!
- Pawn 클래스
- 실습 예제 | 충돌해서 피해 입히기
- 실습 예제 | 이동하는 적 만들기
- HUD 클래스
- 실습 예제 | HUD의 사용
- 요약
- 함수란 무엇인가?
- 함수의 정의와 호출
- 실습 예제 | 함수 작성하기
- 실습 예제 | 직접 만든 함수 호출하기
- 실습 예제 | 오작동 해결하기
- 지역 변수와 객체 변수
- 지역 변수
- 실습 예제 | 지역 변수 사용하기
- 액터를 지역 변수로 참조하기
- 실습 예제 | 지역 변수로 액터 사용하기
- 실습 예제 | 탄도 정보 수정하기
- 함수 매개변수와 변경자
- 함수 매개변수
- 실습 예제 | 함수 매개변수의 사용
- 실습 예제 | out 매개변수
- 값 반환
- 실습 예제 | 이걸 좀 반환하고 싶은데요.
- 함수 변경자
- Native
- Event
- Singular
- Exec
- 함수 변경자
- 실습 예제 | 치팅(cheating) 지원하기
- Static
- 실습 예제 | 정적 함수의 사용
- Super
- 타이머의 사용
- 실습 예제 | 엄마, 5분만 더요.
- 모두 다 합쳐보기
- 실습 예제 | Awesome Game의 확장
- 요약
- 스테이트는 마음의 상태
- 스테이트 만들기
- 실습 예제 | 스테이트 코드 작성
- 스테이트 간의 전환
- 실습 예제 | 스테이트 전환하기
- 스테이트 내부에서 함수 재정의하기
- 지금 어떤 스테이트에 있나요?
- 실습 예제 | 다중 인격
- 스테이트에 속하지 않은 함수
- 실습 예제 | 스테이트에 속하지 않은 함수 호출하기
- 실습 예제 | 스테이트 안에서 밖에 있는 함수 호출하기
- 스테이트 전환 감지하기
- BeginState
- 실습 예제 | BeginState의 활용
- EndState
- 실습 예제 | EndState의 활용
- 스테이트 감지
- 실습 예제 | 스테이트 감지 함수의 활용
- 스테이트 상속하기
- 실습 예제 | Seeking 스테이트의 상속
- 키워드, 라벨, 잠재 함수
- 키워드
- 실습 예제 | ignores의 활용
- 라벨과 잠재 함수
- 실습 예제 | 라벨과 잠재 함수 활용하기
- 보스의 등장
- 코드 정돈하기
- 실습 예제 | 코드 원상복귀
- 쉘렌버그의 공격
- 실습 예제 | 추상 부모 클래스의 생성
- 실습 예제 | 보스의 제작과 생성
- 실습 예제 | 네가 좋아, 그래서 마지막으로 죽일 거야
- 실습 예제 | 분노 모드 활성화
- 요약
- 키즈멧 개요
- 간단한 소개
- 실습 예제 | 키즈멧 사용하기
- 복잡도 쌓기
- 실습 예제 | 한층 복잡한 키즈멧 시퀀스
- 실습 예제 | 디버깅 시간!
- 키즈멧 액션
- 키즈멧 액션의 생성
- 실습 예제 | 키즈멧 액션 만들기
- 키즈멧 액션에서 변수 사용하기
- 실습 예제 | 키즈멧에서 변수 사용하기
- 키즈멧 핸들러 함수
- 실습 예제 | 핸들러 함수의 사용
- 실습 예제 | 키즈멧 입력 구분하기
- 키즈멧 컨디션
- 실습 예제 | 키즈멧 컨디션 만들기
- 키즈멧 이벤트
- 실습 예제 | 청소 시간
- 키즈멧 이벤트의 생성과 구동
- 실습 예제 | 첫 번째 키즈멧 이벤트의 구현
- 의미 있는 이벤트 만들기
- 실습 예제 | 키즈멧에서 보스 등장시키기
- 키즈멧 확장하기
- 실습 예제 | 분대 규모 설정하기
- 액터 고유 이벤트
- 실습 예제 | SupportedEvents 사용하기
- 실습 예제 | 액터 고유 이벤트 만들기
- 지연된 액션
- 실습 예제 | 지연된 액션 만들기
- 요약
- 클라이언트와 서버의 관계
- 우리 모두를 묶어주는 단 하나의 상태
- 네트워크 코드의 테스트
- 서버 설정하기
- 실습 예제 | 서버 배치 파일
- 클라이언트 설정하기
- 실습 예제 | 클라이언트 배치 파일
- 멀티플레이어 환경에서 동작하도록 고치기
- 실습 예제 | 플레이어 복원하기
- 실습 예제 | 게임 복원하기
- GameReplicationInfo 클래스
- 실습 예제 | GameReplicationInfo 만들기
- 적이 달아나도록 수정하기
- 실습 예제 | 도망쳐!
- 실습 예제 | 보스 원상회복
- 함수 호출 복제하기
- 복제 함수 변경자
- Reliable과 Unreliable 함수
- Client 함수
- 복제 함수 변경자
- 실습 예제 | Client 함수 설정하기
- 실습 예제 | Client 함수 사용하기
- Server 함수
- 실습 예제 | Server 함수 사용하기
- Simulated 함수
- 실습 예제 | 맵 설정하기
- 실습 예제 | Simulated 함수 사용하기
- 실습 예제 | 콤보 브레이커!
- 액터의 역할과 권한
- Role과 RemoteRole
- 실습 예제 | Role과 RemoteRole 확인하기
- 실습 예제 | 내 권한을 존중해줘!
- NetMode
- 실습 예제 | NetMode 검사하기
- 변수 복제하기
- 복제 영역
- 실습 예제 | 변수 복제하기
- 복제와 관련된 변수들
- ReplicatedEvent
- 실습 예제 | ReplicatedEvent 사용하기
- 요약
- 컴파일러 오류
- 실습 예제 | 망가뜨릴 준비
- 실습 예제 | 새로운 스크립트 패키지
- 실습 예제 | 클래스 자체를 망가뜨리기
- 실습 예제 | 코드 망가뜨리기
- 실습 예제 | 오해하기 쉬운 오류 메시지
- 실습 예제 | 의미가 명백한 오류 해결하기
- 실습 예제 | 한 번에 오류 두 개
- 실습 예제 | 함수 오작동
- 실습 예제 | 그 밖에 주의해야 할 함수 관련 오류
- 실습 예제 | 액터 변수와 관련된 오류
- 실습 예제 | 그 밖의 변수 관련 오류들
- 디버깅
- Accessed None
- 실습 예제 | Accessed None 문제 확인하기
- 실습 예제 | Accessed None 문제 해결하기
- 실습 예제 | 함수 매개변수의 Accessed None
- 로그 사용하기
- 실습 예제 | 시나리오 구성
- 실습 예제 | 로그를 이용한 디버깅
- 최적화
- 프로파일러
- 실습 예제 | 프로파일러 사용하기
- Clock과 UnClock 함수
- 실습 예제 | Clock과 UnClock 함수 사용하기
- 효율성 있는 코드를 만드는 여섯 가지 습관
- 요약
- 컴포넌트 사용하기
- 컴포넌트 만들기
- 실습 예제 | 액터에 하나의 컴포넌트 추가하기
- 실습 예제 | 컴포넌트와 관련된 컴파일러 오류
- 컴포넌트와 상호작용하기
- 실습 예제 | 컴포넌트 변수 사용하기
- 실용적인 예제
- 실습 예제 | 켜고 끌 수 있는 손전등 만들기
- DLLBind
- 실습 예제 | DLLBind 사용하기
- 마지막 조언
- 기타 관련자료
- 요약