Top

자바스크립트로 하는 유니티 게임 프로그래밍

  • 원서명Unity 3.x Scripting (ISBN 9781849692304)
  • 지은이볼로디미르 게라시모프, 드본 크라츨라
  • 옮긴이동준상
  • ISBN : 9788960775336
  • 30,000원
  • 2014년 03월 18일 펴냄
  • 페이퍼백 | 340쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

이 책의 활용법

■ 독자를 위해 책의 1장~3장에 있는 예제 코드 파일을 제공합니다. 다운로드 파일에 포함되어 있습니다.

■ 아래 영상은 예제 파일을 처음 활용하실 때 도움을 드리기 위해 옮긴이가 만든 영상입니다. 게임 애셋 확인 및 레벨의 기본적인 커스터마이징 작업 내용이 담겨있습니다.

http://www.youtube.com/watch?v=9K5VIFJCPAg

■ 다음은 유니티의 기초부터 전문적인 내용까지 스터디할 수 있는 사이트입니다. 영상과 코드를 함께 제공해 좀 더 효과적으로 스터디할 수 있습니다.

http://unity3d.com/learn/tutorials/modules

요약

자바스크립트를 이용해서 게임 세상을 창조하고, 다른 라이브러리의 객체를 프로젝트에 포함시키며, 기본 템플릿을 수정해서 나만의 개성 있는 장면을 연출하는 방법을 설명하는 책이다. 유니티 스크립트를 이용하면 캐릭터의 동작 구현, 게임 애니메이션, 게임 객체의 제어, 점수와 레벨, 통계 등 게임 데이터의 처리, 스스로 길을 찾고 공격과 방어를 하는 인공지능 적군의 생성 등의 복잡한 작업이 가능해진다. 이 책은 단 몇 줄의 스크립트를 통해 간단한 동작을 구현하는 것부터 시작해서, 차츰 난이도를 높여서 복잡한 장면을 연출하기 위한 꽤 긴 스크립트를 자연스럽게 익힐 수 있도록 구성했다.

이 책에서 다루는 내용

■ 유니티에서 제공하는 기본 캐릭터 컨트롤러 조종하기
■ 기존 게임 객체에 기본 캐릭터 컨트롤러 스크립트를 적용하기
■ 게임 장면에 카메라를 설치하고 캐릭터의 뼈대가 될 리그 추가하기
■ 바이오 건, 무기, 체력, 통계, 보물상자, 캐릭터와의 상호작용 등 동적, 정적 객체 추가하기
■ 시차가 있는 2D, 3D 게임 배경 다루기
■ 오디오 게임 컨트롤러를 통한 음향 겹침 문제 해결과 배경 음향의 구현
■ 스스로 경로를 이동하며 주인공을 찾아내 공격하는 인공지능 로봇 만들기

이 책의 대상 독자

이 책에 담긴 다양한 예제와 코드를 제대로 활용하기 위해서는 유니티에 대한 사전 지식이 필요하다. 유니티 기반의 게임을 준비 중이면서, 자바스크립트를 이용한 코드 작성에 큰 부담을 느끼지 않는 개발자라면 이 책을 즉시 활용할 수 있다.
이 책은 프로그래밍, 특히 자바스크립트에 대한 기본 지식을 갖춘 독자에게 무척 유용한 유니티 개발서가 될 수 있을 것이고, 자바스크립트 이외의 프로그래밍 언어를 잠시라도 접해본 독자 역시 쉽게 프로젝트를 시작할 수 있게 구성했다.

이 책의 구성

1장, ‘유니티 스크립트의 세상 속으로’에서는 프로젝트 설정 방법과 내장된 캐릭터 컨트롤러를 활용하는 방법에 대해 소개한다. 또한 동적인 게임 객체와 충돌체, 이동하는 게임 무대와 폭파 효과에 대해 알아본다.

2장, ‘커스텀 캐릭터 컨트롤러’에서는 여러분이 직접 캐릭터 컨트롤러를 만드는 방법과 카메라 연동, 유니티의 애니메이션 시스템에 대해 알아본다.

