도서 소개
온라인 게임을 만들 때 필요한 통신의 기초 지식을 배우고, 5가지 게임(온라인 틱택토, 액션 가위바위보, 블록 깨기, 모형 정원 커뮤니케이션 게임, 멀티 플레이어 액션 게임)을 게임 디자인부터 실제 구현까지 단계별로 살펴본다. 마치 1:1로 강습받는 것처럼 각 과정을 하나하나 짚어가면서 네트워크 프로그래밍의 기초부터 활용하는 방법까지 알려준다.
각 장에서는 ‘만들고자 하는 게임의 게임 디자인을 어떻게 할 것인가’부터 시작한다. 그리고 프로그램을 차례대로 만들어가며 게임 제작 과정을 설명한다. 설명을 따라가면 온라인 게임 고유의 게임 디자인 방법과 게임 디자인을 ‘왜 그렇게 해야만 하는지’를 배울 수 있다.
출판사 리뷰
전문가가 1:1로 알려주는 네트워크 프로그래밍의 기초와 활용
‘나도 온라인 게임을 만들어 보고 싶다.’는 막연한 생각을 반다이 남코 프로그래머와 함께라면 실제로 이룰 수 있다! 먼저 온라인 게임을 만들 때 필요한 통신의 기초 지식을 배우고, 5가지 게임(온라인 틱택토, 액션 가위바위보, 블록 깨기, 모형 정원 커뮤니케이션 게임, 멀티 플레이어 액션 게임)을 게임 디자인부터 실제 구현까지 단계별로 살펴본다. 마치 1:1로 강습받는 것처럼 각 과정을 하나하나 짚어가면서 네트워크 프로그래밍의 기초부터 활용하는 방법까지 알려준다.
나도 온라인 게임을 만들 수 있을까?
온라인 게임은 누구나 쉽게 만들 수 있다. 단, 오프라인 게임과 온라인 게임의 게임 디자인 차이를 이해해야 한다. ‘오프라인 게임을 만들고 네트워크 기능만 추가하면 온라인 게임’이라는 생각은 망하는 지름길이다. 각 장에서는 ‘만들고자 하는 게임의 게임 디자인을 어떻게 할 것인가’부터 시작한다. 그리고 프로그램을 차례대로 만들어가며 게임 제작 과정을 설명한다. 설명을 따라가면 온라인 게임 고유의 게임 디자인 방법과 게임 디자인을 ‘왜 그렇게 해야만 하는지’를 배울 수 있다.
네트워크 프로그래밍은 처음? 기초부터 활용하는 방법까지!
온라인 게임을 만들 때 데이터 통신의 기초 지식은 필수이므로 피해갈 수 없다. ‘통신=어렵다’는 선입관을 버릴 수 있도록 패킷, IP 주소, TCP, UDP, 지연, 대역 등 기본 사항을 차근차근 단계별로 살펴본다. 데이터를 주고받는 과정을 이해한 다음에는 이와 같은 기초 지식이 게임 디자인에 따라 어떤 방식으로 활용되는지 설명한다.
게임 디자인에 따라 통신 방식이 달라진다.
게임을 제작할 때는 게임 디자인을 가장 먼저 결정해야 한다. 게임 디자인을 결정할 때는 전체 프로세스는 어떻게 되는가? 플레이는 어떻게 진행되는가? 무엇을 언제 통신해야 하는가? 와 같은 큰 그림을 생각한 뒤, 캐릭터는 어떻게 이동하는가? 액션의 규칙은 어떻게 정할 것인가? 아이템은 어떻게 관리할 것인가? 와 같이 작은 그림을 완성해간다. 결정한 게임 디자인에 맞게 통신 방식을 적용한다. 온라인 틱택토(턴 대전 방식), 액션 가위바위보(통신 지연 해결), 블록 깨기(키 입력 동기화), 모형 정원 커뮤니케이션 게임(비동기 통신), 멀티 플레이어 액션 게임(매칭 서버)이라는 5가지 게임 디자인을 통해 다양한 통신 방식을 설명한다.
[이 책의 대상 독자]
- 신입/초보 서버 개발자, 온라인 게임 개발의 기초를 배우고 싶은 학생
- 신입/초보 온라인 게임 기획자(게임 디자인 및 게임 운영 방식에 대한 기초 학습 가능)
[예제소스 다운로드]
https://github.com/gilbutITbook/006772
작가 소개
저자 : 가와다 마사토시
2009년 반다이 남코 게임즈 입사. 현재 반다이 남코 스튜디오 소속으로 사내 미들웨어와 온라인 게임을 주로 제작했다. 아날로그 모뎀 시절에는 PC용 온라인 레이싱 게임 제작을 시작으로 블로그 시스템을 개발했으며 오락실용 비디오 게임으로 온라인 액션 RPG를 제작할 때는 프로그래머, 게임 디자이너로 참여했다. 최근에는 가정용 온라인 격투 게임과 온라인 스포츠 게임을 제작하고 있다.
목차
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 간단한 통신 라이브러리를 만들어보자