멀티플레이어 게임 프로그래밍 : 북윈도
리뷰 0 위시 120

멀티플레이어 게임 프로그래밍 요약정보 및 구매

네트워크 게임의 아키텍처를 만드는 기술

상품 선택옵션 0 개, 추가옵션 0 개

출판사 길벗
저자 조슈아 글레이저 , 산제이 마드하브
ISBN 9791160501445 (1160501440)
정가 33,000원
판매가 29,700원(10% 할인)
배송비 무료배송
포인트 정책 설명문 닫기

00포인트

포인트 정책 설명문 출력

선택된 옵션

관심상품

상품 정보

사은품
상품 기본설명
네트워크 게임의 아키텍처를 만드는 기술
상품 상세설명
현업 개발자가 알려주는 탄탄한 멀티플레이어 게임 프로그래밍

[리그 오브 레전드], [디스트로이 올 휴먼즈] 시리즈를 컨설팅하고 [로보블리츠], [맥스 액스], [스크랩 포스]를 개발한 조슈아 글레이저와 [메달 오브 아너: 퍼시픽 어썰트], [반지의 제왕: 컨퀘스트], [사보타주] 게임 제작에 참여한 산제이 마드하브가 서던캘리포니아 게임 학과에서 강의한 멀티플레이어 게임 프로그래밍을 책으로 옮겼다. 액션 게임과 실시간 전략 게임을 통해 멀티플레이어 아키텍처를 어떻게 구축하는지, 엔진의 각 부분을 어떻게 만들어야 하는지 설명한다.

목차
1장 네트워크 게임의 개요
__1.1 멀티플레이어 게임의 간추린 역사
____1.1.1 로컬 멀티플레이어 게임
____1.1.2 초기 네트워크 멀티플레이어 게임
____1.1.3 MUD: 멀티 유저 던전
____1.1.4 랜 게임
____1.1.5 온라인 게임
____1.1.6 MMO 게임
____1.1.7 모바일 네트워크 게임
__1.2 [스타시즈: 트라이브스]
____1.2.1 플랫폼 패킷 모듈
____1.2.2 연결 관리자
____1.2.3 스트림 관리자
____1.2.4 이벤트 관리자
____1.2.5 고스트 관리자
____1.2.6 이동 관리자
____1.2.7 기타 시스템
__1.3 [에이지 오브 엠파이어]
____1.3.1 턴 타이머
____1.3.2 동기화
__1.4 요약
__1.5 복습 문제
__1.6 더 읽을거리

2장 인터넷
__2.1 패킷 스위칭의 기원
__2.2 TCP/IP 스택의 계층 구조
__2.3 물리 계층
__2.4 링크 계층
____2.4.1 이더넷/802.3
__2.5 네트워크 계층
____2.5.1 IPv4
____2.5.2 IPv6
__2.6 전송 계층
____2.6.1 UDP
____2.6.2 TCP
__2.7 응용 계층
____2.7.1 DHCP
____2.7.2 DNS
__2.8 NAT
____2.8.1 NAT 투과
__2.9 요약
__2.10 복습 문제
__2.11 더 읽을거리

3장 버클리 소켓
__3.1 소켓 만들기
__3.2 운영체제별 API 차이
__3.3 소켓 주소
____3.3.1 자료형 안전성
____3.3.2 문자열로 sockaddr 초기화하기
____3.3.3 소켓 바인딩하기
__3.4 UDP 소켓
____3.4.1 자료형 안전성을 보강한 UDP 소켓
__3.5 TCP 소켓
____3.5.1 연결된 소켓으로 데이터 보내고 받기
____3.5.2 자료형 안전성을 보강한 TCP 소켓
__3.6 블로킹 I/O와 논블로킹 I/O
____3.6.1 멀티스레딩
____3.6.2 논블로킹 I/O
____3.6.3 select( ) 함수
__3.7 소켓 부가 옵션
__3.8 요약
__3.9 복습 문제
__3.10 더 읽을거리

4장 객체 직렬화
__4.1 직렬화가 필요한 이유
__4.2 스트림
____4.2.1 메모리 스트림
____4.2.2 엔디언 호환성
____4.2.3 비트 스트림
__4.3 참조된 데이터 처리
____4.3.1 임베딩(또는 인라이닝)
____4.3.2 링킹
__4.4 압축
____4.4.1 희소 배열(sparse array) 압축
____4.4.2 엔트로피 인코딩
____4.4.3 고정소수점
____4.4.4 기하 압축
__4.5 유지보수성
____4.5.1 직렬화 읽기와 쓰기를 하나로 합치기
____4.5.2 데이터 주도 직렬화
__4.6 요약
__4.7 복습 문제
__4.8 더 읽을거리