3장, ‘액션 게임의 모든 것’에서는 게임 프로그래밍의 기본기라 할 수 있는 무기 발사, 아이템 획득, 보물상자 열기와 소프트바디, 그리고 테더링 구현 기법에 대해 소개한다.

4장, ‘드래그 앤 드롭 인벤토리’에서는 유니티 GUI 시스템을 이용해서 여러분이 원하는 게임 인벤토리와 캐릭터를 만드는 방법에 대해 살펴본다.

5장, ‘동적인 GUI의 구현’에서는 단계별로 나눠서 적을 조준하고 무기를 발사하기 위한 HUD와 타겟팅 시스템에 대해 소개한다.

6장, ‘게임 마스터 컨트롤러’에서는 게임 매니저를 이용해서 게임의 체계를 디자인 하고 프로그래밍하는 방법을 소개한다.

7장, ‘인공지능 경로 찾기와 각종 동작의 구현’에서는 인공지능 프로그래밍의 기초와 이를 이해하기 위한 기초 이론에 대해 소개한다.

부록, ‘유니티에서의 객체지향 프로그래밍’에서는 유니티 특유의 객체지향 문법을 이해할 수 있도록 기본적인 프로그래밍 기법을 소개한다.

저자/역자 소개

저자 서문

여러분이 진심으로 멋진 게임을 만들려고 하는 열정적인 게임 개발자라면 이 책은 여러분의 게임 개발을 위한 긴 여정의 출발점이 되기에 충분하다. 이 책을 통해 플레이가 가능한 첫 번째 게임의 프로토타입을 만드는 과정을 한 단계씩 섭렵해 갈 수 있고, 좀 더 많은 시간과 노력을 기울여서 완벽한 구성과 기능을 갖춘 게임으로 확장해나갈 수 있다. 이 책에 실린 다양한 예제는 게임에서 가장 필수적인 기능은 물론 게임을 즐겁게 해줄 요소의 구현 방법도 소개한다. 이를 통해 여러분은 유니티에 대해 더욱 잘 이해하게 될 것이고, 여러분의 프로그래밍 능력 또한 향상될 것이다.

저자 소개

볼로디미르 게라시모프(Volodymyr Gerasimov)

게임 레벨 디자이너이자 스크립터이다. 게임 스크립팅을 통해 인기 게임의 세부적인 수정 작업에 참여하고, 소규모의 독립 게임 프로젝트를 개발하는 데 열정을 쏟고 있다. 밴쿠버의 아트 인스티튜트(Art Institute)에서 다양한 스크립팅과 프로그래밍 언어를 배웠다. 2010년에 유니티를 처음 접한 이후, 다양한 게임 프로젝트와 독립 게임, 그리고 프로토타입 개발에 참여해왔다. 볼로디미르는 핵앤슬래시(hack-and-slash) 전투 방식의 액션 게임인 스플릭 앤 블리츠(Splik and Blitz: Baked in Blood)의 선임 레벨 디자이너이자 스크립터로 개발에 참여했으며, iOS와 PC 기반의 다양한 인디 게임을 개발해 왔다. 최근 완성작은 퍼즐 게임인 레드 롤링 후드(Red Rolling Hood)이다. 현재는 베스트 웨이(Best Way) 사에서 액션 롤플레잉 게임의 프로듀서로 일하고 있다.

드본 크라츨라(Devon Kraczla)

독립 게임 개발자다. 미술적인 경험을 바탕으로 게임 산업에 뛰어들어 수준 높은 게임을 만들고 있다. 밴쿠버의 아트 인스티튜트(Art Institute)를 졸업한 이후 지난 수년간 다양한 독립 프로젝트에서 독자적으로, 또는 다른 개발자와 함께 개임을 개발해 왔다. 그 가운데 EA 캐나다의 모션 캡처 팀원으로 참여한 배틀필드(Battlefield) 3는 수상의 영광을 누리기도 했다. 드본은 게임을 개발함에 있어 하드코어 게임은 물론 캐주얼 게임 플레이어 모두에게 사랑 받을 수 있는 독특한 스타일을 만들며, 이를 통해 간단하면서도 게이머가 몰입할 수 있는 게임 분위기를 제공하기 위해 노력한다. 현재는 열정 넘치는 대규모 게임 개발자와 함께 신규 프로젝트를 위해 일하고 있다.

