유니티로 만드는 네트워크 게임 개발
네트워크 게임 개발의 첫걸음!
이 책은 Unity 표준 네트워크 API인 ‘UNET’(정식명 : Unity Multiplayer)과 mBaaS 중 하나인 ‘nifcloud mobile backend’를 사용한 실시간 및 비 실시간 네트워크 게임 개발을 위한 학습서입니다.
네트워크 게임 개발이 처음인 분도 쉽게 배울 수 있도록 샘플 프로그램을 사용하여 기초부터 친절하고 자세히 설명하고 있습니다. 또한 현장에서 바로 사용할 수 있는 개발 힌트나 Tip도 많이 게재하고 있습니다.
네트워크 기능으로 레벨업!
- ‘nifcloud mobile backend’로 게임에 친구 기능, 랭킹 기능을 추가할 수 있다.
- Unity 표준 라이브러리 ‘UNET’을 사용하면 본격적인 실시간 네트워크 게임을 바로 만들 수 있다.
- 지연 회피, 캐릭터의 이동 예측 등 네트워크 게임 특유의 테크닉을 습득할 수 있다.
주식회사 namco(당시)에서 주식회사 dream fanctory를 거쳐 현재 프리랜서로 활동 중이다. 컨슈머 게임기, 휴대전화, 스마트폰 등과 같은 플랫폼용 애플리케이션 개발에 종사하고 있다. 주요 타이틀은 Soul Edge(아케이드), Tobal 시리즈(PlayStation, i/EZ 앱), Ehrgeiz(PlayStation), Xenosaga EpisodeⅠ(PlayStation2), Super Monkey Ball(게임 큐브), Songs of ANAGURA(일본 미래관) 등.
Introduction. Unity와 네트워크 게임의 개요
0-1 게임 통합개발환경 Unity
0-2 게임의 네트워크 기능이란?
0-3 이 책의 샘플 게임에 대해
0-4 필요한 개발 환경과 UNET의 라이선스
Part 1. 비동기화형 네트워크 기능 활용 - NCMB편
1장. 샘플 게임의 개요과 구조
1-1 ‘검사가 그렇게 빨리 죽어버려?’의 개요와 플레이 방법
1-2 샘플 게임의 구조
2장. NCMB의 도입과 기초
2-1 ‘nifcloud mobile backend’란?
2-2 NCMB Unity SDK 도입 절차
2-3 NCMB 관리 화면
2-4 데이터 저장과 취득의 기초
3장. 로그인 기능의 구현과 활용
3-1 게임과 로그인 기능의 관계
3-2 로그인 기능의 구현
3-3 로그인 기능의 응용과 세이브 데이터의 저장
3-4 자동 로그인
3-5 단말기 인계 기능
3-6 데일리 보너스
4장. 네트워크 기능의 확장
4-1 데이터 스토어 개요
4-2 랭킹 기능
4-3 친구 기능
4-4 비동기화형 멀티플레이어 게임 시스템
4-5 게임의 설정을 관리 화면에서 변경하기
5장. 이미지 파일의 저장과 취득
5-1 파일 스토어에 이미지 파일 저장하기
5-2 파일 스토어에서 이미지 파일을 가져오기
5-3 앱 안에서 스크린샷을 공유 및 열람하기
5-4 배너 이미지를 관리 화면에서 앱으로 배포하기
6장. 푸시 알림의 구축과 활용
6-1 게임에 푸시 알림을 심어 넣기
6-2 푸시 알림의 준비 - Unity와 NCMB편
6-3 푸시 알림의 준비 - iOS편
6-4 푸시 알림의 준비 - Android편
6-5 관리 화면에서 푸시 알림을 배포하기
6-6 앱에서 푸시 알림을 보내기
Part 2. 실시간 네트워크 게임 개발 - UNET 기초편
1장. Network Manager로 간단히 네트워크 게임 작성
1-1 네트워크 게임과 UNET의 기초
1-2 Network Manager를 사용하여 씬 작성하기
1-3 캐릭터를 프리팹으로 작성한다
1-4 캐릭터를 조작하기 위한 스크립트를 기술한다
1-5 캐릭터를 조작하는 스크립트 상세 내용
1-6 완성과 정리
2장. Network Manager를 사용한 프로그래밍
2-1 스테이터스 동기화
2-2 클라이언트 간의 값 공유
2-3 Network Manager 클래스 이용하기
2-4 플레이어 오브젝트의 조작
2-5 네트워크 메시지 이용하기
3장. UNET 커스터마이징
3-1 플레이어가 모이는 장소 ‘로비’의 사용법
3-2 NetworkManager 클래스 확장하기
3-3 NetworkLobbyManager 클래스 확장하기
3-4 실행 중인 사용자를 조사하는 네트워크 디스커버리
4장. Transport Layer API와 인터넷 서비스(Unity Cloud Service)
4-1 Transport Layer API를 사용한 메시지 송수신
4-2 인터넷 서비스(Unity Cloud Service) 이용하기
Part 3. 실시간 네트워크 게임 개발 - UNET 실전편
1장. 네트워크 게임의 기본과 샘플 게임의 개요
1-1 UNET(Unity Networking API)의 개요
1-2 샘플 게임 ‘Painters’의 개요와 플레이 방법
2장. 샘플 게임 ‘Painters’의 구축 개요
2-1 네트워크 게임 개발의 기본
2-2 ‘Painters’의 구축
3장. 게임 시간의 공유
3-1 지연 처리의 개요
3-2 통신의 설계와 구축
4장. 캐릭터 이동의 보정
4-1 캐릭터 이동 처리의 개요
4-2 캐릭터 이동 처리의 구축
4-3 캐릭터 이동 처리의 보완과 예측
5장. 페인트탄의 동기화와 배경 칠하기
5-1 페인트탄을 동기화시키기
5-2 배경 칠하기
Appendix
A-1 iOS 앱 개발을 위한 인증서 발행
A-2 Unity Cloud Build에서 앱 빌드하기
A-3 NCMB의 기타 기능
A-4 멀티플레이 네트워크 게임용 미들웨어 ‘Photon’