5장 객체 리플리케이션
__5.1 월드 상태
__5.2 객체를 리플리케이션하기
____5.2.1 객체 생성 레지스트리
____5.2.2 한 패킷에 여러 객체 실어 보내기
__5.3 초간단 월드 상태 리플리케이션
__5.4 월드 상태의 변경
____5.4.1 객체 상태 부분 리플리케이션
__5.5 직렬화 객체로 RPC 수행
__5.6 리플리케이션 시스템 개조하기
__5.7 요약
__5.8 복습 문제
__5.9 더 읽을거리

6장 네트워크 토폴로지와 예제 게임
__6.1 네트워크 토폴로지
____6.1.1 클라이언트-서버
____6.1.2 피어-투-피어
__6.2 클라이언트-서버 구현하기
____6.2.1 서버 코드와 클라이언트 코드 분리하기
____6.2.2 네트워크 관리자 및 신규 클라이언트 마중하기
____6.2.3 입력 공유 및 클라이언트 프록시
__6.3 피어-투-피어 구현하기
____6.3.1 신규 피어 마중하기 및 게임 시작하기
____6.3.2 명령 공유와 락스텝 턴
____6.3.3 동기화 유지하기
__6.4 요약
__6.5 복습 문제
__6.6 더 읽을거리

7장 레이턴시, 지터링, 신뢰성
__7.1 레이턴시
____7.1.1 네트워크가 원인이 아닌 레이턴시
____7.1.2 네트워크 레이턴시
__7.2 지터링
__7.3 패킷 손실
__7.4 신뢰성: TCP냐 UDP냐
__7.5 패킷 배달 통지
____7.5.1 외부로 나가는 패킷에 꼬리표 달기
____7.5.2 패킷을 받고 확인응답하기
____7.5.3 확인응답 처리 및 배달 여부 알리기
__7.6 객체 리플리케이션 신뢰성
____7.6.1 이미 전송 중인 최신 상태의 재전송을 막아 최적화하기
__7.7 실제와 유사한 환경을 꾸며 테스트하기
__7.8 요약
__7.9 복습 문제
__7.10 더 읽을거리

8장 레이턴시 대응 강화
__8.1 더미 터미널 클라이언트
__8.2 클라이언트 측 보간
__8.3 클라이언트 측 예측
____8.3.1 데드 레커닝
____8.3.2 클라이언트 이동 예측 및 이동 조작 되새김
____8.3.3 레이턴시를 교묘하게 감추기
__8.4 서버 측 되감기
__8.5 요약
__8.6 복습 문제
__8.7 더 읽을거리

9장 규모 확장에 대응하기
__9.1 객체 스코프 내지 연관성
____9.1.1 스태틱 존
____9.1.2 시야 절두체 사용
____9.1.3 기타 가시성 기법
____9.1.4 보이지 않아도 스코프에 포함되어야 하는 경우
__9.2 서버 파티셔닝
__9.3 인스턴싱
__9.4 우선순위와 빈도
__9.5 요약
__9.6 복습 문제
__9.7 더 읽을거리

10장 보안
__10.1 패킷 스니핑
____10.1.1 중간자 공격
____10.1.2 호스트 머신상 패킷 스니핑
__10.2 입력 검증
__10.3 소프트웨어 치트 감지
____10.3.1 VAC
____10.3.2 워든
__10.4 서버 보안
____10.4.1 디도스 공격
____10.4.2 악성 데이터
____10.4.3 소요 시간 분석 공격
____10.4.4 침입
__10.5 요약
__10.6 복습 문제
__10.7 더 읽을거리

11장 상용 엔진 사례
__11.1 언리얼 엔진
____11.1.1 소켓과 기본 네트워킹
____11.1.2 게임 객체와 토폴로지
____11.1.3 액터 리플리케이션
____11.1.4 원격 프로시저 호출
__11.2 유니티
____11.2.1 전송 계층 API
____11.2.2 게임 객체와 토폴로지
____11.2.3 객체 스폰과 리플리케이션
____11.2.4 원격 프로시저 호출
____11.2.5 매치메이킹
__11.3 요약
__11.4 복습 문제
__11.5 더 읽을거리

