간편결제, 신용카드 청구할인
삼성카드 6% (33,840원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (34,200원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (25,200원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (28,800원)
(최대할인 4만원 / 2만원 이상 결제)
Close

언리얼스크립트 게임 프로그래밍 : UDK 개발자를 위한

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 27
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

40,000원

  • 36,000 (10%할인)

    2,000P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(299)

    • 사은품(6)

    출판사 서평

    [ 요약 ]

    이 책은 언리얼스크립트 언어를 이용해서 언리얼 개발 키트(UDK)에 기초한 게임을 프로그래밍하는 방법을 소개한다. UDK는 언리얼 엔진의 무료 버전으로서 그 강력한 기능과 유연한 확장성으로 게임 개발자들에게 널리 알려져 있다. 언리얼스크립트의 기초와 활용법을 체계적으로 설명한 자료가 매우 귀한 현실에서, 이 책은 UDK로 게임을 만들고자 하는 개발자에게 어둠 속의 등불과 같은 지침서가 되어줄 것이다. UDK와 프로그래밍 그 어느 쪽도 접해본 적 없는 독자를 대상으로 쉽고 친절하게 구성되어 있어서, 누구라도 이 책의 안내에 따라 하나의 예제 게임을 완성시켜가다 보면 어느새 UDK를 자유롭게 프로그래밍할 수 있는 실전 능력을 갖추게 될 것이다.

    [ 소개 ]

    언리얼스크립트 게임 프로그래밍에 흠뻑 빠져서 배우게 만드는 초보자를 위한 실전 가이드

    UDK는 수백여 개의 상업용 게임에 사용된 언리얼 엔진의 무료 버전이다. 언리얼 엔진은 게임 개발을 위한 매우 강력한 툴임에는 틀림없지만 엄청난 복잡성 때문에 어디에서부터 배워야 할지 감을 잡기 어렵다.

    이 책은 UDK의 핵심 요소인 언리얼스크립트를 사용해서 어떻게 게임을 만드는지 알기 쉽게 설명한다. 하나의 예제 게임을 직접 만들어나가는 과정을 통해 어느새 자기만의 게임을 만들 수 있는 능력을 갖게 될 것이다.

    이 책에서 다루는 내용

    - UDK 프로젝트의 개발 환경을 구축하고 코드를 컴파일하고 테스트하는 방법
    - UDK에서 제공하는 코드를 확장하여 새로운 기능 구현
    - 자신만의 새로운 게임 규칙, 카메라 제어방식, HUD 만들기
    - 언리얼스크립트와 키즈멧을 연동하고 새로운 키즈멧 액션과 이벤트 정의하기
    - 온라인에서 실행되는 멀티플레이어 게임 개발과 테스트
    - 오류를 수정하고 코드를 최적화하는 노하우
    - DLLBind를 통해 UDK 외부 코드와 상호작용하기

    이 책의 대상 독자
    이 책은 UDK를 처음 접하지만 언리얼스크립트를 이용해서 자신만의 게임 프로젝트를 만들고자 하는 사람들을 위한 것이다. 이 책에서 제공하는 정보들은 다른 프로그래밍 언어에는 익숙하지만 언리얼스크립트를 배워서 그 지식을 더욱 확장하고자 하는 이들에게도 유용할 것이다.

    이 책의 구성

    1장 '프로젝트 셋업과 테스트 환경 구축'에서는 UDK뿐 아니라 이 책에서 코드를 작성하며 사용하게 될 콘텍스트(ConTEXT)와 언코드엑스(UnCodeX)라는 두 가지 프로그램을 설치하고 설정하는 과정을 안내한다. 또한 UDK의 폴더 구조를 확인하고 설정 파일들을 살펴본다.

    2장 '데이터의 저장과 조작'에서는 UDK에서 사용할 수 있는 여러 종류의 변수들을 알아보고, 게임 속에서 지속적으로 변하는 환경에 대응하기 위한 흐름제어 문법을 배운다.

    3장 '클래스 트리의 이해'에서는 게임 세계에 존재하는 객체들 간의 관계를 파악할 수 있는 클래스 트리를 다룬다. 클래스의 상속과 함수 재정의를 통해 객체의 행동양식을 제어하는 방법을 배울 것이다.

    4장 '사용자 고유 클래스의 제작'에서는 직접 자신만의 클래스를 만드는 과정에 초점을 맞춘다. 어느 UDK 프로젝트에서나 사용되는 핵심 클래스들에 대해 논의하고, 우리만의 게임을 만들기 위해 이들 클래스를 변용하는 방법을 설명한다. 그 과정에서 카메라의 작동방식, 게임의 규칙, 그리고 플레이어의 제어방식을 직접 변경해본다.

    5장 '함수의 활용'에서는 함수를 사용해 게임을 확장하는 방법을 배운다. 하나의 객체로부터 다른 객체로 정보를 전달하는 방식, 데이터를 조작하고 그것을 원래 객체에 되돌려주는 방식 등이 여기에 포함된다. 자체적으로 새로운 함수를 만들면 기존 UDK 클래스에는 존재하지 않는 새로운 기능을 객체에 부여할 수 있다.

    6장 '스테이트를 이용한 행동 제어'에서는 스테이트가 무엇인지 설명하고 이를 활용하여 게임에 등장하는 적들의 복잡한 행동을 구성하고 제어한다. 스테이트를 만들고, 변경하고, 그 내부 함수를 정의하는 방법 등을 논의한다.

    7장 '키즈멧의 활용'에서는 UDK 게임에서 키즈멧을 어떻게 활용할 수 있는지 살펴보고, 새로운 액션과 이벤트를 만드는 방법을 배운다. 이들 액션과 이벤트를 이용하여 레벨에 따라 특징적인 게임 플레이를 구성하는 과정을 보인다.

    8장 '멀티플레이어 게임 개발'에서는 테스트 목적으로 클라이언트와 서버를 한 대의 컴퓨터에서 실행시키는 과정을 설명한다. 또한 네트워크 코드를 작성하는 기본 방식 및 멀티플레이어 게임을 염두에 두고 게임을 디자인하는 방법을 다룬다.

    9장 '디버깅과 최적화'에서는 언리얼스크립트 코드를 컴파일하고 실행할 때 흔히 마주치게 되는 오류와 이들 문제를 해결하는 방법을 소개한다. 또한 코드를 최적화하여 게임의 수행 속도를 빠르게 하는 여러 가지 방식에 대해서 논의한다.

    10장 '그 밖의 주제'에서는 컴포넌트를 이용하여 게임에 등장하는 객체의 겉모습을 제어하는 방법과, DLLBind를 이용하여 UDK 외부의 프로그램에 접근하는 방법을 설명한다.

    목차

    1장 프로젝트 셋업과 테스트 환경 구축
    ___시스템 요구사양
    ______최소 요구사양
    ___실습 예제 | UDK 설치하기
    ___폴더 구조의 개요
    ______Binaries
    ______Development
    ______Engine
    ______UDKGame
    ___코딩을 위한 외부 프로그램의 사용
    ______콘텍스트
    ___실습 예제 | 콘텍스트 설치하기
    ___실습 예제 | 콘텍스트 환경설정
    ______언코드엑스
    ___실습 예제 | 언코드엑스 설치하기
    ___실습 예제 | 언코드엑스 환경설정
    ______nFringe
    ______WOTgreal
    ___프로젝트 셋업
    ___실습 예제 | AwesomeGame 프로젝트의 생성
    ___컴파일과 테스트
    ___실습 예제 | AwesomeActor를 컴파일하고 테스트하기
    ______주석에 관한 짧은 조언
    ___요약

    2장 데이터의 저장과 조작
    ___변수와 배열
    ______불리언 변수
    ___실습 예제 | 불리언 변수의 사용
    ______정수와 실수
    ___실습 예제 | 정수의 사용
    ___실습 예제 | 실수의 사용
    ______문자열
    ___실습 예제 | 문자열의 사용
    ______열거형
    ___실습 예제 | 열거형의 사용
    ______배열
    ___실습 예제 | 배열의 사용
    ______동적 배열
    ___실습 예제 | 동적 배열의 사용
    ______구조체
    ___실습 예제 | 구조체의 사용
    ______벡터
    ___실습 예제 | 벡터의 사용
    ______회전자
    ___실습 예제 | 회전자의 사용
    ___변수의 속성
    ______기본속성 영역
    ___실습 예제 | 기본속성 영역의 사용
    ______편집 가능한 변수
    ___실습 예제 | 편집 가능한 변수의 사용
    ______설정 변수
    ___실습 예제 | 설정 변수 만들기
    ___일반 연산자
    ______표준 산술연산
    ___실습 예제 | 수학!
    ______나머지 연산자
    ___실습 예제 | 나머지 연산자의 사용
    ______비교 연산자
    ___실습 예제 | 비교
    ______논리 연산자
    ___실습 예제 | 논리 연산자의 사용
    ______결합
    ___실습 예제 | 결합 연산자의 사용
    ______변수와 관련된 함수들
    _________정수 관련 함수
    _________실수 관련 함수
    _________문자열 관련 함수
    _________벡터 관련 함수
    _________회전자 관련 함수
    ___흐름 제어
    ______If else
    ___실습 예제 | if/else의 사용
    ______For
    ___실습 예제 | for의 사용
    ______While
    ___실습 예제 | 무한 반복
    ______Do until
    ______Switch
    ___실습 예제 | switch의 사용
    ______Return
    ______Goto
    ___요약

    3장 클래스 트리의 이해
    ___클래스란 무엇인가?
    ___실습 예제 | 모든 객체는 동일하게 탄생한다
    ___상속
    ___실습 예제 | 클래스 트리에서 상속 확인하기
    ___실습 예제 | 자체 무기의 제작
    ___실습 예제 | 상속을 이용한 실험
    ___함수 재정의
    ___실습 예제 | 고유한 GameInfo와 PlayerController 만들기
    ___실습 예제 | 함수 재정의 실험
    ___변수로서의 액터
    ___실습 예제 | Actor 변수를 이용한 실험
    ___캐스팅
    ___실습 예제 | 액터 변수의 캐스팅
    ___실습 예제 | 캐스팅 적용의 실제적인 사례
    ___요약

    4장 사용자 고유 클래스의 제작
    ___클래스 만들기
    ______Awesome Game의 급조된 기획 문서
    ______클래스 구성하기
    _________무기
    ___실습 예제 | 무기 클래스의 제작과 상속
    ___클래스 변경자
    ______Placeable
    ______Notplaceable
    ______Abstract
    ___실습 예제 | abstract 변경자의 사용
    ______Native
    ______Config
    ______Hidecategories
    ___실습 예제 | hidecategories 변경자의 사용
    ______Hidedropdown
    ___Object 클래스와 Actor 클래스
    ___주요 언리얼스크립트 클래스들
    ______GameInfo 클래스
    ___실습 예제 | AwesomeGame의 확장
    ___실습 예제 | 무기 발사!
    ___실습 예제 | Pawn 클래스 다듬기
    ______Controller 클래스
    ___실습 예제 | Controller 클래스의 확장
    ___실습 예제 | 아니, 내 왼쪽이라고!
    ______Pawn 클래스
    ___실습 예제 | 충돌해서 피해 입히기
    ___실습 예제 | 이동하는 적 만들기
    ______HUD 클래스
    ___실습 예제 | HUD의 사용
    ___요약

    5장 함수의 활용
    ___함수란 무엇인가?
    ___함수의 정의와 호출
    ___실습 예제 | 함수 작성하기
    ___실습 예제 | 직접 만든 함수 호출하기
    ___실습 예제 | 오작동 해결하기
    ___지역 변수와 객체 변수
    ______지역 변수
    ___실습 예제 | 지역 변수 사용하기
    ______액터를 지역 변수로 참조하기
    ___실습 예제 | 지역 변수로 액터 사용하기
    ___실습 예제 | 탄도 정보 수정하기
    ___함수 매개변수와 변경자
    ______함수 매개변수
    ___실습 예제 | 함수 매개변수의 사용
    ___실습 예제 | out 매개변수
    ______값 반환
    ___실습 예제 | 이걸 좀 반환하고 싶은데요.
    ______함수 변경자
    _________Native
    _________Event
    _________Singular
    _________Exec
    ___실습 예제 | 치팅(cheating) 지원하기
    _________Static
    ___실습 예제 | 정적 함수의 사용
    ___Super
    ___타이머의 사용
    ___실습 예제 | 엄마, 5분만 더요.
    ___모두 다 합쳐보기
    ___실습 예제 | Awesome Game의 확장
    ___요약

    6장 스테이트를 이용한 행동 제어
    ___스테이트는 마음의 상태
    ______스테이트 만들기
    ___실습 예제 | 스테이트 코드 작성
    ______스테이트 간의 전환
    ___실습 예제 | 스테이트 전환하기
    ___스테이트 내부에서 함수 재정의하기
    ______지금 어떤 스테이트에 있나요?
    ___실습 예제 | 다중 인격
    ______스테이트에 속하지 않은 함수
    ___실습 예제 | 스테이트에 속하지 않은 함수 호출하기
    ___실습 예제 | 스테이트 안에서 밖에 있는 함수 호출하기
    ___스테이트 전환 감지하기
    ______BeginState
    ___실습 예제 | BeginState의 활용
    ______EndState
    ___실습 예제 | EndState의 활용
    ______스테이트 감지
    ___실습 예제 | 스테이트 감지 함수의 활용
    ___스테이트 상속하기
    ___실습 예제 | Seeking 스테이트의 상속
    ___키워드, 라벨, 잠재 함수
    ______키워드
    ___실습 예제 | ignores의 활용
    ______라벨과 잠재 함수
    ___실습 예제 | 라벨과 잠재 함수 활용하기
    ___보스의 등장
    ______코드 정돈하기
    ___실습 예제 | 코드 원상복귀
    ______쉘렌버그의 공격
    ___실습 예제 | 추상 부모 클래스의 생성
    ___실습 예제 | 보스의 제작과 생성
    ___실습 예제 | 네가 좋아, 그래서 마지막으로 죽일 거야
    ___실습 예제 | 분노 모드 활성화
    ___요약

    7장 키즈멧의 활용
    ___키즈멧 개요
    ______간단한 소개
    ___실습 예제 | 키즈멧 사용하기
    ______복잡도 쌓기
    ___실습 예제 | 한층 복잡한 키즈멧 시퀀스
    ___실습 예제 | 디버깅 시간!
    ___키즈멧 액션
    ______키즈멧 액션의 생성
    ___실습 예제 | 키즈멧 액션 만들기
    ______키즈멧 액션에서 변수 사용하기
    ___실습 예제 | 키즈멧에서 변수 사용하기
    ___키즈멧 핸들러 함수
    ___실습 예제 | 핸들러 함수의 사용
    ___실습 예제 | 키즈멧 입력 구분하기
    ___키즈멧 컨디션
    ___실습 예제 | 키즈멧 컨디션 만들기
    ______키즈멧 이벤트
    ___실습 예제 | 청소 시간
    ______키즈멧 이벤트의 생성과 구동
    ___실습 예제 | 첫 번째 키즈멧 이벤트의 구현
    ______의미 있는 이벤트 만들기
    ___실습 예제 | 키즈멧에서 보스 등장시키기
    ______키즈멧 확장하기
    ___실습 예제 | 분대 규모 설정하기
    ______액터 고유 이벤트
    ___실습 예제 | SupportedEvents 사용하기
    ___실습 예제 | 액터 고유 이벤트 만들기
    ___지연된 액션
    ___실습 예제 | 지연된 액션 만들기
    ___요약

    8장 멀티플레이어 게임 개발
    ___클라이언트와 서버의 관계
    ______우리 모두를 묶어주는 단 하나의 상태
    ______네트워크 코드의 테스트
    ______서버 설정하기
    ___실습 예제 | 서버 배치 파일
    ______클라이언트 설정하기
    ___실습 예제 | 클라이언트 배치 파일
    ______멀티플레이어 환경에서 동작하도록 고치기
    ___실습 예제 | 플레이어 복원하기
    ___실습 예제 | 게임 복원하기
    ______GameReplicationInfo 클래스
    ___실습 예제 | GameReplicationInfo 만들기
    ___적이 달아나도록 수정하기
    ___실습 예제 | 도망쳐!
    ___실습 예제 | 보스 원상회복
    ___함수 호출 복제하기
    ______복제 함수 변경자
    _________Reliable과 Unreliable 함수
    _________Client 함수
    ___실습 예제 | Client 함수 설정하기
    ___실습 예제 | Client 함수 사용하기
    _________Server 함수
    ___실습 예제 | Server 함수 사용하기
    _________Simulated 함수
    ___실습 예제 | 맵 설정하기
    ___실습 예제 | Simulated 함수 사용하기
    ___실습 예제 | 콤보 브레이커!
    ___액터의 역할과 권한
    ______Role과 RemoteRole
    ___실습 예제 | Role과 RemoteRole 확인하기
    ___실습 예제 | 내 권한을 존중해줘!
    ______NetMode
    ___실습 예제 | NetMode 검사하기
    ___변수 복제하기
    ______복제 영역
    ___실습 예제 | 변수 복제하기
    ______복제와 관련된 변수들
    ______ReplicatedEvent
    ___실습 예제 | ReplicatedEvent 사용하기
    ___요약

    9장 디버깅과 최적화
    ___컴파일러 오류
    ___실습 예제 | 망가뜨릴 준비
    ___실습 예제 | 새로운 스크립트 패키지
    ___실습 예제 | 클래스 자체를 망가뜨리기
    ___실습 예제 | 코드 망가뜨리기
    ___실습 예제 | 오해하기 쉬운 오류 메시지
    ___실습 예제 | 의미가 명백한 오류 해결하기
    ___실습 예제 | 한 번에 오류 두 개
    ___실습 예제 | 함수 오작동
    ___실습 예제 | 그 밖에 주의해야 할 함수 관련 오류
    ___실습 예제 | 액터 변수와 관련된 오류
    ___실습 예제 | 그 밖의 변수 관련 오류들
    ___디버깅
    ______Accessed None
    ___실습 예제 | Accessed None 문제 확인하기
    ___실습 예제 | Accessed None 문제 해결하기
    ___실습 예제 | 함수 매개변수의 Accessed None
    ______로그 사용하기
    ___실습 예제 | 시나리오 구성
    ___실습 예제 | 로그를 이용한 디버깅
    ___최적화
    ______프로파일러
    ___실습 예제 | 프로파일러 사용하기
    ______Clock과 UnClock 함수
    ___실습 예제 | Clock과 UnClock 함수 사용하기
    ______효율성 있는 코드를 만드는 여섯 가지 습관
    ___요약

    10장 그 밖의 주제
    ___컴포넌트 사용하기
    ______컴포넌트 만들기
    ___실습 예제 | 액터에 하나의 컴포넌트 추가하기
    ___실습 예제 | 컴포넌트와 관련된 컴파일러 오류
    ______컴포넌트와 상호작용하기
    ___실습 예제 | 컴포넌트 변수 사용하기
    ______실용적인 예제
    ___실습 예제 | 켜고 끌 수 있는 손전등 만들기
    ___DLLBind
    ___실습 예제 | DLLBind 사용하기
    ___마지막 조언
    ______기타 관련자료
    ___요약

    부록 깜짝 퀴즈 정답

    본문중에서

    독자 여러분을 환영한다! 이 책은 독자 스스로 UDK를 이용한 게임 프로젝트를 진행할 수 있도록 언리얼스크립트 언어로 프로그래밍하는 방법을 알려준다. 딱딱한 가공의 코드를 보여주는 대신, 각 장에서 배우는 주제에 따라 실제로 작동되는 게임을 조금씩 쌓아 올릴 것이다. 이 책이 끝날 때쯤이면 자신만의 프로젝트를 시작할 수 있을 정도로 언리얼스크립트에 익숙해져 있을 것이다.
    (/ 저자서문 중에서)

    언리얼 엔진은 비교적 오랜 역사와 강력한 기능 덕분에 게임 개발자라면 누구나 한 번쯤 들어봤을 법한 유명한 게임 엔진이다. 원래는 언리얼(Unreal)이라는 제목의 1인칭 슈팅 게임을 제작하기 위한 목적으로 만들어졌지만, 이후 독자적인 발전을 거듭하면서 다양한 장르의 게임에서 성공적으로 활용되고 있다. 언리얼 엔진의 유연한 모듈 기반 아키텍처와 스크립팅 기능은 아마추어 개발자들도 쉽게 기존 게임을 변형하고 확장하여 자신만의 새로운 게임을 만들 수 있는 길을 열어주었다. 하지만 이렇게 만들어진 게임들을 공식적으로 발매하고 유통하려면 기존 언리얼 엔진에 연계된 높은 비용의 라이선스를 획득해야 하는 만만치 않은 장벽을 넘어서야 했다. 언리얼 엔진의 개발사인 에픽 게임즈가 이 같은 수요에 부응하여 2009년에 공개한 것이 바로 이 책에서 다루고 있는 언리얼 개발 키트(이하 UDK)다. 게임 개발자는 무료로 배포되는 UDK를 이용하여 언리얼 엔진의 모든 기능을 활용할 수 있는데다가 소정의 라이선스 비용과 로열티만 지불하면 그 결과물을 상업적으로 판매하는 것도 가능하다. 여가시간을 활용하여 게임을 만드는 개인 개발자나 큰 자본을 갖추지 못한 인디 개발사에게 이는 매우 반가운 소식이다.

    UDK를 본격적으로 활용해보고자 할 때 맞닥뜨리게 되는 가장 큰 난관은 십중팔구 언리얼스크립트(UnrealScript)가 아닐까 싶다. UDK 에디터의 경우에는 책이나 튜토리얼 동영상, 블로그 게시물 등 접근 가능한 자료의 양이 꽤 많고, 상당 부분 한글화도 이루어져 있기 때문에 비교적 배우기가 쉽다. 반면 언리얼스크립트에 대해서는 체계적이고 상세하게 가르쳐주는 자료, 더군다나 우리말로 되어있는 자료를 구하기란 쉽지 않다. 간혹 찾을 수 있는 문서들은 각 기능에 따른 단편적인 지식들만 제공하고 있어서 이들 기능을 하나로 꿰어 원하는 새로운 기능을 구현하려면 어디서부터 어떻게 시작해야 할지 막막하기 일쑤다. 언리얼스크립트가 기존의 언어, 이를테면 C/C++나 자바, 혹은 자바스크립트 등의 언어와 유사한 부분이 많은 것도 사실이지만, 이들 언어를 잘 알고 있다고 해도 게임 프로그래밍을 위해 특화된 언리얼스크립트만의 독특한 문법과 구조에 대해서는 새롭게 배워야 할 것이 적지 않다.

    이 책은 UDK와 프로그래밍 그 어느 쪽도 접해본 적 없는 독자를 대상으로 놀라울 정도로 쉽고 친절하게 그 두 마리 토끼를 동시에 잡도록 차근차근 안내한다. 내가 처음 이 책의 원서를 접한 후에 가장 먼저 확인한 것은 아마존 웹사이트에 올라온 서평이었다. 일반적으로 좋은 평가를 받는 책이라 해도 간혹 부정적인 서평이 끼어있기 마련인데, 이 책은 칭찬 일색의 서평으로 가득했다. 특히 많은 이들은 이 책을 일반적인 의미에서 '객체지향 프로그래밍을 쉽게 가르치는 책'으로 평가하고 있었다. 수년간 초보자를 대상으로 프로그래밍 강의를 진행하면서 매번 그 어려움을 절감해오던 터라 이러한 평가는 책에 대한 호기심을 자극하기에 충분했다. 결국 직접 이 책의 번역을 맡아 처음부터 끝까지 읽고, 실험하고, 우리말로 옮기는 과정을 거치면서 나 역시 다른 평자들과 동일한 결론에 도달하게 되었다.

    UDK와 언리얼스크립트를 이용해서 다수의 게임을 직접 개발해온 저자는 그 해박한 지식과 실전 경험을 바탕으로, 초보자가 단순히 따라하는 것부터 시작해서 조금씩 변형하거나 확장해나가고 종국에는 원하는 것을 자유롭게 구현할 수 있도록 안내하는 최적의 경로를 제시한다. 각 단계마다 새롭게 배우는 언리얼스크립트의 문법과 기능은 곧바로 예제 게임에 적용되어 독자는 그 결과를 눈으로 확인할 수 있다. 또한 처음에 아주 간단한 형태로 시작된 게임은 여러 단계가 쌓이면서 점차 복잡하고 정교하고 흥미로워진다. 그 과정에서 저자는 까다로운 수학적 언어 대신 한결같이 편안한 일상적 언어를 통해 독자들에게 친근하게 다가간다. 쉬운 언어를 쓴다고 해서 내용의 깊이가 얕은 것도 아니다. 특히, 객체지향적 코드 설계에 대한 구체적인 조언과 네트워크 코드의 동작에 대한 자세한 설명은 독자가 좀더 높은 수준의 개발자로 발돋움하는 데 필요한 기초를 충실하게 제공한다. 한 권의 책 안에서 이처럼 다방면의 주제에 대해 중심을 잃지 않고 하나의 흐름으로 전개한 것만으로도 저자가 이 분야에 얼마나 깊은 내공을 갖고 있는지, 그리고 완성도 높은 책을 만들기 위해 얼마나 많은 노력을 기울였는지 엿볼 수 있다.

    나는 2012년 봄에 이 책의 번역을 시작했고, 원래는 같은 해 여름까지 번역을 마무리해서 2학기에 개설되는 '게임설계'라는 강의에서 완성된 번역서를 활용하고자 했다. 하지만 그 동안 몇 권의 책을 번역하면서 늘 겪었던 것과 마찬가지로, 이번에도 역시 계획보다 한참이나 늦게 마무리가 되었다. '게임설계' 강의에서는 아쉬운 대로 원서의 내용을 바탕으로 진행했는데, 그 결과는 예상보다 만족스러웠다. 강의를 듣기 전까지만 해도 UDK에 아무 경험이 없던 학생들이 이 책에서 제시된 설명과 예제 코드를 통해 언리얼스크립트를 익히고, 한 편으로는 튜토리얼 동영상이나 블로그 게시물을 참고해 에디터 사용법을 배움으로써 한 학기라는 짧은 시간 안에 하나의 완성된 게임을 만들어낼 수 있다는 사실이 매우 인상 깊었다. 또한 저수준 API에 의존할 때에 비해 세부적인 구현에 소모되는 시간이 대폭 줄어들었기 때문에 보다 많은 시간을 게임 기획과 설계에 투자함으로써 게임 그 자체의 완성도를 전반적으로 크게 향상시킬 수 있었다. 이 번역서를 손에 쥔 독자 여러분도 제시된 흐름에 따라 모든 예제를 하나씩 구현하고, 실험하고, 탐구하는 과정을 통해 만족스러운 성과를 얻으리라 기대한다.
    (/ 옮긴이의 말 중에서)

    저자소개

    레이첼 코돈(Rachel Cordone) [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    디자이너이자 독학으로 언리얼스크립트를 배운 프로그래머다. 언리얼 엔진으로 작업해온 것은 1999년부터다. 2003년부터 파이프웍스 소프트웨어(Pipeworks Software)와 파슨스 브링커호프(Parsons Brinkerhoff) 등의 게임 및 시뮬레이션 회사에서 일했고, 직접 스터번 홀스 스튜디오(Stubborn Horse Studios)를 설립하여 언리얼 개발 키트를 이용한 인디 게임을 개발하고 있기도 하다. 스터번 홀스의 첫 번째 프로젝트인 프로메테우스(Prometheus)는 에픽 게임즈(Epic Games)의 메이크 섬씽 언리얼 콘테스트(Make Something Unreal Contest)에서 여러 개의 상을 받았다.

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    서울대 전기 컴퓨터 공학부 그래픽스 연구실에서 박사 과정을 수학하고 있으며, 서울 디지털 대학 멀티미디어 학부의 강의를 맡고 있다. 멀티미디어 디자인을 비롯해서 게임 프로그래밍, 인공지능 분야에도 많은 관심을 가지고 있다.
    http://cg.kw.ac.kr/kang

    이 상품의 시리즈

    acorn+PACKT 시리즈(총 351권 / 현재구매 가능도서 300권)

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용