옮긴이의 말

현직 게임 디자이너이자 롤플레잉 게임 프로듀서가 쓴 이 책은 유니티를 이용해서 현대 게임 메커니즘을 어떻게 구체화하고, 실무를 통해 검증된 게임 구현 전략을 어떻게 완성해 나가는지 설명한다.

이 책은 하나의 액션 게임을 완성해 가는 방식으로 작성됐다. 책의 전반부는 게임의 대표적인 특징인 상호작용 객체에 대한 소개와 유니티에서 기본적으로 제공하는 캐릭터 컨트롤러를 게임 디자이너의 의도에 맞춰 수정하는 방법으로 시작하며, 책의 후반부로 가면서 난이도와 전문성을 차츰 높여서, 액션 게임을 만들기 위한 무기, 아이템, 방어 등의 구현, 게임의 전반적인 관리 시스템이라 할 수 있는 게임 매니저와 게임의 몰입도를 높여줄 오디오 매니저의 구현 방식을 구체적으로 소개한다. 마지막으로, 플레이어의 긴장감을 높여줄 수 있는 인공 지능을 지닌 적을 구현하는 방법을 설명한다.

이 책의 또 다른 중요한 특징은 자바스크립트를 이용한 게임 메커니즘의 구현이다. 시중에 있는 대부분의 서적이 C# 스크립트로 게임 메커니즘을 구현하지만, 현직 게임 디자이너인 저자는 게임 스토리 또는 아이디어가 있는 사람이라면 프로그래밍에 대한 부담감을 조금이나마 덜 느끼며 조만간 게임 개발에 나설 수 있도록 자바스크립트로 전체 게임 코드를 완성했다. 또, 유니티 특유의 객체지향 코드를 좀 더 이해하기 쉽도록 부록에서 이에 대한 내용을 간략하지만 알기 쉽게 설명한다.

이 책은 현대적인 게임 메커니즘을 갖춘 프로토타입을 구현하려는 게임 디자이너는 물론, 흥미로운 나만의 스토리와 아이디어를 게임으로 옮기겠다는 의지가 있는 사람이라면 누구라도 활용할 수 있는 유니티 개발서다.
-동준상

옮긴이 소개

동준상

넥스트플랫폼 대표, UI 개발자. iOS와 안드로이드, 소셜 애플리케이션 분야에서 UI 개발과 UX 표준화 일을 한다. KT, 삼성전자, 신세계, 국민은행, 생산성본부 등에서 모바일 프로젝트를 위한 UX 디자인과 UI 개발 강의를 하고, 관련 교재를 집필했다. KT 앱 챌린지 (2013년) 심사위원, 글로벌 앱 챌린지 (2012년) 심사위원, 한국콘텐츠진흥원, 부산정보진흥원 기술 심사 및 멘토로 활동하고 있다.

번역서로 에이콘출판사에서 펴낸 『HTML5 Multimedia Development Cookbook 한국어판』(2012), 『jQuery UI 1.8 한국어판』(2012), 『The iOS 5 Developer’s Cookbook 한국어판』(2012), 『The Core iOS 6 Developer’s Cookbook 한국어판』(2013), 『The Advanced iOS 6 Developer's Cookbook (Fourth Edition) 한국어판』(2013)이 있다.

목차

