출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

ISBN : 9788960777392 / 288쪽 188 x 235 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
성구(강성규)
-
김현철, 신은경, 이민정, 박선우, 정기민, 곽소아, 정문수
-
클리커, 강민혁
- 21,600
- 21,420
- 21,600
- 23,400
출판사 리뷰
★ 요약 ★ 이제는 유니티 게임에서도 멀티플레이 네트워크 기능은 필요불가결한 요소가 됐다. 이 책은 플레이어 호스팅 게임에서부터 독립적인 전용 서버와 클라우드 멀티플레이어 기술에 이르기까지, 다양한 네트워킹 미들웨어를 활용해서 유니티 게임 엔진으로 멀티플레이 네트워크 게임을 제작하는 방법에 대한 실용적 안내서다. 이 책은 복잡한 멀티플레이 게임의 구현 기법을 기본적인 구성요소로 나눠서 알기 쉽게 설명한다. ★ 이 책에서 다루는 내용 ★ ■ 유니티 네트워킹을 이용해서 게임 내에서 플레이어가 게임을 호스팅하는 방법 ■ 포톤 클라우드를 이용한 클라우드 기반 게임 개발 ■ 대규모 멀티 플레이어 환경 구현을 위한 전용 서버의 활용 ■ 서버 권한 집중형 게임 로직 개발 ■ 지연 및 신뢰성 없는 네트워크에 대한 대처 방법 ■ HTTP 기반의 푸시 메시징을 위한 펍넙 활용 ■ 게임 데이터를 클라우드에 보존하기 위한 Player.IO 활용 ■ 네트워크 개체 보간을 위한 다양한 기법 활용 ★ 이 책의 대상 독자 ★ 이 책은 유니티 게임 엔진으로 멀티플레이어 게임 개발의 첫걸음을 내딛으려는 개발자들을 대상으로 한다. 독자는 프로그래밍에 대해서는 기초적인 경험을 가지고 있어야 하며, 유니티 IDE에 대한 사전 지식이 꼭 필요하지는 않다. ★ 이 책의 구성 ★ 1장, '유니티 네트워킹: 퐁 게임'에서는 신뢰성 있는 UDP 통신의 개념과 게임에서 채용되는 다양한 유형의 서버를 소개한다. 유니티 네트워킹을 살펴보고 퐁과 유사한 2인용 네트워크 게임을 제작해 본다. 2장, '포톤 유니티 네트워킹: 채팅 클라이언트'에서는 유니티 네트워킹의 서드파티 대안을 다루면서, 클라우드에서 호스팅되는 게임 서버, 간단한 매치메이킹, 친구 목록의 개념을 소개한다. 추가로 간단한 채팅 클라이언트 개발까지 다룬다. 3장, '포톤 서버: 별 수집 게임'에서는 게임을 위한 전용 서버를 소개한다. 그리고 포톤 서버 애플리케이션 개발, 서버 접속, 요청/응답/이벤트 시스템을 이용한 통신 및 간단한 별 수집 게임을 제작해 본다. 4장, 'Player.IO: 봇 전쟁'에서는 또 다른 전용 서버 시스템을 다룬다. Player.IO의 데이터베이스 기능, Player.IO 서버를 생성하는 방법, 유니티에서 접속하는 방법 그리고 사용자 스탯이 보존되는 간단한 RTS 스타일의 게임 제작을 다룬다. 5장, '펍넙: 통합 채팅 상자'에서는 HTTP 메시징 서비스를 이용한 통신을 소개한다. 통신용으로서 HTTP의 장점과 유의사항, WWW 클래스를 이용한 펍넙 통신 개발 및 채팅방 애플리케이션 제작을 다룬다. 6장, '개체 보간과 예측'에서는 서버 사이드 이동 물리 처리, 그에 따른 잠재적인 이슈와 해결책을 소개한다. 클라이언트 사이드 이동 예측과 원격 개체의 움직임을 부드럽게 처리하는 방법을 살펴본다. 7장, '서버 사이드 명중 탐지'에서는 총격 스타일 게임을 위한 서버 사이드 명중 탐지 개념을 소개한다. 많은 온라인 게임에서 일어나는 표적 예측 문제의 배경 논리와 게임 상태를 되감아서 이 문제를 해결하는 방법을 설명한다.
★ 지은이의 말 ★
이 책에서는 유니티 게임 엔진으로 멀티플레이어 네트워크 게임을 개발하는 데 관련된 개념과 미들웨어들을 단계적으로 안내하고자 한다. 나는 한동안 멀티플레이어 게임의 열광적인 팬이었다. 멀티플레이어 게임은 우리들의 원초적 욕망에 호소할 수 있는 수단을 갖추고 있다. 또한, 경쟁 욕구, 협력 욕구 그리고 그 무엇보다 사람들과 함께 어울리고 싶어하는 욕구를 충족시켜주며, 이런 욕구의 충족은 싱글플레이어 게임에서는 제공될 수 없는 것이다.
나는 유니티에서 광범위한 네트워킹 플러그인과 애플리케이션을 경험해 봤다. 새로운 네트워킹 시스템을 배울 때면 언제나 난관과 문제들이 존재했다. 같은 길을 걷고 있는 다른 이들을 돕고, 그들이 내가 겪었던 문제들을 극복하는 데 도움을 주고 싶은 마음에 이 책을 쓰게 됐다.
★ 옮긴이의 말 ★
PC 온라인 게임에서뿐만 아니라 최근에는 모바일 게임에서도 멀티플레이가 빠질 수 없는 요소가 됐다. 실시간 PVP나 파티플레이가 핵심적인 게임 모드로 등장하기 시작했으며, 실시간 멀티플레이를 지원하지 않더라도 비동기적인 방식으로 다른 유저와의 경쟁 또는 협력 플레이를 지원하지 않는 상용 게임은 찾아보기 어렵다. 아무리 뛰어난 AI라도 실제 사람을 상대하는 것만큼 지속적인 흥미를 불러일으킬 수는 없기 때문이다. 이와 같은 다른 유저와의 상호작용이라는 게임의 핵심 재미 요소 외에도 부분 유료화 게임에서는 해킹 방지 때문에 서버 사이드 구현이 부각될 수밖에 없는 상황이다. 클라이언트만으로 끊임없이 발전하는 해킹 기법에 대응하기는 원천적으로 불가능하기 때문에, 게임의 핵심 로직을 서버 사이드로 옮기는 것이 개발사들에는 매우 중요한 과제가 되고 있다.
이렇듯 모바일 게임에서도 네트워크와 서버 사이드 구현이 필수적인 기술로 부각된 지가 꽤 됐음에도 불구하고, 국내에서는 유니티나 모바일 환경에서 네트워크 게임 구현 기술을 전문적으로 다룬 서적은 전무한 실정이다.
이 책은 멀티플레이 모드와 해킹 방지를 위한 서버 사이드 구현에 어려움을 겪고 있는 일선의 유니티 개발자들에게 좋은 참고서적이 될 수 있으리라 생각한다.
이 책에서는 기본적인 네트워킹 구현 외에 개발 현장에서 응용할 수 있는 중요하고도 흥미로운 기법까지 다룬다. 우선, 유니티에 내장된 네트워킹 기능뿐만 아니라 포톤 네트워킹 같은 서드파티 네트워킹 미들웨어에 대해서도 다룬다. TCP/UDP 기술 외에도 펍넙 기반의 HTTP 기술을 이용하여 최근 거의 모든 게임에서 빠짐없이 등장하는 채팅 기능의 구현 기법을 보여준다.
또한 개체 보간과 클라이언트 사이드 예측을 통해 랙에 좀 더 매끄럽게 대처할 수 있는 게임을 구현하는 기법을 알려주고, 클라이언트 해킹에 대응하기 위한 서버 사이드 명중 탐지 기법을 알려준다.
이와 같은 기법들을 퐁 게임이나 간단한 RTS 게임과 같은 실전적 예제들을 통해 설명하기 때문에, 실전 프로젝트에 손쉽게 응용할 수 있다. 이 책이 독자들의 유니티 네트워크 게임에 실질적 도움이 되기를 기대한다.
1장 유니티 네트워킹: 퐁 게임
__멀티플레이어 게임 소개
__UDP 통신 소개
__마스터 서버 설정
__NetworkView와 상태 직렬화
__커스텀 상태 직렬자 작성
__RPC 사용
__서버 초기화
__서버 접속
__마스터 서버 접속
__마스터 서버를 이용한 서버 등록
__이용 가능한 서버 살펴보기
__전용 서버 모델 구축
____유니티에서의 서버
____컴파일러 지시자
________프로 버전이 아닌 경우의 서버 콘솔 구축
__네트워크에 접속된 레벨의 로딩
__멀티플레이어 퐁 게임 제작
____필드 준비
____Ball 스크립트
____Paddle 스크립트
____점수 기록
____플레이어의 점수 표시
____게임 네트워킹 작업
____막대 등장시키기
____공의 네트워크 연결
____점수 기록의 네트워크 연결
____접속 화면
__요약
2장 포톤 유니티 네트워킹: 채팅 클라이언트
__PUN과 유니티 네트워킹의 차이점
__포톤 클라우드를 이용한 PUN 구축
__Photonview 이용
__포톤에 접속하고 방 목록 얻기
__방 생성과 참여
____방 생성
____방 참여
__사용자 기호에 따른 결과 필터링
____필터링 배열
____방 목록의 필터링과 캐싱
__자동 매치메이킹
__친구 찾기
__플레이어 사이의 레벨 동기화
__채팅 클라이언트 개발
____접속 화면
____로비 화면
____채팅방
________친구 목록 추가
__요약
3장 포톤 서버: 별 수집 게임
__전용 서버
__포톤 서버를 구하는 방법
__서버 애플리케이션 개발
____클래스 라이브러리 개발
____오퍼레이션 요청에 대한 응답
____서버 코드의 배포
__유니티에서 접속하고 메시지 전달하기
__게임 로직 클래스 개발
__플레이어 ID 할당
__별 수집 게임 제작
____클래스 라이브러리 준비
____Actor 클래스
____플레이어에게 ID 전송
____게임 상태 추적
____별의 등장과 획득
____이벤트 브로드캐스트
____유니티에서 접속하기
____액터의 생성과 소멸
____플레이어 제어
__요약
4장 Player.IO: 봇 전쟁
__Player.IO vs 포톤 서버
__개발 서버 준비
__유니티 클라이언트 SDK 준비
__Player.IO 접속
__방 목록 얻기
____방 접속
__방 생성
__랜덤 매치메이킹
__메시지 송수신
____서버 사이드 코드
__BigDB 이용
__간단한 RTS 프로토타입 제작
____서버 사이드 코드
____클라이언트 사이드 코드
__요약
5장 펍넙: 통합 채팅 상자
__펍넙의 개요
__시작하기
__펍넙의 작동
__펍넙에서 보낸 JSON 파싱
__펍넙 인터페이스 개발
__통합 채팅 애플리케이션 개발
____채팅 메시지 게시
____채팅 로그의 표시
__요약
6장 개체 보간과 예측
__개체 보간
__클라이언트 사이드 예측
__리지드바디 시뮬레이션
__네트워크 접속 오브젝트 생성
__기초적 보간의 추가
__보간의 개선
__서버 권한 집중형 이동의 준비
__서버 권한 집중형 이동의 구현
__해킹에 대한 참고사항
__요약
7장 서버 사이드 명중 탐지
__클라이언트 사이드 vs 서버 사이드 명중 탐지
__테스트베드 제작
__명중 탐지를 서버로 이전하기
__개체 되감기
__요약











































