해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
책 소개
이 책이 속한 분야
- 국내도서 > 컴퓨터/IT > 게임 > 게임개발 > 유니티
- 국내도서 > 컴퓨터/IT > 프로그래밍 언어 > 프로그래밍일반
- 국내도서 > 컴퓨터/IT > 대학교재
- 국내도서 > 대학교재 > 컴퓨터
작가정보
저자(글) 가와다 마사토시
저자 가와다 마사토시는 2009년 반다이 남코 게임즈 입사. 현재 반다이 남코 스튜디오 소속으로 사내 미들웨어와 온라인 게임을 주로 제작했다. 아날로그 모뎀 시절에는 PC용 온라인 레이싱 게임 제작을 시작으로 블로그 시스템을 개발했으며 오락실용 비디오 게임으로 온라인 액션 RPG를 제작할 때는 프로그래머, 게임 디자이너로 참여했다. 최근에는 가정용 온라인 격투 게임과 온라인 스포츠 게임을 제작하고 있다.
번역 김성재
역자 김성재는 평소 IT 기술에 관심이 많아 컴퓨터 기술 분야의 전문 번역가로 활동하고 있다. 최근에는 건강의 소중함을 새삼 깨닫고 다이어트 앱의 도움을 받아 틈틈이 운동도 병행하며 균형 잡힌 삶을 위해 노력 중이다. 옮긴 책으로는 《인프라 엔지니어의 교과서》 《게임 수학&물리 입문》 《왜 게임에 빠질까》 《유니티 게임 제작 입문》 등이 있다.
작가의 말
1993년 세가(SEGA) 사에서 '버추얼 파이터'가 발매되었습니다. 그때 텔레비전으로 이 게임을 처음 봤을 때, “어떻게 이런 게임을 만들 수 있을까!”라고 감탄했습니다. 그리고 그 기술을 배우기 위해 게임 업계에 발을 들여놓게 되었습니다. 당시에는 3D 폴리곤 게임을 만드는 기술이 기업에만 있었고, 지금처럼 참고할 책이 많은 환경도 아니었기 때문입니다. 그로부터 20년쯤 지난 오늘날 3D 게임은 게임 프로그래머에게 당연한 기술이 되었습니다.
2000년에 DirectX가 버전 8로 올라가면서, 3D 표현을 향상시키는 셰이더(shader)가 등장했습니다. 당시 셰이더 프로그래밍을 할 수 있는 사람은 몇 안 되는 기술자뿐이었습니다. 관련 서적도 외국어 책이 몇 권 있는 정도라서 예제 프로그램으로 학습하는 수밖에 없었습니다. 하지만 지금은 셰이더를 다룰 수 있는 프로그래머가 많아졌고, 셰이더를 사용할 수 없는 프로그래머는 시대에 뒤처지고 있습니다.
요즘은 네트워크 인프라가 갖추어져 게임에서도 온라인을 지원합니다. PC, 스마트폰, 가정용 게임기, 휴대용 게임기 등 거의 모든 게임 환경에 네트워크 기능이 있습니다. 환경이 변하면서 온라인이 지원되는 게임을 이제는 당연하게 여기게 되었습니다. 언제 어디서나 온라인 게임을 즐길 수 있게 된 것입니다. 가정용 게임기에서는 초고속 인터넷을 이용한 대규모 온라인 게임도 가능해졌습니다.
이처럼 최근 게임에서는 온라인이 반드시 지원돼야 하지만, 프로그래머 관점에서 보면 기초적인 네트워크 프로그램을 다룰 수 있는 프로그래머는 있어도 온라인 게임 자체를 제작할 수 있는 프로그래머는 극히 적습니다. 비디오 게임이 3D로 전환하기 시작한 무렵이나 셰이더가 등장하기 시작한 무렵처럼 현재 온라인 게임을 만들 수 있는 프로그래머는 여전히 모자란 상황입니다.
3D 그래픽과 셰이더가 걸어온 역사는 네트워크에서도 다시 반복될 것입니다. 온라인 게임을 제작하는 능력이 당연한 시대가 옵니다. 현재는 아직 온라인 게임을 다룬 책이 많지 않습니다. 이 책이 그 부족함을 채우는 데 도움이 되면 좋겠습니다. - 저자 가와다 마사토시
지은이가 책에서 지적한 것처럼 저 역시 이 책을 읽기 전까지는 오프라인 게임에 통신 기능을 더하고 조금만 수정하면 온라인 게임이 만들어지는지 알고 있었습니다. 통신에 관해서는 프로그래밍을 배울 때 한 번씩 만들어보는 채팅 애플리케이션 정도의 네트워크 지식밖에 없었기에 떠올릴 수 있는 무지한 발상이었지요. 온라인 게임을 만들려면 여러 사람, 아니 단둘이 플레이하는 게임에서조차 얼마나 많은 것을 고려해야 하는지 이 책을 통해서 이제 조금 알게 된 느낌입니다. 이 책의 큰 특징은 책 제목에서도 알 수 있듯이 네트워크 게임 개발에 꼭 필요한 지식을 기초부터 튼튼하게 쌓아 올릴 수 있다는 점입니다. 당연히 유니티를 기반으로 설명되어 있지만, 꼭 유니티에만 적용되는 내용이 아니라 온라인 게임을 개발하고자 하는 모든 분에게 도움이 될 만한 내용입니다. 온라인 게임이 가진 근본적인 문제들을 이야기하면서 왜 온라인 게임은 게임 디자인 단계부터 달라야 하는지, 어떤 정보를 주고받아야 하는지, 어떻게 주고받아야 하는지를 비교적 통신 사양이 간단한 게임에서 시작하여 꽤 복잡한 게임까지 예를 들어 자세히 설명하고 있습니다. 먼저 학습해본 학습자의 입장에서 볼 때 내용이 쉽지는 않지만, 반복해서 본다면 분명히 본격적인 온라인 게임을 개발하는 데 든든한 기반이 되어 줄 것이라고 생각합니다. 드디어 연이어 작업한 세 권의 유니티 게임 프로그래밍 책 중 마지막 권이 끝났습니다. 한동안 이책과 함께 했던 탓인지 요즘은 게임을 할 때 “여기서는 이런 정보를 주고받고 있겠지?” “어떤 정보가 동기화되고 있을까?”라고 상상하는 버릇이 생겼습니다. 이 책을 통해 독자 여러분이 하나라도 필요한 지식을 얻으실 수 있다면 옮긴이로서 가장 큰 기쁨이 될 것입니다. 마지막으로 번역 작업 내내 제 길벗이 되어주신 이원휘 편집자님께 깊이 감사드립니다. 함께 일하면서 많이 배울 수 있었습니다! - 역자 김성재
목차
- 1장 온라인 게임을 만들자
__1.1 온라인 게임 제작의 실제
____온라인 게임은 쉽게 만들 수 있다
____비극은 현장에서 일어난다
____오프라인 모드와 온라인 모드는 다르다
____데이터는 곧바로 전달되지 않는다
____오프라인 게임과 온라인 게임의 게임 디자인 차이
____비극에서 벗어나려면
__1.2 온라인 게임 제작의 기초
____온라인 게임의 통신 방식
____온라인 게임의 게임 디자인
____데이터의 흐름을 경과 시간으로 생각하자
____일대일 대전은 네 명이 싸운다?
____오류도 사양의 하나
____정답은 하나가 아니다
__1.3 이 책에 대해서
____이 책의 구성
____예제 게임
____용어 설명
____캐릭터 소개
2장 통신 프로그램의 기초 지식
__2.1 피해갈 수 없는 통신의 구조
____데이터는 어떻게 전달되는가
____데이터가 사라진다?
__2.2 프로토콜 이해하기
____안심할 수 있는 TCP
____TCP의 장점과 단점
____속도가 빠른 UDP
____UDP의 장점과 단점
____온라인 게임에서 사용하는 프로토콜
__2.3 알아두면 좋은 기초 지식
____지연은 반드시 발생한다
____통신량을 생각해보자
3장 통신 프로그램을 만들자
__3.1 소켓 프로그래밍을 시작하자
____소켓이란?
____TCP 소켓 프로그래밍
____UDP 소켓 프로그래밍
__3.2 네트워크 바이트 오더
____네트워크 바이트 오더란?
____네트워크 바이트 오더를 고려한 데이터 송수신
__3.3 간단한 통신 라이브러리를 만들어보자
____왜 라이브러리를 만드는가?
____API를 검토하자
____이벤트 처리
____스레드를 사용해보자
____실제 라이브러리 작성
__3.4 정리
4장 채팅 프로그램을 만들자
__4.1 채팅 프로그램의 프로세스
____채팅이 진행되는 과정을 생각해보자
____대화 과정을 생각해보자
__4.2 채팅 프로그램을 만들자
____시작부터 접속까지
____채팅 메시지 통신 프로그램
__4.3 정리
5장 턴 방식 게임: 온라인 틱택토
__5.1 어떻게 플레이할지 생각해보자
____단말 한 대에서 플레이하는 경우
____단말 두 대에서 플레이하는 경우
__5.2 무엇을 언제 통신할지 생각해보자
____무엇을 통신할 것인가?
____언제 통신할 것인가
__5.3 프로그램으로 동작시켜보자
____처리 프로세스를 정리하자
____프로그램을 작성하자
__5.4 게임 디자인을 생각해보자
____타임아웃 프로그래밍 방법
__5.5 오류 처리
__5.6 정리
6장 깜찍한 액션 게임: 액션 가위바위보!
__6.1 게임 디자인을 생각해보자
____개요부터 세부 사항까지
____가위바위보의 규칙을 정하자
____액션의 규칙을 결정하자
____오프라인에서 온라인으로
__6.2 무엇을 언제 통신할 것인지 생각해보자
____가위바위보 부분에서 무엇을 보낼지 생각해보자
____액션 부분에서 무엇을 보낼지 생각해보자
__6.3 액션 게임의 동작을 생각해보자
____액션 게임에서 발생하는 문제
____자연스러운 문제 해결 방법
__6.4 프로그램을 만들어보자
____전체 프로세스를 생각해보자
____가위바위보 부분의 통신
____액션 부분의 통신
__6.5 정리
7장 키 입력 동기 통신 게임: 블록 깨기
__7.1 키 입력을 동기화하자
____키 입력 동기 구조
____키 입력 동기의 상태 관리
____컨트롤러 정보의 추상화와 송신 정보
__7.2 통신 지연을 고려한 키 입력 동기 구조
____키 입력 지연
____키 입력 지연을 고려한 상태 관리
____오류 대책을 생각하자
__7.3 통신 방식을 생각해보자
____UDP로 통신해보자
____중복 데이터 재송신으로 패킷 유실도 문제없다
__7.4 프로그램을 동작시켜보자
____패킷과 시리얼라이저
____엔디언 판정
____키 입력 동기 구조를 만들자
____키 입력 정보 가져오기
____키 입력 정보의 송수신
____게임이 끝나도 종료되지 않는다?
____키 입력 정보와 시리얼라이저
__7.5 통신 프로그램의 동작 확인과 디버깅 방법
____입력 지연과 지연 에뮬레이터
____통신 디버깅 방법
__7.6 정리
8장 모형 정원 커뮤니케이션 게임
__8.1 게임 디자인을 생각해보자
____전체 프로세스를 생각해보자
____접속에 관한 게임 디자인
____출현에 관한 게임 디자인
____캐릭터 이동에 관한 게임 디자인
____아이템에 관한 게임 디자인
____오류에 관한 게임 디자인
__8.2 통신할 것을 검토해보자
____무엇을 통신할지 생각해보자
____캐릭터 이동에서 통신할 정보
____아이템 획득에서 통신할 정보
____채팅에서 통신할 정보
____언제 정보를 반영할지 생각해보자
__8.3 모듈 구성을 생각해보자
____캐릭터 모듈
____아이템 모듈
__8.4 정보를 어떻게 통신할지 생각해보자
____친구가 플레이하러 왔을 때의 동기화
____캐릭터 좌표의 동기화
____프레임 추출과 보간
____스플라인 보간에 따른 캐릭터 이동
____아이템 획득
____아이템 폐기
__8.5 프로그램을 만들어보자
____통신 모듈을 만들자
____패킷을 간단히 송신하자
____전체 프로세스를 확인해보자
____서버 시작과 접속 대기
____게임 시작 전 동기 통신
____캐릭터 매니저를 만들자
____캐릭터 제어와 동작
____캐릭터 좌표의 통신
____캐릭터 좌표 보간
____캐릭터 이사
____아이템 매니저를 만들자
____게임 서버의 아이템 조정
____아이템 획득
____채팅
____게임 서버와 게임 애플리케이션의 공존
__8.6 정리
9장 멀티 플레이어 액션 게임
__9.1 전체 프로세스를 생각해보자
____게임 전체의 프로세스
____게임 전체의 프로세스 + 통신
__9.2 매칭 서버를 만들자
____매칭 서버란?
____매칭 과정
____서버와 클라이언트가 통신할 정보
____클라이언트의 처리
____매칭 서버의 처리
____매칭 오류 대응
__9.3 네트워크 토폴로지를 검토하자
____네트워크 토폴로지란?
____예제 게임의 네트워크 토폴로지
__9.4 매칭 완료부터 게임 시작까지
____매칭 완료와 플레이어에게 알리기
____게임 서버 시작
____플레이어 ID와 세션 관리 ID
____캐릭터에 표시를 하자
____난수 생성과 인스턴스화
____게임 시작에 필요한 정보를 보내자
__9.5 게임을 시작하자
____캐릭터가 나타날 위치
____리모트 캐릭터 이동
____몬스터 이동
____캐릭터의 공격과 몬스터의 대미지
____몬스터의 공격과 캐릭터의 대미지
____방 이동
____제너레이터의 동기화
__9.6 던전에 있는 편리한 아이템을 활용하자
____여러 가지 아이템 장치
____아이템 사용
____소다 아이스바는 당첨되면 하나 더
____장비의 동기화
____소환수를 불러보자
__9.7 보스와 싸우자
____보스의 이동
____보스의 공격과 대미지
__9.8 마지막 즐거움
____보너스 게임: 케이크 쟁탈전
____오류 대책을 생각하자
__9.9 프로그램을 만들어보자
____매칭 서버를 만들자
____매칭 클라이언트를 만들자
____세션을 관리하자
____게임 시작 전 동기화
____캐릭터가 나타나는 위치
____캐릭터 충돌
____방 이동 방법
____아이템 사용과 무기 변경
____소환수 부르기
____보스의 이동과 공격
____보너스 게임
__9.10 정리
샘플 게임 데이터 제작 스태프
찾아보기
출판사 서평
[간단한 책 소개]
전문가가 1:1로 알려주는 네트워크 프로그래밍의 기초와 활용
‘나도 온라인 게임을 만들어 보고 싶다.’는 막연한 생각을 반다이 남코 프로그래머와 함께라면 실제로 이룰 수 있다! 먼저 온라인 게임을 만들 때 필요한 통신의 기초 지식을 배우고, 5가지 게임(온라인 틱택토, 액션 가위바위보, 블록 깨기, 모형 정원 커뮤니케이션 게임, 멀티 플레이어 액션 게임)을 게임 디자인부터 실제 구현까지 단계별로 살펴본다. 마치 1:1로 강습받는 것처럼 각 과정을 하나하나 짚어가면서 네트워크 프로그래밍의 기초부터 활용하는 방법까지 알려준다.
[출판사 리뷰]
나도 온라인 게임을 만들 수 있을까?
온라인 게임은 누구나 쉽게 만들 수 있다. 단, 오프라인 게임과 온라인 게임의 게임 디자인 차이를 이해해야 한다. ‘오프라인 게임을 만들고 네트워크 기능만 추가하면 온라인 게임’이라는 생각은 망하는 지름길이다. 각 장에서는 ‘만들고자 하는 게임의 게임 디자인을 어떻게 할 것인가’부터 시작한다. 그리고 프로그램을 차례대로 만들어가며 게임 제작 과정을 설명한다. 설명을 따라가면 온라인 게임 고유의 게임 디자인 방법과 게임 디자인을 ‘왜 그렇게 해야만 하는지’를 배울 수 있다.
네트워크 프로그래밍은 처음? 기초부터 활용하는 방법까지!
온라인 게임을 만들 때 데이터 통신의 기초 지식은 필수이므로 피해갈 수 없다. ‘통신=어렵다’는 선입관을 버릴 수 있도록 패킷, IP 주소, TCP, UDP, 지연, 대역 등 기본 사항을 차근차근 단계별로 살펴본다. 데이터를 주고받는 과정을 이해한 다음에는 이와 같은 기초 지식이 게임 디자인에 따라 어떤 방식으로 활용되는지 설명한다.
게임 디자인에 따라 통신 방식이 달라진다.
게임을 제작할 때는 게임 디자인을 가장 먼저 결정해야 한다. 게임 디자인을 결정할 때는 전체 프로세스는 어떻게 되는가? 플레이는 어떻게 진행되는가? 무엇을 언제 통신해야 하는가? 와 같은 큰 그림을 생각한 뒤, 캐릭터는 어떻게 이동하는가? 액션의 규칙은 어떻게 정할 것인가? 아이템은 어떻게 관리할 것인가? 와 같이 작은 그림을 완성해간다. 결정한 게임 디자인에 맞게 통신 방식을 적용한다. 온라인 틱택토(턴 대전 방식), 액션 가위바위보(통신 지연 해결), 블록 깨기(키 입력 동기화), 모형 정원 커뮤니케이션 게임(비동기 통신), 멀티 플레이어 액션 게임(매칭 서버)이라는 5가지 게임 디자인을 통해 다양한 통신 방식을 설명한다.
[이 책의 대상 독자]
- 신입/초보 서버 개발자, 온라인 게임 개발의 기초를 배우고 싶은 학생
- 신입/초보 온라인 게임 기획자(게임 디자인 및 게임 운영 방식에 대한 기초 학습 가능)
[예제소스 다운로드]
https://github.com/gilbutITbook/006772
기본정보
ISBN | 9791186659144 | ||
---|---|---|---|
발행(출시)일자 | 2015년 08월 04일 | ||
쪽수 | 336쪽 | ||
크기 |
183 * 235
* 18
mm
/ 788 g
|
||
총권수 | 1권 | ||
원서명/저자명 | オンラインゲ-ムのしくみ UNITYで覺えるネットワ-クプログラミング/河田匡稔 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립