책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9791161759289
· 쪽수 : 456쪽
· 출판일 : 2024-11-29
책 소개
목차
1부 ― 언리얼 C++ 스크립트 시작하기
1장. 첫 언리얼 C++ 게임 만들기
__기술적인 요구 사항
__언리얼 C++ 스크립팅 살펴보기
____C++와 블루프린트의 차이
____언제 C++를 사용하는가?
____C++ 프로그래밍과 C++ 스크립팅의 차이
__템플릿을 활용해 C++ 슈팅 게임 프로젝트 생성하기
____비주얼 스튜디오 2022 설치하기
____언리얼 엔진에 소스 코드가 설치됐는지 확인하기
____에픽게임즈 런처를 통해 언리얼 엔진 5 에디터 실행하기
____MyShooter C++ 프로젝트 생성하기
____기본 소스 코드 에디터로 언리얼 엔진 5에 비주얼 스튜디오 연결하기
____비주얼 스튜디오에서 C++ 소스 코드 열어보기
__블루프린트 프로젝트를 C++ 프로젝트로 변환하기
__요약
2장. 비주얼 스튜디오에서 C++ 코드 편집하기
__기술적인 요구 사항
__비주얼 스튜디오 시작하기
__비주얼 스튜디오 IDE의 UI 살펴보기
____코드 에디터
____메뉴
____검색 상자
____툴바
____솔루션 탐색기
____출력 창
____오류 목록 창
__비주얼 스튜디오에서 코드 편집하기
____입력 커서 제어하기
____텍스트 편집 키
____코드 선택
____인텔리센스
____유용한 단축키
__C++ 코딩 연습
____비주얼 스튜디오에서 새로운 C++ 솔루션 생성하기
____main.cpp 파일 생성하기
____에디터 테마 변경하기
____main.cpp에 초기 코드 작성하기
____Calculator 클래스 추가하기
__요약
3장. C++와 객체지향 프로그래밍 배우기
__기술적인 요구 사항
__C++ 알아보기
__C++ 프로그램 구조 살펴보기
__C++ 함수 정의하기
____매개변수와 함수 정의
____함수 호출하기
____main( ) 함수 작성하기
__기본적인 계산기 프로그램 작성해보기
__C++ 문법 배우기
____C++ 데이터 유형 사용하기
____변수 정의하기
____C++ 배열 사용하기
____C++ 연산자 사용하기
____사용자 입력 받기
____C++ 주석 추가하기
____C++ 흐름 제어
__개선된 계산기 프로그램 작성해보기
__레퍼런스와 포인터 생성하기
____레퍼런스
____포인터
__객체지향 프로그래밍 이해하기
____객체지향 프로그래밍이란 무엇인가?
____클래스와 객체는 무엇인가?
____C++에서 클래스 생성하기
____C++에서 객체 생성하기
__객체지향 프로그래밍 계산기 프로그램 작성해보기
____calculator 클래스에 생성자와 게터 함수 추가하기
____Calculator 클래스를 상속하는 CalculatorEx 클래스 생성하기
__요약
4장. FPS 게임 프로젝트와 C++ 코드 살펴보기
__기술적인 요구 사항
__MyShooter C++ 프로젝트 구조 이해하기
__게임 프로그램 구조 이해하기
__소스 코드에 익숙해지기
____MyShooterCharacter.h
____MyShooterCharacter.cpp
____MyShooterProjectile.h와 MyShooterProjectile.cpp
____TP_PickUpComponent.h와 TP_PickUpComponent.cpp
____TP_WeaponComponent.h와 TP_WeaponComponent.cpp
____MyShooter.h와 MyShooter.cpp
____MyShooterGameMode.h와 MyShooterGameMode.cpp
____MyShooter.Build.cs, MyShooter.Target.cs, MyShooterEditor.target.cs
__비주얼 스튜디오에서 언리얼 에디터 시작하고 게임 프로젝트 열기
__요약
2부 ― 언리얼 엔진 C++ 스크립팅
5장. 언리얼 엔진 게임플레이 프레임워크 기본 클래스 활용하기
__기술적인 요구 사항
__내려보기 프로젝트 Pangaea 생성하기
__게임플레이 프레임워크 기본 클래스 이해하기
__게임 액터 클래스 생성하기
____ADefenseTower 클래스 생성하기
____AProjectile 클래스 생성하기
____APlayerAvatar 클래스 생성하기
__C++ 프로젝트 리컴파일하기
__UPROPERTY 매크로 사용하기
____UPROPERTY 문법
____UPROPERTY 지정자와 메타데이터
____ADefenseTower, AProjectile, APlayerAvatar 속성을 언리얼 엔진 프로퍼티로 마킹하기
__UFUNCTION 매크로 사용하기
____UFUNCTION 문법
____UFUNCTION 지정자와 메타데이터
____ADefenseTower, APlayerAvatar 멤버 함수를 UFUNCTION 매크로로 태깅하기
__새로운 액터에 컴포넌트 추가하기
____컴포넌트 헤더 파일 추가하기
____두 컴포넌트에 프라이빗 프로퍼티 정의하기
____컴포넌트에 퍼블릭 게터 함수 추가하기
____클래스 생성자에 컴포넌트 생성하기
__새로운 액터 클래스에서 블루프린트 생성하기
__언리얼 게임플레이 프레임워크 클래스 학습하기
____Pangaea 게임에서 게임플레이 프레임워크 클래스 생성하기
____PlayerController 클래스 살펴보기
____GameModeBase 클래스 살펴보기
____GameState 살펴보기
____GameInstance 살펴보기
____클래스 인스턴스 획득하기
__Cast 템플릿 함수 사용하기
__요약
6장. 게임 액터 생성하기
__기술적인 요구 사항
__플레이어 아바타 설정하기
____플레이어 아바타에 SpringArmComponent와 CameraComponent 추가하기
____플레이어 아바타 초기화하기
__캐릭터의 SkeletalMeshComponent 설정하기
____캐릭터 모델 임포트하기
____BP_PlayerAvatar에서 Hero 스켈레탈 메시 사용하기
____게임의 플레이어 폰 대체하기
__플레이어 아바타의 애니메이션 블루프린트 생성하기
____PlayerAvatarAnimInstance 클래스 생성하기
____ABP_PlayerAvatar 블루프린트 생성하기
____ABP_PlayerAvatar에 스테이트 머신 생성하기
____애니메이션 인스턴스와 이동 속도 싱크 맞추기
__요약
7장. 캐릭터 제어하기
__기술적인 요구 사항
__플레이어 캐릭터를 제어해 공격 수행하기
____액션 맵에 공격 액션 추가하기
____공격 액션에 핸들러 함수 추가하기
____OnAttackPressed( ) 액션 핸들러 함수 구현하기
____CanAttack( )과 Attack( ) 함수 구현하기
____애니메이션 루프를 수행하지 않도록 처리하기
____OnStateAnimationEnds 함수 구현하기
__액터 파괴하기
__적 캐릭터 생성하기
____Enemy 클래스 생성하기
____EnemyController 클래스 생성하기
____ABP_Enemy 애니메이션 블루프린트 생성하기
____BP_Enemy 블루프린트 생성하기
__게임 테스트하기
__노트
__요약
8장. 충돌 처리하기
__기술적인 요구 사항
__충돌 감지의 이해
__충돌 감지 프리셋 설정
__충돌을 사용해 게임 상호작용 수행하기
____무기, 디펜스 타워, 파이어볼 액터 다운로드하고 생성하기
____무기 습득하기
____적 무기 생성하기
____디펜스 타워에서 파이어볼 발사하기
____파이어볼 이동과 목표 충돌 체크하기
____디펜스 타워 피격 처리하기
__요약
9장. C++ 코드 품질 향상하기
__기술적인 요구 사항
__코드 리팩터링
____PlayerAvatarAnimInstance와 EnemyAnimInstance 클래스 통합하기
____PangaeaCharacer 클래스를 APlayerAvatar와 AEnemy 클래스의 부모 클래스로 만들기
__코드 리파이닝
____캐시 변수 사용하기
____파이어볼 풀 만들기
__디버그 메시지 출력하기
____UE_LOG 매크로 사용하기
____디버그 메시지 화면에 출력하기
__액터 인스턴스의 실제 클래스 타입 확인하기
__요약
3부 ― 멀티플레이어 게임 만들기
10장. 네트워크 멀티플레이어 게임 만들기
__기술적인 요구 사항
__싱글플레이어 게임과 멀티플레이어 게임 비교해보기
__에디터에서 멀티플레이어 게임 실행하기
__멀티플레이어 게임 네트워크 모드 살펴보기
__네트워크 동기화 처리하기
____RPC로 플레이어 공격 알려주기
____복제를 통해 클라이언트와 액터 변수 동기화하기
____RepNotify를 통해 캐릭터의 체력 바 업데이트하기
____서버에서 타격 처리하기
____서버에서 파이어볼 생성하기
__요약
11장. 게임 플로 제어하기
__기술적인 요구 사항
__Pangaea 게임 플로 디자인하기
__UI 위젯 만들기
____BP_LobbyWidget 만들기
____BP_HUDWidget 만들기
____BP_GameOverWidget 만들기
__PangaeaGameInstance에 네트워크 기능 추가하기
__게임 레벨에 UI 위젯 추가하기
__게임 타이머 추가하기
____APangaeaGameState 클래스에 타이머 변수 추가하기
____타이머 변수 리플리케이트하기
____OnTimeChangedDelegate 정의하기
____커스텀 이벤트를 생성하고 OnTimeChangedDelegate에 바인딩하기
____타이머 카운트다운하기
____APangaeaGameState를 프로젝트의 게임 스테이트 클래스로 할당하기
__디펜스 타워를 파괴해 게임 승리하기
__요약
12장. 게임 폴리싱과 패키징
__기술적인 요구 사항
__게임 폴리싱하기
____고품질 게임 에셋 임포트해 사용하기
____버그 수정하기
____프로파일링과 최적화
__언리얼 엔진 콘솔 명령어 사용하기
____모드와 콘솔 명령어 살펴보기
____C++에서 콘솔 명령어 실행하기
__게임 패키징하기
____패키징에 필요한 프로젝트 설정
____창으로 실행되는 게임 만들기
____콘텐츠를 검색할 때 하드코딩된 경로를 사용하지 않는 법
____프로젝트 패키징
__패키징 이후에 할 일들
__요약