12장 게임 서비스 플랫폼
__12.1 게임 서비스 플랫폼 선택하기
__12.2 기본 셋업
____12.2.1 초기화, 구동, 마무리
____12.2.2 유저 ID 및 이름
__12.3 로비 및 매치메이킹
__12.4 네트워킹
__12.5 플레이어 통계
__12.6 플레이어 도전과제
__12.7 리더보드
__12.8 기타 서비스
__12.9 요약
__12.10 복습 문제
__12.11 더 읽을거리

13장 클라우드에 전용 서버 호스팅하기
__13.1 클라우드, 꼭 사용해야 할까
__13.2 필수 도구
____13.2.1 REST
____13.2.2 JSON
____13.2.3 Node.js
__13.3 용어 및 개요
____13.3.1 서버 게임 인스턴스
____13.3.2 게임 서버 프로세스
____13.3.3 게임 서버 머신
____13.3.4 하드웨어
__13.4 로컬 서버 프로세스 관리자
____13.4.1 프로세스 모니터링
__13.5 가상 머신 관리자
____13.5.1 가상 머신 모니터링
__13.6 요약
__13.7 복습 문제
__13.8 더 읽을거리

부록 A 모던 C++ 기초
A.1 C+ +11
A.2 레퍼런스
A.2.1 상수 레퍼런스
A.2.2 상수 멤버 함수
A.3 템플릿
A.3.1 템플릿 특수화
A.3.2 정적 단언문과 자료형 특성 정보
A.4 스마트 포인터
A.4.1 shared_ptr
A.4.2 unique_ptr
A.4.3 weak_ptr
A.4.4 주의 사항
A.5 STL 컨테이너
A.6 반복자
A.6.1 범위 기반 for 구문
A.6.2 반복자 활용하기
A.7 더 읽을거리
출판사 서평
[이 책의 내용]
ㆍ 네트워크 게임의 태동과 그 진화 과정
ㆍ 인터넷 표준과 프로토콜을 게임 개발에 사용하기
ㆍ 멀티플레이어 게임 구현에 가장 널리 이용되는 버클리 소켓 다루기
ㆍ 인터넷 전송에 효율적인 게임 데이터 포맷 정하기
ㆍ 모든 플레이어가 같은 세계를 공유하도록 게임 상태 동기화하기
ㆍ 대규모 게임 구성을 위해 네트워크 토폴로지 조직하기
ㆍ 지연 및 데이터 손실을 초래하는 레이턴시와 지터링 문제 해결하기
ㆍ 게임 서버의 규모가 대형화될 때 성능 문제 해결하기
ㆍ 보안 취약점과 소프트웨어 치트에 대응하기
ㆍ 언리얼 4와 유니티 게임 엔진의 네트워크 기능 활용하기
ㆍ 매치 메이킹, 도전과제, 리더보드 등 게임 플랫폼 서비스에 연동하기
ㆍ 클라우드 환경에서 게임 서버 구동하기[관련 도서]
[프로그래머를 위한 선형대수]
[게임을 움직이는 수학과 물리]
[3D 게임을 움직이는 수학과 물리]
[인프라 엔지니어의 교과서][옮긴이의 말]
이 책을 펼친 여러분이라면 틀림없이 누군가와 멀티플레이어 게임을 하면서 즐거운 시간을 보낸
경험이 있으실 겁니다. 그간 엄청나게 많은 게임이 세상에 선보였고 또 사라져 갔지만, 게이머들
에게 선택받고 오래 사랑받는 작품이 되기 위한 중요한 조건으로, 멋지게 구현된 멀티플레이만 한 게 또 있을까요.
한편 개발자로서 우리는 다양한 상용 엔진을 다루지만, 그 근간의 멀티플레이 로직이 어떻게 구성되어있는지, 왜 그런 설계가 필요했는지 이론적인 배경까지는 깊이 이해할 여유 없이 실무에 임할 때가 많습니다. 학부에서 전공과목 진도를 열심히 따라갔더라도, 막상 필드에서 필요한 내용이 있을 때 대체 그것을 여러 두꺼운 교과서 중 어디에서 봤던가 기억이 가물가물해 난감했던 경험을 가진 분도 계실 겁니다.
이 책에서 다루는 내용은 인터넷 링크 계층이나 스트림 및 바이트 순서 등 기초적이고 이론적인 내용부터 시작해, 데드 레커닝이나 서버 측 되감기 같은 고급 기법에 이르기까지 체계적으로 집대성되어 있습니다. 이를 통해 네트워크 게임을 개발하면서 갖게 될 법한 여러 의문에 대한 답을 얻을 수 있는데요, 쉬운 예로 왜 그간 PC 게임에서 TCP보다 UDP를 선호했는지, 왜 최근의 모바일 게임에선 또 TCP를 그럭저럭 쓰는 건지, 왜 엊그제 플레이한 콘솔 게임에서 랙 때문에 모내기하다 어처구니없게 킬 당했는지, 어떻게 만들었더라면 좀 나았을지 등등 말입니다.
기억이 새롭습니다. 네트워크 게임을 처음 개발할 때 프레임 틱을 어떻게 나누고 다루어야 하나,
입력 처리를 어떻게 해야 반응 속도가 좋으려나 칠판에 쓰고 지우고 또 쓰며 궁리하던 기억. 자꾸만 깨지는 동기화 코드를 밤새도록 디버깅하며 어디 물어볼 사람 하나만 있었으면 하고 답답해했던 기억. 이 책을 처음 읽었을 때, 당시에 고민했던 내용이 주제별로 정리된 것을 보고 무릎을 탁 쳤습니다. 그리고 과거로 타임슬립해서 자리에 한 권 올려놓고 왔으면 싶었습니다.
이제 게임 산업이 성숙하면서 많은 기술이 깔끔한 부품으로 포장되어 그 내부를 속속들이 알지 못하더라도 얼마든지 조립해 출시할 수 있는 시대가 되었습니다. 하지만, 여전히 원천 기술에 대한 이해가 부족하다면 손댈 엄두조차 나지 않는 과제들도 많이 남아있습니다. 이를테면 LTE 환경에서 MTU에 맞게 패킷 크기를 최적화하기, 클라이언트 측 예측을 수행하는 모듈의 ‘한 프레임’ 튀는 버그 잡아내기, 자동 스케일링 걸어놓은 클라우드 인스턴스의 프로세스가 안 죽고 버티는 문제 수정하기 등등. 게임의 완성도를 위해, 그리고 제품의 차별화를 위해, 나아가 생산성 재고 및 비용절감을 위해 시도할 수 있는 기술적 과제는 무궁무진합니다.
이 책의 내용을 충실히 소화한다면 다 해낼 수 있습니다, 라고 하는 건 무리겠지요. 하지만 적어도 여기 실린 내용은 십여 년간 제가 블로그나 논문에서 단편적으로만 접할 수 있던 내용들이 체계적으로 종합되어 있어 매우 도움될 것이라 자부합니다. 앞으로 멀티플레이 구현에 관련된 여러 책이나 글을 볼 계획이시라면, 이 책 한 권 만큼은 기왕 펼치신 김에 꼼꼼히 봐 두실 것을 추천해 드립니다.
번역 도중 궁금점에 대해 친절히 답변해 주시고, 우리나라 독자를 위해 인사 글을 따로 남겨주신
원저자 조슈아 글레이저 님께 감사드립니다(코핑 선생의 가르침을 잊지 않겠습니다). 아울러 출판 여건에도 불구하고 다양한 이론서적을 꾸준히 발굴하여 국내에 소개해 주시는 길벗출판사 여러분께도 감사드립니다. 늘 응원과 사랑을 아끼지 않는 아내 혜화, 그리고 게임 만드는 아빠가 마냥 자랑스러운 아들 지운이와 출간의 보람과 기쁨을 함께하고 싶습니다.[지은이의 말]
네트워크 멀티플레이 게임은 오늘날 게임 산업에서 큰 축을 담당하고 있다. 게임을 즐기는 인구도 오가는 돈도 어마어마하다. 2014년 당시 매달 6천 7백만 플레이어가 《리그 오브 레전드》를 즐기고 있었으며 이 책을 쓰는 시점인 2015년 《DoTA 2》 월드 챔피언십의 상금은 도합 170억 원 규모에 달한다. 멀티플레이 모드 덕분에 대중적 인기를 누리는 《콜 오브 듀티》 시리즈의 경우 매번 출시하기가 무섭게 1조 원 이상의 매상을 올린다. 그간 싱글 플레이만 지원하던 《GTA(Grand Theft Auto)》 시리즈도 드디어 4편부터 네트워크 멀티플레이 요소가 탑재되었다.
이 책에선 네트워크 멀티플레이 게임을 프로그래밍하는 데 필요한 주요 요소를 심도 있게 다룬다. 우선 네트워크의 기초부터 시작해서 인터넷은 어떤 방식으로 동작하고 데이터를 다른 컴퓨터에 보낼 때 내부에서 어떤 일이 일어나는지 알아본다. 기초를 다지고 나면 게임 데이터를 전송하는 기본 방법을 살펴본다. 네트워크로 게임 데이터를 보내기 위해 준비해야 할 것, 네트워크를 통해 게임 객체를 업데이트하는 법, 게임 세션에 참여하는 컴퓨터들을 조직화하고 연결하는 법 등이다. 그다음으로 다룰 내용은 인터넷에 필연적으로 수반되는 비신뢰성(예: 패킷 손실)과 랙을 어떻게 보완할지, 게임의 규모가 커지면 어떻게 대응해야 하는지, 그리고 게임의 보안을 강화하는 방법엔 무엇이 있는지 등이다. 12장과 13장에선 게임 서비스 플랫폼에 연동하는 방법과 전용 서버를 클라우드에 호스팅하는 법을 살펴본다. 이 두 가지 주제는 요즘 네트워크 게임에 있어 특히 중요성이 대두되고 있다.
이 책에선 이러한 주제에 대해 매우 실무적인 방향으로 접근하려 한다. 대부분 내용에서 개념을 다루는 데 그치지 않고 여러분이 직접 독자적인 네트워크 게임 코드를 구축할 수 있도록 실제 동작하는 코드를 제시할 것이다. 구현 예제는 두 가지 장르의 게임 하나씩으로 전체 소스 코드를 웹 사이트에서 다운로드 받을 수 있다. 첫째는 액션 게임이고 둘째는 실시간 전략 게임(RTS)이다. 진도가 나아감에 따라 이들 두 게임이 점점 개량되어 나가는 모습을 책에서 같이 확인할 수 있다.
이 책의 많은 부분은 서던캘리포니아대학교(University of Southern California)의 멀티플레이어 게임 프로그래밍 과정의 커리큘럼에 기초하고 있다. 따라서 멀티플레이어 게임을 개발하는 방법을 배우는 데 있어 어느 정도 검증된 내용이라 할 수 있다. 그렇다고 꼭 대학 교재 용도로 쓴 책은 아니며 네트워크 게임을 엔지니어링하는데 관심 있는 게임 프로그래머라면 누구에게나 가치 있는 내용이라 자부한다.
상품 정보 고시
도서명 멀티플레이어 게임 프로그래밍
저자 조슈아 글레이저 , 산제이 마드하브
출판사 길벗
ISBN 9791160501445 (1160501440)
쪽수 428
출간일 2017-04-26
사이즈 184 * 236 * 24 mm /800g
목차 또는 책소개 1장 네트워크 게임의 개요
__1.1 멀티플레이어 게임의 간추린 역사
____1.1.1 로컬 멀티플레이어 게임
____1.1.2 초기 네트워크 멀티플레이어 게임
____1.1.3 MUD: 멀티 유저 던전
____1.1.4 랜 게임
____1.1.5 온라인 게임
____1.1.6 MMO 게임
____1.1.7 모바일 네트워크 게임
__1.2 [스타시즈: 트라이브스]
____1.2.1 플랫폼 패킷 모듈
____1.2.2 연결 관리자
____1.2.3 스트림 관리자
____1.2.4 이벤트 관리자
____1.2.5 고스트 관리자
____1.2.6 이동 관리자
____1.2.7 기타 시스템
__1.3 [에이지 오브 엠파이어]
____1.3.1 턴 타이머
____1.3.2 동기화
__1.4 요약
__1.5 복습 문제
__1.6 더 읽을거리

