언리얼 엔진5으로 개발하는 멀티플레이어 게임 (C++, 블루프린트, 언리얼 엔진의 네트워킹 기능을 사용한 매력적인 멀티플레이어 게임 개발 | 반양장)

언리얼 엔진5으로 개발하는 멀티플레이어 게임 (C++, 블루프린트, 언리얼 엔진의 네트워킹 기능을 사용한 매력적인 멀티플레이어 게임 개발 | 반양장)

$40.09
Description
언리얼 엔진 5를 사용해서 멀티플레이어 게임을 개발하려는 초중급 개발자를 대상으로 한 책이다. 네트워킹의 기초부터 시작해 복제, RPC, 연관성, AI 시스템, 세션 관리 등 중요 개념을 배울 뿐만 아니라 네트워크 디버깅과 프로파일러를 활용한 최적화 방법도 살펴본다. 후반부에서는 언리얼 엔진 컴파일, 전용 서버 설정, 에픽 온라인 서비스와 같은 고급 주제도 다룬다.
저자

마르코세치

저자:마르코세치(MarcoSecchi)
이탈리아밀라노에서게임프로그래밍강사로열정적으로일하고있다.이전에는게임과애플리케이션개발을하는프리랜서프로그래머였으며,현재는누오바아까데미아디벨레아르띠(NABA,NuovaAccademiadiBelleArti)의강사이자수석게임고문이다.NABA의연구개발부서에서프로그래밍실력을갈고닦으며게임개발및문화유산과관련된개인프로젝트에도참여하고있다.

역자:이지성
고려대학교컴퓨터정보통신대학원을졸업했으며,석사논문을주제로특허를받았다.앤앤지㈜와㈜엠게임에서게임클라이언트프로그래머로MMORPG게임을개발했다.이후응용프로그래머로전향해유니닥스㈜에서PDF에디터,디지털교과서,OCR프로그램을개발했다.현재는㈜에스더블유엠에서수석연구원으로재직하며여러내비게이션업데이트프로그램을개발하고있다.역서로는『유니티로배우는C#프로그래밍6/e』(에이콘,2023),『언리얼엔진5로제작하는실시간VFX』(에이콘,2024)가있다.

역자:송정은
평소프로그램과영어두분야모두에관심이많아세종대학교에서컴퓨터공학을전공한후,국제영어대학원대학교(IGSE)에전액장학생으로입학해석사학위를취득했다.평소IT번역서적을읽을때마다아쉬운부분이많았기에원서와번역서의간극을줄이고누구나쉽게이해할수있는책을만들고자번역을시작하게됐다.이후게임개발과AI에꾸준히관심을두고관련분야서적을번역하고있으며,역서로는『유니티로배우는C#프로그래밍6/e』(에이콘,2023),『언리얼엔진5로제작하는실시간VFX』(에이콘,2024)가있다

목차


1장.멀티플레이어게임개발시작
__기술적인요구사항
____사전지식
____하드웨어사양
____소프트웨어사양
__멀티플레이어게임소개
____비디오게임분야의네트워크프로그래머되기
__멀티플레이어게임카테고리이해
____1인칭슈팅
____3인칭슈팅
____실시간전략
____대규모멀티플레이어온라인롤플레잉게임
____멀티유저던전
____멀티플레이어온라인배틀아레나
__게임플레이변형요소검토
____비대칭게임플레이
____숨바꼭질게임플레이
____비동기게임플레이
__멀티플레이어기술은게임에만사용되는가?
____시네마토그래피
____건축
____교육
____언리얼의콜라보뷰어템플릿
__요약

2장.네트워킹의기초
__기술적인요구사항
__컴퓨터네트워킹이란무엇인가?
__컴퓨터네트워크의종류
____근거리통신망
____원거리통신망
____가상사설망
__네트워크프로토콜소개
____패킷교환
____TCP/IP스위트
__네트워크문제이해
____보안
____패킷손실
____지연시간
__언리얼엔진멀티플레이어시스템소개
____네트워크모드와서버유형
____복제시스템
____네트워크역할
____폰과플레이어컨트롤러
____연관성과우선순위
____원격프로시저호출
__요약
__크레디트

3장.프로젝트프로토타입으로멀티플레이어시스템테스트
__기술적인요구사항
__멀티플레이어게임프로토타입생성
____템플릿에서프로젝트설정
____퀵셀메가스캔추가
____플레이어컨트롤러수정
__로컬에서멀티플레이어게임테스트
____리슨서버로플레이
____네트워크를통한업데이트
____추가적인캐릭터스폰지점추가
__네트워크를통한프로퍼티업데이트
____픽업아이템의블루프린트생성
____변형된픽업아이템추가
____캐릭터에포인트계산추가
__네트워크를통한함수실행
____액터스폰
____캐릭터스킨변경
____게임테스트
__요약

2부―언리얼엔진의네트워킹과멀티플레이어게임

