책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788972806769
· 쪽수 : 492쪽
· 출판일 : 2003-05-15
책 소개
목차
1부 온라인 게임 프로그래밍의 입문
01장 온라인 게임의 역사
네트워크와 게임의 만남
네트워크 게임과 온라인 게임
- 네트워크 게임
- 온라인 게임
네트워크 게임 시스템의 이해
- 서버/클라이언트
- Peer to Peer
- Battle.net
정리하기
02장 네트워킹 따라하기
네트워크의 마법사, TCP/IP"
- TCP/IP란?
- OSI 7 계층
소켓(Socket)이라는 마법사의 지팡이
- 소켓이란?
- 소켓의 생성과 파괴
- 사용할 주소 및 포트 지정
- bind
- listen
- accept
UDP를 이용한 서버/클라이언트 통신
- UDP 서버 만들기
- UDP 클라이언트 만들기
TCP를 이용한 서버/클라이언트 통신
- TCP 서버 만들기
- TCP 클라이언트 만들기
통신의 규칙 정의하기
- 프로토콜(Protocol)
- 패킷(Packet)
TCP에서 지원하는 소켓 옵션
정리하기
03장 다중작업 그리고 동기화
쓰레드(Thread)란?
- 쓰레드
- Context Switching
동시에 작업하기, 멀티쓰레딩"
- 생성하기
- 종료하기
- Thread class 구성하기
- Thread Manager 만들기
객체 동기화(Object Synchronize)
- 객체의 동시 접근
- 동기화 객체
- Synchronized class
정리하기
04장 입출력의 마법사, IOCP"
IOCP란?
IOCP의 원리
- IOCP의 동작
- 객체 생성과 사용
네트워킹과 IOCP의 접목
- 소켓 등록하기
- 패킷 보내기
- 패킷 받기
Worker Thread
- 쓰레드 풀링(Thread Pooling)
- Worker Thread 적용하기
- 실전! IOCP를 적용한 파일 입/출력
- 결과 화면
정리하기
05장 서버와 클라이언트의 대화
클라이언트 네트워킹 도구
- 클라이언트 구성
- ClientSocket class
클라이언트 네트워크 모듈 제작
- ClientSocket 클래스
- ClientSocket 클래스의 사용
서버 네트워킹의 요소 및 구성
- 서버의 구성
- Dispatch & Parsing
서버 네트워크 모듈 제작
- Server Socket
- Acceptor
- Completion Handler
- Session 객체
- SessionManager
- User class
정리하기
06장 기반 라이브러리 만들기
모듈화의 중요성
- 모듈의 정의
- 모듈화의 필요성
라이브러리의 내용 구성
- 구성
- 클래스 구조
예외 처리
- 예외 처리란?
- 예외 발생
- 예외 처리
namespace
- 논리적인 영역
- 영역 나누기
- namespace 접근하기
- namespace의 적용
- using namespace
Singleton Pattern
- Singleton pattern의 목적
- Singleton 적용하기
라이브러리 만들기
- 프로젝트 생성하기
- 기반 모듈 만들기
정리하기
07장 게임 속의 네트워크
테트리스 서버의 구성
- 구현할 내용
- GameRoom의 설계
- 게임 서버와 클라이언트의 통신
게임 서버 만들기
- 서버의 구성
- 서버 시작하기
- 프로토콜 정의하기
- 로그인과 사용자 관리
- 입장/퇴장 구현하기
- 통신하기
클라이언트 만들기
- DxWindow 모듈의 구성
- 게임 화면 만들기
정리하기
08장 시각적인 설계 UML
UML이란?
표현과 설계의 중요성
- 설계의 목적
- 소프트웨어 개발 단계
UML 사용하기
- UML의 구성
- 많이 사용되는 다이어그램
정리하기
2부 실전! 온라인 게임 개발
09장 온라인 게임 서버 구축하기
무엇을 만들 것인가?
프로세서의 역할 정의
- Processor Deployment diagram
- 역할 분담하기
서버의 네트워크 모듈 제작
- 모듈의 구성
- Acceptor
- CompletionHandler
- SessionManager
- WorkerThread
성능 테스트하기(Performance Test)
- 무엇을 테스트 할 것인가?
- 테스트 네트워크 구성
- 성능 측정하기
- 테스트 클라이언트 만들기
10장 사용자 로그인 시스템
세션 서버 구성하기
- 프로젝트 생성하기
- 네트워크 구성
- 세션 서버의 구성
세션 서버 설계하기
- Login system
- FieldProxy
서버 만들기
- 계정 인증하기
- 패킷 중계하기
정리하기
11장 게임 세상 만들기
필드 서버의 구성
FieldCatalog
FieldObject 만들기
- 최상위 객체의 역할
- FieldObject의 구성
- FieldObject 만들기
- FieldObjectManager
Broadcasting
- Broadcasting이란?
- Broadcasting 만들기
사용자의 입장/퇴장 처리
- 처리의 흐름
- 구현하기
정리하기
12장 편리한 자동 패치 시스템
자동 패치의 흐름
- 패치 클라이언트
- GameClient와 GameLoader
- GameLoader와 Update server
FTP Client 만들기
- MFC의 CInternetSession과 CFtpConnection
- FTP 서버에 접속하기
- FTP 서버의 파일 검색하기
- 파일 받아오기
패치 서버 구축하기
- PatchCalalog class
- 클라이언트의 버전 인증
패치 프로그램 만들기
- 프로젝트 생성하기
- Update server와 통신하기
- 파일 다운로드
정리하기
13장 보이지 않는 버그 잡기
로그(Log) 남기기
- 콘솔(Console)로 출력하기
- Output 창 사용하기
- 파일로 저장하기
DebugTracer 구성하기
- DebugTracer의 구성
- 콘솔 사용하기
- 파일로 저장하기
- Debug 탭으로 출력하기
DebugTracer 만들기
- Tracer 생성하기
- 로그 출력하기
- DebugTracer 사용하기
정리하기
3부 진보적인 시스템
14장 대형 필드 관리하기
보다 넓은 지형을 원하는 시장
- 더욱 커지는 필드
- 일반적인 처리의 문제점
효율적인 객체 관리
- Octet Tree를 이용한 섹터 분할
- Field Object Manager
- 필드 섹터로 나누기
- 객체의 검색
필드 섹터 사이의 객체 이동
- 이동하는 캐릭터
- 필드 섹터 사이의 이동 판단하기
- 클라이언트에서의 객체 처리
- 캐릭터 이동하기
정리하기
15장 필드의 분산 처리
필드 분산 시스템
- 필드 분산이란?
- 여기에서 다룰 내용
필드 섹터 분산 시스템
- 물리적으로 나누어진 필드
- Real sector와 Virtual sector
- Sector 사이의 통신
- 분산 지역을 중계하는 Migrate server
- 분산 지역을 이동하는 캐릭터
- 분산 시스템 정리하기
필드 분산 시스템의 정보
- 규칙 정의하기
- 필요한 정보 구성하기
정리하기
16장 Finite State Machine
Finite State Machine이란?
게임에서의 상태 정의
- 상황을 판단하는 몬스터
- 상태 전이의 조건
- Design of Finite State Machine
FSM 만들기
- FiniteStateMachine
- FiniteState
- FiniteStateMachine 사용하기
State pattern과 FiniteStateMachine
- State pattern이란?
- FSM과의 결합
정리하기