Top

움직이는 증강 현실 게임 개발 [현실 속에서 이동하고 포획하며 즐기는 유니티 AR 게임]

  • 원서명Augmented Reality Game Development: Create your own augmented reality games from scratch with Unity 5 (ISBN 9781787122888)
  • 지은이마이클 랜햄(Michael Lanham)
  • 옮긴이이진오
  • ISBN : 9791161751597
  • 30,000원
  • 2018년 05월 30일 펴냄
  • 페이퍼백 | 384쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

요약

'포켓몬 고'와 같은 증강 현실 게임을 개발하고 싶은 중급 이상의 개발자들을 위한 책이다. 유니티를 사용해 AR 게임을 개발하는 이 책은 이에 필요한 모든 요소들(위치 추적, 지도 구현, 캐릭터 이동, 몬스터 포획, 증강 현실 구현 등)을 다뤄 완전한 게임을 만든다. 스마트폰에서 현실과 게임을 하나로 묶는 게임을 개발하고자 한다면 이 책이 큰 도움이 될 것이다.

이 책에서 다루는 내용

■ 위치 기반 증강 현실 게임 Foodie Go 개발하기
■ 지도상에서 플레이어 아바타 애니메이션하기
■ 모바일 기기 카메라를 게임 배경으로 사용하기
■ SQLLite4Unity3D를 사용해 지속적인 데이터베이스를 적용해 게임 세션 전반에 사용 가능한 인벤토리 아이템 만들기
■ 게임, 인벤토리, 메뉴, 설정용 기본 UI 만들기
■ Google Places API를 이용해 장소와 콘텐츠 검색하기
■ 비주얼 셰이더 효과를 사용해 게임 분위기 향상시키기
■ 멀티플레이어 네트워크와 여러 개선 요소를 이용해 게임 확장하기

이 책의 대상 독자

'포켓몬 고'와 유사한 본인만의 위치 기반 증강 현실 게임을 개발하는 데 관심을 가진 사람들을 위한 책이다. 일정 수준 이상의 게임 개발 기술을 갖췄거나 유니티를 이미 경험해봤다고 가정하지 않지만, C# 언어나 그에 상응하는 언어(C, C++, 자바, 자바스크립트 등)에 대한 기본 지식은 필요하다.

이 책의 구성

1장. '시작하기'에서는 위치 기반 AR 게임 장르를 소개하고 우리가 개발할 가상의 게임인 Foody Go를 둘러싼 개념들을 살펴본다. 그러고 나서 필요한 소프트웨어들의 다운로드 과정과 유니티 모바일 개발 환경의 구성에 대해 알아본다.
2장. '플레이어 위치 매핑'에서는 먼저 GIS, GPS, 매핑에 관한 기본적인 개념을 알아보고, 이어서 이 개념들이 실시간 지도 생성과 게임 내 플레이어 위치 확인에 어떻게 사용될 수 있는지 살펴본다.
3장. '아바타 만들기'에서는 이전 장에서 구현한 내용을 기반으로 간단한 위치 마커를 애니메이션이 포함된 이동하는 캐릭터로 바꿔본다. 이렇게 하면 플레이어는 본인의 모바일 기기를 들고 움직일 때 자신의 아바타가 지도 위에서 움직이는 것을 확인할 수 있다.
4장. '포획물 생성하기'에서는 Foody Go에서 실험체 몬스터들을 포획하는 개념을 설명한다. 지도 위에 있는 플레이어의 주위에서 몬스터를 생성하는 법을 배운다.
5장. 'AR에서 포획물 잡기'에서는 기기의 카메라에 접근해서 통합된 AR을 구현하고, 볼 던지기 물리, 포획물의 반응과 플레이어 스와이핑(swiping) 관리, 새로운 게임 신(scene)을 구현해본다.
6장. '포획물 저장하기'에서는 플레이어의 인벤토리(inventory) 개발에 집중한다. 잡은 Foody 생물들과 다른 유용한 아이템들을 저장하고, 영속되는 저장 공간과 간단한 인벤토리 신을 추가하는 방법을 배운다.
7장. 'AR 세계 만들기'에서는 실시간 데이터 서비스를 기반으로 플레이어 주위에 관심 위치(location of interest) 추가하는 방법을 배운다.
8장. 'AR 세계와 상호작용하기'에서는 플레이어가 관심 위치들과 상호작용할 수 있게 만든다. 우리 게임에서 플레이어는 관심 위치에서 잡은 몬스터들을 팔 수 있다.
9장. '게임 마무리하기'에서는 게임을 마무리하는 방법은 물론, 더 나아가 독립적인 위치 기반 AR 게임을 만들 수 있는 정보를 다룬다. 이 책에서는 Foody Go 게임의 데모 버전만을 만들기 때문이다.
10장. '문제 해결'에서는 개발 과정에서 마주치는 장애 요소들을 해결할 수 있는 팁과 유용한 방법들을 다룬다. 모든 소프트웨어 개발이 그렇듯이 문제는 언제나 일어나기 마련이다.