4장.첫번째멀티플레이어환경설정
__기술적인요구사항
__『UnrealShadows-리치왕의유산』소개
____프로젝트개요설명
____프로젝트시작
__언리얼엔진의C++이해
____블루프린트와C++
____C++클래스의이해
____언리얼엔진C++헤더분석
____언리얼엔진리플렉션시스템
____메모리관리와가비지컬렉션
__언리얼멀티플레이어프로젝트시작
____프로젝트파일생성
____프로젝트게임인스턴스생성
____게임모드와게임스테이트생성
__플레이어클래스추가
____소스코드컴파일
____캐릭터블루프린트클래스생성
____게임모드에플레이어클래스추가
__요약

5장.멀티플레이어환경에서액터관리
__기술적인요구사항
__캐릭터설정
____캐릭터에기본설정추가
____캐릭터에상호작용추가
____향상된입력모듈가져오기
____캐릭터에사용자상호작용추가
____캐릭터의이동테스트
__액터의연결제어
__액터연관성이해
____연관성이해
____연관성테스트
____연관성설정테스트
__권한소개
____액터의롤과원격롤프로퍼티를사용해권한제어
____자율및시뮬레이티드프록시
__요약

6장.네트워크를통한프로퍼티복제
__기술적인요구사항
__캐릭터스탯추가
____스탯구조체생성
____스탯데이터테이블생성
____캐릭터에서데이터테이블읽기
____캐릭터에데이터테이블추가
__프로퍼티복제이해
____프로퍼티복제활성화
____네트워크를통한액터및컴포넌트참조
__캐릭터레벨업처리하기
____계획세우기
____PlayerState프로퍼티와멤버함수선언
____PlayerState로직구현
____레벨에코인아이템추가
__게임에HUD추가하기
____위젯블루프린트생성
____위젯블루프린트에코드로직추가
____캐릭터에HUD추가하기
____게임테스트
__요약

7장.원격프로시저호출사용
__기술적인요구사항
__RPC이해
____RPC의신뢰성
____RPC인증
__네트워크를통해RPC실행
____서버에서함수호출
__도어시스템구현
____상호작용가능한인터페이스생성
____상호작용액션구현
____도어블루프린트생성
____상호작용액션테스트하기
__요약

3부―게임개선

8장.멀티플레이어환경에AI도입
__기술적인요구사항
__AI시스템설정
__AI적생성
____내비게이션모듈추가
____미니언클래스생성
____미니언의행동구현
__레벨에적추가
____스포너클래스생성
____스포너로직구현
____스포너테스트
__요약

9장.AI행동확장
__기술적인요구사항
__AI적을더어렵게만들기
____소음만들기
____청각활성화하기
____청각테스트하기
__경보시스템구현
____게임모드함수선언
____AI가경보메시지보내기
__AI에체력추가
__캐릭터에무기시스템추가
____단검투사체생성
____무기컴포넌트구현
____캐릭터에WeaponProjectile컴포넌트연결
____무기를위한입력시스템추가
____무기시스템테스트
__AI변형생성
____AI경계병생성
____AI중간보스생성
____미니언스포너업데이트
__요약

10장.플레이어경험향상시키기
__기술적인요구사항
__캐릭터애니메이션
____애니메이션에셋생성
____캐릭터에애니메이션시스템추가
____던지기애니메이션추가
__NPC액터추가
____NPC캐릭터생성
____NPC액터테스트
__게임의추가개선
____소음을내보자!
____열쇠가필요해!
____영웅들이여,무기를강화하자!
____플레이어는기관총이아니다
____지체할시간이없다
____데이터테이블의다양한활용
____도움이필요한가?
__요약

11장.멀티플레이어게임디버깅
__기술적인요구사항
__네트워크디버깅소개
____게임디버깅설명
____멀티플레이어옵션소개
____네트워크환경에서로깅
____LogNet카테고리필터링하기
____사용자정의로그카테고리생성
__네트워크환경에뮬레이션
____네트워크에뮬레이션활성화
____네트워크에뮬레이션으로게임테스트
__네트워크프로파일러사용
____프로파일링세션기록하기
____프로파일링세션분석하기
__성능및대역폭사용개선
____필요할때만복제활성화하기
____불필요하거나중요하지않은RPC호출피하기
____신뢰할수있는RPC와신뢰할수없는RPC구분하기
____데이터검증하기
____게임모드는서버에만존재한다
____RPC에대한네이밍규칙사용하기
__요약

4부―온라인에게임배포

12장.멀티플레이어세션관리
__기술적인요구사항
__게임세션이해
____온라인서브시스템소개
____세션명령이해
____연결오류이해하기
__프로젝트게임세션준비
__세션생성
____시각적요소추가
____비주얼스크립팅로직구현
__세션참가
____SessionItemRenderer위젯생성
____FindSessions위젯생성
____MainMenu위젯생성
__요약

