서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
유니티 네트워크 프로그래밍 (반다이 남코 현역 프로그래머가 알려주는)
저자 : 가와다 마사토시
출판사 : 길벗
출판년 : 2015
정가 : 25000, ISBN : 9791186659144
책소개
전문가가 1:1로 알려주는 네트워크 프로그래밍의 기초와 활용
‘나도 온라인 게임을 만들어 보고 싶다.’는 막연한 생각을 반다이 남코 프로그래머와 함께라면 실제로 이룰 수 있다! 먼저 온라인 게임을 만들 때 필요한 통신의 기초 지식을 배우고, 5가지 게임(온라인 틱택토, 액션 가위바위보, 블록 깨기, 모형 정원 커뮤니케이션 게임, 멀티 플레이어 액션 게임)을 게임 디자인부터 실제 구현까지 단계별로 살펴본다. 마치 1:1로 강습받는 것처럼 각 과정을 하나하나 짚어가면서 네트워크 프로그래밍의 기초부터 활용하는 방법까지 알려준다.
목차
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 정리
샘플 게임 데이터 제작 스태프
찾아보기