저자/역자 소개

지은이의 말

2016년 초까지 세상 사람들 대부분은 증강 현실과 위치 기반(location-based) 게임에 대해 거의 모르고 있었다. 하지만 그해 말 '포켓몬 고'가 출시되면서 모든 것이 바뀌었다. 하루 아침에 해당 장르는 게임 개발의 차세대 흐름으로 자리 잡았다. 분명 당신은 '포켓몬 고'를 이미 해봤을 것이고, 아마도 증강 현실과 위치 기반 장르에 속한 게임에 관심이 많아서 이 책을 읽고 있을 것이다.
이 책은 '포켓몬 고'와 같은 위치 기반 AR 게임을 구성하는 요소들을 세부적으로 다룬다. 위치 기반 AR 게임은 개발에 많은 자원이 들며, 매핑과 몬스터 생성 같은 수많은 기능들을 필요로 한다. 하지만 우리가 개발할 게임은 무료로 제공되는 서비스들을 사용하므로 한 푼도 들지 않는다. 라이선스 문제 때문에 이 게임을 상업용으로 출시할 수는 없지만, 대신 개발에 필요한 모든 개념을 알게 해줄 것이다. 또한 유니티라는 훌륭한 툴과 함께 게임 개발에 대한 다양한 개념들을 배울 수 있다.

지은이 소개

마이클 랜햄(Michael Lanham)

현재 petroWEB에서 솔루션 설계자로 근무하고 있으며, 캐나다 알버타 주 캘거리 시에 거주하고 있다. 고급 공간 검색 기능을 가진 통합 GIS 애플리케이션 개발 업무를 맡고 있으며, 데스크톱/모바일 게임을 아우르는 프로 및 아마추어 게임 개발자로서 15년 이상 활동했다. 2007년 처음 유니티 3D를 알게 됐으며, 그 후 열성적인 팬이자 개발자로 살아가고 있다.

옮긴이의 말

2016년 출시돼 세계를 휩쓴 '포켓몬 고'를 기억하는가? 이 게임은 일반인들은 물론이고, 방구석과 컴퓨터 앞을 사랑하는 게이머들을 야외로 끌어내어 공전의 히트를 기록했다. '포켓몬 고'의 히트는 세계적으로 유명한 게임사의 브랜드 파워를 재확인해줬지만, 그보다 더 큰 의미는 증강 현실(AR, Augmented Reality) 게임의 가능성을 열어준 것이다. '포켓몬 고'가 나타나기 이전의 게임 시장에서 증강 현실은 단지 기술 테스트 수준에 머무는 느낌이 강했다. 특이하지만 시장성이 없는 기술로 취급당하고 있었기 때문이다. 하지만 증강 현실을 사용한 전무후무한 히트작이 나타남으로써 상황은 180도 달라졌다. 아류작들의 등장은 말할 것도 없고, 비슷한 포맷을 차용한 마케팅 앱들도 다수 개발됐다.
이 책은 이 거대한 흐름의 시작이 된 게임의 모습을 유니티에서 구현하게 해주는 내용을 담고 있다. 플레이어의 위치를 추적하는 GPS와 지도를 시작으로, 캐릭터와 입력 방식 구현, 몬스터 생성과 포획, 증강 현실 요소 적용과 상호작용까지 총 10장에 걸쳐 다양한 정보와 구현 방법을 설명한다. 책 속의 예제 게임인 Foody GO는 세계 정상급의 요리 실력을 자랑하는 몬스터들이 탈출해 세계를 떠돌고 있는 상황에서 플레이어가 이 몬스터들을 포획하고 식당들에 배치시켜 돈을 벌어들이는 구조로 진행된다. 테마와 설정이 다를 뿐 '포켓몬 고'와 여러모로 많은 유사점을 가지고 있는 셈이다.
이 책이 독자에게 주는 가장 큰 선물은 본인이 개발하고 싶은 게임이 더 이상 화면 안에 제한되지 않으며 실세계와 연결되는 증강 현실까지 펼쳐나갈 수 있게 해준다는 점이다. 많은 인기를 얻고 있는 RPG와 퍼즐 같은 장르의 게임을 개발하는 방법을 설명하는 책은 넘쳐나지만, 독특한 게임 요소의 개발을 다루는 책은 많지 않다. 게다가 다수가 이미 경험했음에도 아직 다양한 구현이 이뤄지지 않은 기술을 소개한다면 꽤 매력적일 수밖에 없다. 나 역시 한 사람의 게이머로서 다양한 방식의 새로운 경험을 주는 게임을 찾길 원한다. 그리고 이 책이 당신을 새로운 경험을 개발하고 전파하는 전달자로서 거듭나게 하는 계기가 됐으면 한다.