2장 인터넷
__2.1 패킷 스위칭의 기원
__2.2 TCP/IP 스택의 계층 구조
__2.3 물리 계층
__2.4 링크 계층
____2.4.1 이더넷/802.3
__2.5 네트워크 계층
____2.5.1 IPv4
____2.5.2 IPv6
__2.6 전송 계층
____2.6.1 UDP
____2.6.2 TCP
__2.7 응용 계층
____2.7.1 DHCP
____2.7.2 DNS
__2.8 NAT
____2.8.1 NAT 투과
__2.9 요약
__2.10 복습 문제
__2.11 더 읽을거리

3장 버클리 소켓
__3.1 소켓 만들기
__3.2 운영체제별 API 차이
__3.3 소켓 주소
____3.3.1 자료형 안전성
____3.3.2 문자열로 sockaddr 초기화하기
____3.3.3 소켓 바인딩하기
__3.4 UDP 소켓
____3.4.1 자료형 안전성을 보강한 UDP 소켓
__3.5 TCP 소켓
____3.5.1 연결된 소켓으로 데이터 보내고 받기
____3.5.2 자료형 안전성을 보강한 TCP 소켓
__3.6 블로킹 I/O와 논블로킹 I/O
____3.6.1 멀티스레딩
____3.6.2 논블로킹 I/O
____3.6.3 select( ) 함수
__3.7 소켓 부가 옵션
__3.8 요약
__3.9 복습 문제
__3.10 더 읽을거리

