Comming Soon

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

  • 원서명Multiplayer Game Development with Unreal Engine 5: Create compelling multiplayer games with C++, Blueprints, and Unreal Engine's networking features (ISBN 9781803232874)
  • 지은이마르코 세치(Marco Secchi)
  • 옮긴이이지성, 송정은
  • ISBN : 9791161759685
  • 40,000원
  • 2025년 02월 27일 펴냄
  • 페이퍼백 | 492쪽 | 188*235mm
  • 시리즈 : 게임 개발 프로그래밍

책 소개

요약

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

이 책에서 다루는 내용

◆ 멀티플레이어 게임 개발에 필요한 기본 지식
◆ 네트워크 레벨의 주요 요소 이해
◆ 복제, RPC, 연관성, 역할과 같은 언리얼 멀티플레이어 기능 탐구
◆ 게임 성능 향상을 위한 코드 디버깅 및 최적화
◆ LAN 또는 온라인 플랫폼에서의 게임 배포
◆ 에픽 온라인 서비스를 사용한 플레이어 경험 향상

이 책의 대상 독자

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

이 책의 구성

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

저자/역자 소개

지은이의 말

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

지은이 소개

마르코 세치(Marco Secchi)

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

옮긴이의 말

게임 산업이 급속도로 성장하고 있는 오늘날, 멀티플레이어 게임의 중요성은 그 어느 때보다 커지고 있습니다. 전 세계의 플레이어들이 함께 즐기는 온라인 경험은 이제 게임의 필수 요소가 됐습니다. 이런 흐름 속에서 멀티플레이어 게임 개발에 최적화된 언리얼 엔진 5는 뛰어난 그래픽 성능과 강력한 네트워킹 기능을 갖고 있습니다.
이 책은 언리얼 엔진 5를 사용해 멀티플레이어 게임을 개발하려는 초중급 개발자를 위한 것입니다. 또한 현재 국내에 소개된 언리얼 엔진 5 서적 중에는 멀티플레이어 게임 개발을 집중적으로 다룬 책이 거의 없기 때문에 해당 내용을 학습하고자 할 때 이 책이 많은 도움이 될 것입니다. 하지만 언리얼 엔진을 처음 접하는 입문자라면 다소 어려울 수 있으므로, 먼저 언리얼 엔진의 블루프린트와 C++의 기본적인 지식을 학습하기를 권장합니다. 이 책에는 네트워킹의 기초부터 시작해 멀티플레이어 게임 개발과 관련된 중요 개념이 상세히 설명돼 있습니다. 또한 다른 책에서 거의 다루지 않는 언리얼 엔진 소스 컴파일과 전용 서버 설정 같은 고급 주제는 커스터마이징이 필요한 작업을 할 때 큰 도움이 될 것입니다.
참고로, 언리얼 엔진은 한글을 지원하지만 아직 번역되지 않은 부분이나 어색한 표현도 많습니다. 물론 ‘에디터 개인설정’에서 언어를 변경할 수도 있지만, 영어로 된 화면과 메뉴보다는 우리말로 된 화면과 메뉴가 더 편리할 것으로 판단해 우리말 화면을 기준으로 원서의 내용을 옮겼습니다.
또한 원서는 언리얼 엔진 5.1 버전을 기준으로 저술됐지만, 번역서는 언리얼 5.3 버전에 맞춰 개정했습니다. 이 과정에서 최선을 다하고자 노력했으나 부족한 부분이 있을지도 모릅니다. 미흡하거나 궁금한 점이 있을 경우, 에이콘출판사 편집 팀이나 제 이메일로 문의해주시면 성심을 다해 답변드리겠습니다.

옮긴이 소개

이지성

고려대학교 컴퓨터정보통신대학원을 졸업했으며, 석사 논문을 주제로 특허를 받았다. 앤앤지㈜와 ㈜엠게임에서 게임 클라이언트 프로그래머로 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장. 첫 번째 멀티플레이어 환경 설정
    • 기술적인 요구 사항
    • 『Unreal Shadows - 리치 왕의 유산』 소개
      • 프로젝트 개요 설명
      • 프로젝트 시작
    • 언리얼 엔진의 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 위젯 생성
      • Main Menu 위젯 생성
    • 요약

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

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

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

  • 한국어판 부록

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안