책소개
유니티 클라이언트 개발자여! 이제 서버까지 개발하고 완전체로 거듭나자!
이 책은 C#으로 온라인 게임 서버를 개발하는 방법을 소개한다. 닷넷 프레임워크에서 TCP 소켓 기능을 활용하는 방법을 소개하고, 간단한 에코 서버를 개발한 뒤, 실시간 온라인 게임(세균전) 서버까지 제작해본다.
이 책의 목적은 게임 서버와 클라이언트가 어떤 원리로 통신하는지에 대해 가이드 역할을 하는 것이다.
이 책의 대상독자
유니티 엔진을 이용하여 클라이언트를 개발해온 프로그래머
서버 개발에 관심은 있지만 어떻게 시작해야 할지 모르는 일반 독자
[지은이] 이석현
현재 (주)리젠소프트 프로그래머로 재직 중이며, 유니티 엔진과 C#을 이용한 모바일 실시간 온라인 게임 "최고의 마블스타"를 개발했다.
목차
1부 서버 제작의 기초
1 온라인 게임서버를 만들기 위한 기초 지식
1.1 왜 C#으로 게임 서버를 구현하는가
1.2 네트워크 통신의 기초 지식
2 서버 네트워크 모듈 만들기
2.1 CNetworkService 클래스의 구성
2.2 CListener 클래스 구현하기
2.3 스레드를 통해 Accept 처리하기
2.4 SocketAsyncEventArgs 객체 생성하기
2.5 송, 수신 버퍼 풀링 기법
2.6 CUserToken 클래스
2.7 닷넷 네트워크 API
3 TCP에서 메시지 처리하기
3.1 메시지 경계 처리하기
3.2 패킷 설계하기
3.3 패킷 수신하기
3.4 패킷 전송하기
4 에코 서버 구현하기
4.1 에코 서버
4.2 클라이언트와 연동하기
4.3 유니티 엔진을 사용하여 만든 클라이언트
2부 온라인 게임 서버 제작
5 게임 서버 제작을 위한 기초 지식
5.1 게임 방의 구성
5.2 패킷이 전달되는 과정
5.3 메시지 큐의 필요성
6 게임 서버 구현하기
6.1 프로젝트 생성하기
6.2 유저의 요청 처리하기
6.3 게임 방 입장 요청하기
6.4 로딩 완료 요청하기
6.5 이동 완료 요청하기
6.6 턴 종료 요청하기
6.7 게임 종료 처리하기
7 유니티 클라이언트 연동하기
7.1 서버에 접속하기
7.2 게임 방 입장 요청과 응답
7.3 SendMessage를 통해 패킷 전달하기
7.4 리소스 로딩하기
7.5 플레이어 생성하기
7.6 유저의 입력 처리하기
7.7 코루틴을 이용해 세균의 이동과 복제 구현하기
7.8 게임 종료 처리하기
부록
부록.1 에코 클라이언트의 프로젝트 구성하기
부록.2 세균전 클라이언트의 프로젝트 구성하기
부록.3 소켓 프로그래밍 기초 지식