4장 객체 직렬화
__4.1 직렬화가 필요한 이유
__4.2 스트림
____4.2.1 메모리 스트림
____4.2.2 엔디언 호환성
____4.2.3 비트 스트림
__4.3 참조된 데이터 처리
____4.3.1 임베딩(또는 인라이닝)
____4.3.2 링킹
__4.4 압축
____4.4.1 희소 배열(sparse array) 압축
____4.4.2 엔트로피 인코딩
____4.4.3 고정소수점
____4.4.4 기하 압축
__4.5 유지보수성
____4.5.1 직렬화 읽기와 쓰기를 하나로 합치기
____4.5.2 데이터 주도 직렬화
__4.6 요약
__4.7 복습 문제
__4.8 더 읽을거리

5장 객체 리플리케이션
__5.1 월드 상태
__5.2 객체를 리플리케이션하기
____5.2.1 객체 생성 레지스트리
____5.2.2 한 패킷에 여러 객체 실어 보내기
__5.3 초간단 월드 상태 리플리케이션
__5.4 월드 상태의 변경
____5.4.1 객체 상태 부분 리플리케이션
__5.5 직렬화 객체로 RPC 수행
__5.6 리플리케이션 시스템 개조하기
__5.7 요약
__5.8 복습 문제
__5.9 더 읽을거리