옮긴이 소개

이진오

게임에 미쳐 부모님의 잔소리만 듣던 아이였다가 정신을 차려보니 어느덧 18년째 게임 업계에서 일하고 있다. 프로듀서, 프로젝트 매니저 등 개발을 관리하는 역할로 '킹덤 언더 파이어: 더 크루세이더스', '샤이닝로어', 'APB', 'Firefall' 등의 프로젝트에 참여해왔으며, 현재는 리로디드 스튜디오에 몸담고 있다. 평소 최대한 많이 새로운 것을 시도해보고 경험하려 노력한다.

목차

목차
  • 1장. 시작하기
    • 실세계 어드벤처 게임
      • 위치 기반
      • 증강 현실
      • 어드벤처 게임
    • 유니티로 모바일 개발 준비하기
      • 유니티 다운로드 및 설치
      • 안드로이드 개발 환경 구성하기
      • iOS 개발 환경 구성하기
    • 유니티 시작하기
      • 게임 프로젝트 생성하기
      • 게임을 빌드하고 배포하기
    • 요약

  • 2장. 플레이어 위치 매핑
    • GIS 핵심 개념
      • 매핑
    • GPS 핵심 개념
      • 구글 맵스
      • 지도 추가하기
      • 서비스 구성하기
    • 요약

  • 3장. 아바타 만들기
    • 유니티 기본 에셋 가져오기
      • 캐릭터 추가하기
      • 카메라 바꾸기
      • 크로스 플랫폼 입력
      • 입력 수정하기
      • 캐릭터 교체하기
    • 요약

  • 4장. 포획물 생성하기
    • 새로운 몬스터 서비스 만들기
      • 매핑에서 거리 이해하기
      • GPS 정확도
    • 몬스터 체크하기
      • 3D 월드 공간에 좌표 투영하기
      • 지도에 몬스터 추가하기
      • UI에서 몬스터 추적하기
    • 요약

  • 5장. AR에서 포획물 잡기
    • 신 관리
    • Game Manager 소개
    • 신 불러오기
    • 터치 입력 업데이트하기
    • 콜라이더와 리지드바디 물리
    • AR 포획 신 만들기
    • 신 배경으로 카메라 사용하기
    • 포획 볼 추가하기
    • 볼 던지기
    • 충돌 체크하기
    • 반응을 나타내는 파티클 효과
    • 몬스터 포획하기
    • 요약

  • 6장. 포획물 저장하기
    • 인벤토리 시스템
    • 게임 상태 저장하기
    • 서비스 구성하기
    • 코드 리뷰하기
    • 몬스터 CRUD 작동
    • Catch 신 업데이트하기
    • 인벤토리 신 만들기
    • 메뉴 버튼 추가하기
    • 게임을 하나로 합치기
    • 모바일 개발 문제들
    • 요약

  • 7장. AR 세계 만들기
    • 지도로 돌아가기
    • 싱글톤
    • Google Places API 소개
    • JSON 사용하기
    • Google Places API 서비스 구성하기
    • 마커 만들기
      • 검색 최적화하기
    • 요약

  • 8장. AR 세계와 상호작용하기
    • Place 신
    • Google Street View를 배경으로
    • Google Places API 사진으로 슬라이드쇼하기
    • 판매를 위한 UI 상호작용 추가하기
    • 판매 게임 메카닉
    • 데이터베이스 업데이트하기
    • 흩어진 조각들 연결하기
    • 요약

  • 9장. 게임 마무리하기
    • 남은 주요 개발 작업들
    • 부족한 개발 기술
    • 에셋 정리하기
    • 게임 출시하기
    • 위치 기반 게임의 어려움
    • 위치 기반 멀티플레이어 게임
    • Firebase를 멀티플레이어 플랫폼으로
    • 기타 위치 기반 게임 아이디어
    • 장르의 미래
    • 요약

  • 10장. 문제 해결
    • Console 창
    • 컴파일러 에러와 경고들
    • 디버깅
    • 리모트 디버깅
    • 고급 디버깅
    • 로깅
    • CUDLR
    • 유니티 애널리틱스
    • 장별 이슈들과 해결책
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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