게임 개발에서의 블루프린트와 C++의 조화

후이재·2021년 4월 28일
0

게임 개발에서의 블루프린트와 C++의 조화
Epic Games 학습에서 수강할 수 있는 위와같은 강의를 수강하고 작성하는 글 입니다

1. Look at the current setup of the project

A look at the C++ Classes

UPROPERTY 메크로를 통해 생성된 Properties 확인 가능

Properties in Blueprint

Exposed Property => EditAnywhere, BlueprintReadWrite 를 통해 수정, 확인 가능
시작 Pawn => Property Setting 에서 수정 가능, 또는 Auto Possess Player 수정(Player 0으로)

2. A Review of the official development approaches

C++ 이 좋을지, BP가 좋을지 고민된다면, Balancing Blueprint and C++ 문서를 읽어보는것이 좋다!

하드레퍼런스, 소프트레퍼런스

  • 하드레퍼런스: 객체 자체를 참조하는 것 => 이름 변경 또는 경로 변경 시 문제가 발생할 수 있음
  • 소프트레퍼런스: path와 같은 string같은 형태로 참조하는 것

Asset을 찾을 때?

static ConstructorHeplers::FObjectFinder ProjectileMeshAsset(TEXT(“/Game/Mesh/Projectile.Projectile”));
(Asset Finder를 통해 찾는다.)

3. Flexible GameModes

C++로만 프로젝트를 진행한다면, GameMode 변경의 어려움이 있다. BP인 경우에는 Default pawn 등을 지정할 수 있음

4. C++ Performance

C++ only, C++와 BP 혼합, BP 만으로 된 3가지 경우를 비교해 보았을 때, BP만으로 구성된 경우가 현저하게 느린 결과를 보여줌
C++ only, >> C++와 BP 혼합 >>>>> BP 만
네이티브화: BP로 구현된 내용을 C++코드로 번역하는 것

5. Real Benefits of C++

C++을 언제 도입?

  • Performance: 우월. 오래걸린다면 반드시
  • Maintenance and code readability: 프로젝트 규모 커지며 협업 시 효율적인 코드 파악이 필요 (C++은 한 창에서도 여러 함수를 볼 수 있음)
  • Networking and code replication: networking 시 유리함. 퍼포먼스도.
  • Complex AI: 계산 방식 복잡해질 때 퍼포먼스 좋아짐
  • Working with plugins: 플러그인을 원활하게 사용할 수 있도록 백앤드에서 작업 해줄 수 있음
  • Overriding default class functionality: 오버라이딩과 같은 작업을 유연하게 수행 가능

6. GameMode Improvements

GameMode를 BP로 -> 유연성 확보 가능!

  • C++에서.. : PlayerControllerClass = ATwinSTickPlayerController::StaticClass();
  • BP에서.. : 모든 내용 바로 수정 가능

7. Projectile Improvement

Projectile을 BP로-> 테스트와 변경 쉽게 가능!
새로운 Projectile 발사 가능

profile
공부를 위한 벨로그

0개의 댓글