6장 네트워크 토폴로지와 예제 게임
__6.1 네트워크 토폴로지
____6.1.1 클라이언트-서버
____6.1.2 피어-투-피어
__6.2 클라이언트-서버 구현하기
____6.2.1 서버 코드와 클라이언트 코드 분리하기
____6.2.2 네트워크 관리자 및 신규 클라이언트 마중하기
____6.2.3 입력 공유 및 클라이언트 프록시
__6.3 피어-투-피어 구현하기
____6.3.1 신규 피어 마중하기 및 게임 시작하기
____6.3.2 명령 공유와 락스텝 턴
____6.3.3 동기화 유지하기
__6.4 요약
__6.5 복습 문제
__6.6 더 읽을거리

7장 레이턴시, 지터링, 신뢰성
__7.1 레이턴시
____7.1.1 네트워크가 원인이 아닌 레이턴시
____7.1.2 네트워크 레이턴시
__7.2 지터링
__7.3 패킷 손실
__7.4 신뢰성: TCP냐 UDP냐
__7.5 패킷 배달 통지
____7.5.1 외부로 나가는 패킷에 꼬리표 달기
____7.5.2 패킷을 받고 확인응답하기
____7.5.3 확인응답 처리 및 배달 여부 알리기
__7.6 객체 리플리케이션 신뢰성
____7.6.1 이미 전송 중인 최신 상태의 재전송을 막아 최적화하기
__7.7 실제와 유사한 환경을 꾸며 테스트하기
__7.8 요약
__7.9 복습 문제
__7.10 더 읽을거리

8장 레이턴시 대응 강화
__8.1 더미 터미널 클라이언트
__8.2 클라이언트 측 보간
__8.3 클라이언트 측 예측
____8.3.1 데드 레커닝
____8.3.2 클라이언트 이동 예측 및 이동 조작 되새김
____8.3.3 레이턴시를 교묘하게 감추기
__8.4 서버 측 되감기
__8.5 요약
__8.6 복습 문제
__8.7 더 읽을거리