목차
  • 1장: 유니티 스크립트의 세상 속으로
  • 이 책에서 사용할 자료의 다운로드와 설치
  • 게임 만들기의 시작
  • 사용 가능한 캐릭터 컨트롤러
  • 상호작용 객체
    • 트리거
    • 버튼
      • 기본 버튼 스크립트
      • 플랫폼 상황의 활성화
    • 폭파 버튼
      • Update 함수
      • BOOM 함수
    • 기폭장치 패키지 다운로드하기
      • 버튼 누르기
  • 동적인 객체
    • 이동하는 박스
    • 트리거드 객체
    • 이동하는 플랫폼
    • 플랫폼에 캐릭터를 태워서 이동하기
  • 요약

  • 2장: 커스텀 캐릭터 컨트롤러
  • 조종 가능한 캐릭터 만들기
  • 커스텀 캐릭터 컨트롤러
    • 프로젝트 설정
    • 움직임 만들기
      • 캐릭터 벡터 값의 조절
      • 사용자의 입력 정보 등록
      • 리지드바디 컴포넌트
      • 점프하기
      • 사용자 입력 값의 확인
      • 레이캐스팅
      • 추가적인 점프 기능
  • 뛰기
  • 카메라
    • 카메라 조작을 위한 스크립트 작성
      • 카메라 스크립트의 작성
      • 카메라 유형 목록의 생성
      • 함수 작성하기
      • 카메라 교환의 조절
      • 캐릭터 움직임과 카메라 위치 설정
      • 카메라 타입 변경 사항 업데이트하기
      • 마우스로 카메라 조정하기
      • 각도 고정하기
      • 시차를 둔 카메라 동작
      • 카메라와 함께 캐릭터 회전하기
  • 애니메이션 컨트롤
    • 간단한 애니메이션의 구현
      • Start 함수와 Awake 함수의 비교
      • 애니메이션 컴포넌트와 재생 속도
      • 애니메이션 스크립트 작성
      • 걷고 뛴 후 대기하는 애니메이션

  • 3장: 액션 게임의 모든 것
  • 무기와 획득 아이템의 프로그래밍
    • 각종 정보를 기록하기 위한 기본 스크립트의 작성
    • 무기 체계의 프로그래밍
      • Shooting 함수
      • 무기 발사 시간의 조절
      • 대체 무기 발사 함수
  • 향상된 애니메이션 시스템
    • 애니메이션의 구현 작업
      • 애니메이션 혼합하기
      • 애니메이션 스크립트의 개요
  • 무기 획득
  • 총알과 생명 아이템의 추가
  • 보물 상자 만들기
  • 무기의 세부 설정
  • 테더링과 소프트 바디
    • 테더링
      • 테더링 생성
    • 애셋 요소의 생성
      • 테더 매니저
      • 테더링 생성
      • StickySegment 스크립트
      • 전반적인 테더링 스크립트의
  • 요약

  • 4장: 드래그앤드롭 인벤토리
  • GUI의 기초
    • GUI.Box
    • GUI.Button
    • GUI.Label
    • GUI.TextField
    • GUI.TextArea
    • GUI.Toggle
    • GUI.Toolbar와 GUI.SelectionGrid
    • GUI.HorizontalSlider와 GUI.VerticalSlider
    • GUI.HorizontalScrollBar와 GUI.VerticalScrollBar
    • GUI.BeginGroup과 GUI.EndGroup
    • GUI.BeginScrollView, GUI.EndScrollView, 그리고 ScrollTo
  • 다른 GUI 클래스
    • 드래그앤드롭 인벤토리
    • 기본 코드의 구성
    • 인벤토리 슬롯과 드래그할 수 있는 객체
    • GUI 윈도우로 작업하기
    • 인벤토리 슬롯
    • 인벤토리 완성하기
  • 캐릭터에 대한 세부 조정 작업
    • 3D 캐릭터 아바타
      • 아바타를 나타내기 위한 카메라 설정하기
      • 카메라 세부 설정하기
      • 윈도우 드래그 가능 영역의 제한
    • 캐릭터 장착 아이템 설정
      • 장착 아이템 설정
      • 아이템 추가하기
      • 캐릭터 세부 조정
      • 인벤토리 요소의 갱신
      • 세부 조정작업 마무리하기
  • 요약

  • 5장: 동적인 GUI의 구현
  • 원형의 체력 표시 장치
    • Health 스크립트 작성
    • 체력 표시를 위한 스크립트
    • Health 스크립트에 추가할 내용
    • 인스펙터에 게임 객체 연결하기
  • 아이템 생성
    • Change_Item 스크립트
      • 코드 작성을 위한 준비
      • 아이템 변경
      • 아이템 추가와 삭제
      • 아이템 표시하기
      • 아이템 배열의 증가값 조절
    • UseItem 스크립트의 작성하기
    • Change_Item 스크립트에 코드 추가하기
    • PlayerStats 스크립트
    • TextManager 스크립트
    • textMesh 스크립트
    • UseItem 스크립트에 코드 추가하기
    • Health 스크립트에 코그 추가하기
  • 방어막 만들기
    • Armor 스크립트
    • HealthBar 스크립트 수정
    • Health 스크립트의 수정
    • UseItem 스크립트 수정
  • 무기 만들기
    • Change_Weapon 스크립트 작성
    • UseWeapon 스크립트 작성
    • PlayerStats 스크립트의 수정
    • textMesh 스크립트 수정
  • 점수 시스템을 위한 스크립트 작성
    • Score 스크립트
      • 텍스트 파일에서 정보 읽어오기
      • 텍스트 파일에 기록하기
    • timer 스크립트
    • textMesh 스크립트의 수정
  • 게임 객체를 화면에 표시하기
    • TextManager 스크립트의 수정
    • textMesh 스크립트의 수정
    • HUD 요소의 연결
    • 게임 매니저 관련 스크립트
    • 체력 관련 스크립트
    • 아이템 선택 관련 스크립트
    • ItemMultiplier, highScoreDisplay, ObjectiveDisplay, scoreDisplay, 그리고 weaponDisplay 함수
    • saveDisplay 함수
    • 무기 선택 관련 스크립트
  • 아치형 조준 시스템 만들기
    • 베지어 방정식 스크립트의 생성
    • ArcBehaviour 스크립트의 작성
    • moveObject 스크립트의 작성
    • 편집화면에서 스크립트 연결하기
  • 요약

  • 6장: 게임 마스터 컨트롤러
  • 게임 매니저의 개요
  • 게임 매니저의 생성
    • 레벨 스트리밍
    • 미션의 생성
    • 게임 레벨 관리하기
    • Save/load 시스템
    • 체크포인트를 이용해서 레벨 불러오기
  • GameLoader
  • 동적인 카메라의 구현
  • 오디오
  • 오디오 매니저
  • 요약

  • 7장: 인공지능 경로 탐색과 각종 동작의 구현
  • 간단한 경로 찾기 구현
    • 계층 뷰 설정하기
    • 경유의 주요 지점을 표시하기 위한 스크립트 작성
    • 경로 배열 설정
    • aiSimplePath 스크립트의 작성
      • 경로 변수의 선언
      • 경로 찾기 함수 작성의 시작
      • 경로에 따른 이동
      • 로봇의 활동을 중지시키기
      • 인스펙터에 aiSimplePath 스크립트 연결하기
  • 적의 통계 정보, 무기발사, 각종 동작의 구현
    • enemyStats 스크립트의 작성
      • 변수 설정하기
      • 함수 설정하기
      • 설정된 값을 가져오는 함수 작성
      • 체력과 무기 관리를 위한 함수
      • 인스펙터에서 enemyStats 스크립트 연결하기
    • Shoot 스크립트
      • 스크립트 작성 준비하기
      • 무기 발사 함수의 작성
      • 인스펙터에서 Shoot 스크립트 연결하기
    • aiSimpleBehaviour 스크립트
      • 스크립트 작성 준비
      • 동작관련 함수
      • 추가로 작성할 함수
      • 인스펙터에서 aiSimpleBehaviour 스크립트 연결하기
  • 다시 aiSimplePath 스크립트 열기
    • 추적 기능
    • 다시 한 번 EnemyPath 함수 열기
  • bulletCollision, ammoCollision, AmmoInfo 스크립트
    • bulletCollision 스크립트의 작성
      • 인스펙터에서 총알과 bulletCollision 스크립트의 연결
    • ammoCollision 스크립트의 작성
      • 인스펙터에서 적과 ammoCollision 스크립트 연결하기
    • AmmoInfo 스크립트의 작성
      • 인스펙터에서 무기에 AmmoInfo 스크립트 연결하기
  • 요약

  • 부록: 유니티에서의 객체지향 프로그래밍
  • 객체지향 프로그래밍의 기초
    • 캡슐화
    • 클래스
    • 구조체
      • 코드 작성 예
    • 상속
      • 준비
      • 코드 작성 예
    • 다형성
      • 코드 작성 예
    • 중첩된 클래스
  • 요약
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안