13장.세션중데이터처리
__기술적인요구사항
__메인메뉴레벨생성
____폰생성
____게임모드생성
____레벨생성
____세션시스템테스트
__세션중데이터처리
____US_GameInstance클래스업데이트
____캐릭터스킨데이터추가
____US_MainMenuPawn클래스업데이트
____BP_MainMenuPawn블루프린트업데이트
____US_Character클래스업데이트
____BP_Character블루프린트업데이트
__추가개선작업
____세션나가기및소멸
____플레이어사망처리
____플레이어스킨선택
__요약

14장.멀티플레이어게임배포
__기술적인요구사항
__온라인환경준비
__언리얼엔진컴파일
____언리얼엔진소스프로젝트다운로드
____소스코드에서컴파일하기
__전용서버설정
____프로젝트생성
____프로젝트솔루션빌드
____전용서버빌드
____프로젝트테스트
__요약

15장.에픽온라인서비스추가
__기술적인요구사항
__EOS소개
__데브포털접근하기
____에픽게임즈데브포털접근하기
____제품생성
____제품서비스구성
__EOSSDK시작하기
____EOSSDK다운로드
____게임에시스템통합하기
__요약

한국어판부록

출판사 서평

이책의대상독자

비디오게임네트워킹시스템에대한지식이부족한게임프로그래머,특히언리얼엔진개발자가이주제를깊이탐구하고싶다면이책이도움이될것이다.
다른게임엔진에능숙하면서언리얼멀티플레이어시스템의원리를이해하고자하는개발자들도이책에서많은도움을받을수있다.그러나언리얼엔진과C++에대한기본적인지식은꼭필요하다.

이책의구성

1장,‘멀티플레이어게임개발시작’에서는멀티플레이어게임개발의세계를개발자관점에서친절하게소개한다.
2장,‘네트워킹의기초’에서는언리얼엔진에서멀티플레이어개발을시작하기위한네트워크프로그래밍의기본개념을탐구한다.
3장,‘프로젝트프로토타입으로멀티플레이어시스템테스트’에서는프로젝트템플릿설정을시작으로,기본적인멀티플레이어기능을테스트할수있는간단한멀티플레이어프로토타입을만드는과정을안내한다.
4장,‘첫번째멀티플레이어환경설정’에서는언리얼엔진에서멀티플레이어C++프로젝트를개발하기위한기초를다진다.
5장,‘멀티플레이어환경에서액터관리’에서는멀티플레이어캐릭터를생성하고,이캐릭터를멀티플레이어환경에서다루는기본적인방법을배운다.
6장,‘네트워크를통한프로퍼티복제’에서는멀티플레이어환경에서프로퍼티를처리하고클라이언트간에동기화하는방법을알아본다.
7장,‘원격프로시저호출사용’에서는서버에서클라이언트로또는클라이언트에서서버로,네트워크환경에서함수를호출하는방법을살펴본다.
8장,‘멀티플레이어환경에AI도입’에서는적캐릭터를만들고간단한AI를추가해멀티플레이어시스템에서작동하도록한다.
9장,‘AI행동확장’에서는AI에더많은기능을추가해게임을더욱몰입감있게만든다.
10장,‘플레이어경험향상시키기’에서는애니메이션과NPC같은더많은기능을게임에추가한다.
11장,‘멀티플레이어게임디버깅’에서는네트워크게임을디버깅하고프로파일링하는기본원리를배운다.
12장,‘멀티플레이어세션관리’에서는게임세션과그특성을소개한다.
13장,‘세션중데이터처리’에서는멀티플레이어세션중데이터를처리하는방법을알아본다.
14장,‘멀티플레이어게임배포’에서는멀티플레이어게임을위한전용서버를빌드하는기본사항을살펴본다.
15장,‘에픽온라인서비스추가’에서는에픽게임즈데브포털(EpicGamesDeveloperPortal)을소개하고,가장몰입감있는온라인경험을제공할수있도록설계된강력한서비스모음인에픽온라인서비스(EpicOnlineServices)를전반적으로다룬다.접기

저자의말

멀티플레이어게임(multiplayergame)이등장한후게임산업에는혁신의바람이불었고,플레이어들은새로운방식의게임을경험하게됐다.즉,전통적인싱글플레이어게임(single-playergame)과달리,멀티플레이어게임은플레이어들이실시간으로상호작용할수있는역동적이고다채로운소통의장을제공했다.
최근몇년간기술의발전으로멀티플레이어게임은그어느때보다접근하기쉬워졌다.그
결과,멀티플레이어게임은전세계에서수백만명의플레이어가매일다양한플랫폼에서즐기는,가장인기있는장르중하나로자리잡았다.
언리얼엔진(UE,UnrealEngine)과같은게임엔진은게임개발자들사이에서점점더인기를끌고있다.크로스플랫폼멀티플레이어지원과고급지연보상기술등의고품질멀티플레이어경험을지원하기위해특별히설계된다양한도구와기능을제공하기때문이다.
또한언리얼엔진은대규모의활발한게임개발자커뮤니티가있어지원,리소스와협업및네트워킹의기회를제공한다.따라서네트워크게임개발에관심이있다면,사용하지않을이유가없다!