9장 규모 확장에 대응하기
__9.1 객체 스코프 내지 연관성
____9.1.1 스태틱 존
____9.1.2 시야 절두체 사용
____9.1.3 기타 가시성 기법
____9.1.4 보이지 않아도 스코프에 포함되어야 하는 경우
__9.2 서버 파티셔닝
__9.3 인스턴싱
__9.4 우선순위와 빈도
__9.5 요약
__9.6 복습 문제
__9.7 더 읽을거리

10장 보안
__10.1 패킷 스니핑
____10.1.1 중간자 공격
____10.1.2 호스트 머신상 패킷 스니핑
__10.2 입력 검증
__10.3 소프트웨어 치트 감지
____10.3.1 VAC
____10.3.2 워든
__10.4 서버 보안
____10.4.1 디도스 공격
____10.4.2 악성 데이터
____10.4.3 소요 시간 분석 공격
____10.4.4 침입
__10.5 요약
__10.6 복습 문제
__10.7 더 읽을거리

11장 상용 엔진 사례
__11.1 언리얼 엔진
____11.1.1 소켓과 기본 네트워킹
____11.1.2 게임 객체와 토폴로지
____11.1.3 액터 리플리케이션
____11.1.4 원격 프로시저 호출
__11.2 유니티
____11.2.1 전송 계층 API
____11.2.2 게임 객체와 토폴로지
____11.2.3 객체 스폰과 리플리케이션
____11.2.4 원격 프로시저 호출
____11.2.5 매치메이킹
__11.3 요약
__11.4 복습 문제
__11.5 더 읽을거리

12장 게임 서비스 플랫폼
__12.1 게임 서비스 플랫폼 선택하기
__12.2 기본 셋업
____12.2.1 초기화, 구동, 마무리
____12.2.2 유저 ID 및 이름
__12.3 로비 및 매치메이킹
__12.4 네트워킹
__12.5 플레이어 통계
__12.6 플레이어 도전과제
__12.7 리더보드
__12.8 기타 서비스
__12.9 요약
__12.10 복습 문제
__12.11 더 읽을거리

13장 클라우드에 전용 서버 호스팅하기
__13.1 클라우드, 꼭 사용해야 할까
__13.2 필수 도구
____13.2.1 REST
____13.2.2 JSON
____13.2.3 Node.js
__13.3 용어 및 개요
____13.3.1 서버 게임 인스턴스
____13.3.2 게임 서버 프로세스
____13.3.3 게임 서버 머신
____13.3.4 하드웨어
__13.4 로컬 서버 프로세스 관리자
____13.4.1 프로세스 모니터링
__13.5 가상 머신 관리자
____13.5.1 가상 머신 모니터링
__13.6 요약
__13.7 복습 문제
__13.8 더 읽을거리

부록 A 모던 C++ 기초
A.1 C+ +11
A.2 레퍼런스
A.2.1 상수 레퍼런스
A.2.2 상수 멤버 함수
A.3 템플릿
A.3.1 템플릿 특수화
A.3.2 정적 단언문과 자료형 특성 정보
A.4 스마트 포인터
A.4.1 shared_ptr
A.4.2 unique_ptr
A.4.3 weak_ptr
A.4.4 주의 사항
A.5 STL 컨테이너
A.6 반복자
A.6.1 범위 기반 for 구문
A.6.2 반복자 활용하기
A.7 더 읽을거리
배송공지

사용후기

회원리뷰 총 0개

사용후기가 없습니다.

상품문의

등록된 상품문의

상품문의 총 0개

상품문의가 없습니다.

교환/반품

[반품/교환방법]
마이페이지> 주문배송조회 > 반품/교환신청 또는 고객센터 (070-4680-5689)로 문의 바랍니다.

[반품주소]
- 도로명 : (10882) 경기도 파주시 산남로 62-20 (산남동)
- 지번 : (10882) 경기도 파주시 산남동 305-21

[반품/교환가능 기간]
변심반품의 경우 수령 후 14일 이내, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

[반품/교환비용]
단순 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담

[반품/교환 불가 사유]
- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
(단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
- 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
* (1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시
‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)

[상품 품절]
공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.

[소비자 피해보상, 환불지연에 따른 배상]
- 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됩니다.
- 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함.

회원로그인

오늘 본 상품

  • 멀티플레이어 게임 프로그래밍
    멀티플레이어 게임
    29,700