분류 전체보기 294

[UE5] 최적화를 위한 프로파일링 개요 및 편의 기능들

큰 범위 병목 지점 찾기 프로파일링은 큰 범위에서부터 시작하여 점차 범위를 좁혀가며 분석하는 것이 효율적입니다. 먼저 언리얼 엔진에서 제공하는 콘솔 명령어를 사용하여 큰 범위의 병목 지점을 쉽게 찾을 수 있습니다. 가장 먼저 확인해야 할 것은 어떤 쓰레드에서 병목 현상이 발생하는지, 혹은 GPU에서 발생하는지를 파악하는 것입니다. 이를 가장 잘 확인할 수 있는 방법은 'stat unit' 명령어를 사용하는 것입니다. stat unit은 항목을 구분하여 병목 지점을 쉽게 찾을 수 있도록 큰 범위로 보여줍니다. → 대부분의 경우 분석 시작의 처음은 'stat unit' 또한, stat unitgraph 콘솔 명령어를 사용하여 실시간 그래프와 함께 동일한 지표를 표시할 수도 있습니다. 60프레임을 목표로 한다..

[UE5] 최적화를 위한 프로파일링 사전 준비

독립형 게임으로(Standalone Game) 플레이 일반적으로 쉽게 프로파일링을 할 수 있는 방법은 'Standalong Game'으로 게임을 실행 하는 것입니다. 그렇지만, 좀 더 정확한 프로파일링은 하기 위해서는 패키지 빌드로 게임을 실행해야 겠습니다. 프로파일링 사전 준비 에디터 실시간 업데이트 모드 해제 에디터 최소화 독립형 게임으로(Standalone Game) 실행 후 'Unreal Editor'를 최소화 합니다. Frame Rate Smoothing OFF 프로젝트 세팅에서 다음과 같이 Frame Rate Smoothing을 꺼줍니다. VSync 끄기 콘솔 명령 : r.vsync 0 참고 : Unreal Engine의 VSync Physics Sub Stepping OFF 프로젝트 세팅에서..

실리콘밸리에선 어떻게 일하나요

책의 제목으로 '실리콘밸리에선 이떻게 일하나요'보다는 '메타에선 어떻게 일하나요'가 좀 더 어울립니다. 창업자의 경영 철학이 회사의 비전이 되어 회사 전체의 문화가 되고 이 문화가 인재들을 성장시키고 인재들을 모은다. 메타의 조직 문화는 '자율과 책임'이 뒷받침된 '인간중심'의 문화이다. 자율적인 업무 방식이 성공적으로 유지되기 위해서는 반드시 '책임'이 따라야 한다. bottom-up, 동등함, 공유, 인간중심 등의 키워드가 메타의 조직문화를 설명 한다. 탑다운은 한 정된 인원인 상위에 있는 리더들의 아이디어로, 바텀업은 훨씬 더 많은 사원들의 아이디어로 창의성이 발현된다. 당연히 창의적인 업종에 있다면 어느쪽이 그 성과가 더 좋을지는 어린아이들도 알 것이다. 물론 조직의 비전은 탑다운으로 정해야 겠습..

독서 리뷰 2023.04.23

팀장 리더십 수업 - 다시 읽기

2021년 5월 31일에 처음 읽고 또 다시 '팀장 리더십 수업'을 읽게 되었다. [독서 리뷰] - 팀장 리더십 수업 아는 만큼 보인다는 말이 있듯이 2년전의 나와 지금의 나는 또 다른 사람인 듯 하다. 이 책에 이런 내용이 있었나 싶을 정도로 새롭게 보이는 내용들이 많았다. 이 책은 현재 게임 개발 PD를 맡고 있기에 어떤 것들을 더 잘해야 할지 어떤 것에 소홀했는지 다시 한 번 생각 해 볼 수 있게해 주었다. '점수판'을 보여주라. 팀에 '스크럼 보드'를 아날로그 식으로 표시하기 이해 큰 보드를 구매 했었는데... 아직까지 활용을 못하고 있었다. 이 보드를 활용하여 모두가 목표를 향한 현재의 위치를 잘 알 수 있도록 할 수 있도록 활용해야 겠다. 팀장은 '원숭이'를 키우는 사람을 관리해야지 직접 모두..

독서 리뷰 2023.04.16

[UE] 셰이더 컴파일 속도 올리기(Shader complie)

WorkerProcessPriority는 Unreal Engine에서 셰이더 컴파일러의 우선순위를 설정하는 옵션입니다. 셰이더 컴파일러는 게임의 렌더링에 사용되는 매우 중요한 역할을 수행하는데, 대규모 프로젝트에서는 수많은 셰이더가 존재하기 때문에 컴파일 속도가 매우 느려질 수 있습니다. WorkerProcessPriority설정은 이러한 문제를 해결하기 위해 존재합니다. BaseEngine.ini 파일에서 해당 설정을 변경하면, 각 셰이더 컴파일러의 우선순위가 조정됩니다. 우선순위를 높이면 컴파일 속도가 빨라지지만, 다른 작업들의 우선순위가 낮아질 수 있습니다. WorkerProcessPriority옵션의 값으로는 -2 (Low), -1 (Below Normal), 0 (Normal), 1 (Above..

[UE] Blueprint에서 Shipping, Development 빌드 확인(UE_BUILD_SHIPPING)

다음과 같이 Build Configuration을 가져와서 스트링 비교하여 Shipping 빌드인지 Development 빌드인지 확인 할 수 있습니다. BlueprintFunctionLibrary로 GetGuildConfiguration 함수를 구현해줍니다. class MY_API UMyFunctionLibrary : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintPure, Category = PlusLibrary) static void GetBuildConfiguration(FString& Configuration); }; void UMyFunctionLibrary::GetBuildConfiguration(..

[수학] 미분(Differential)

미분은 영어로 differential(차이) 이고, 한자로는 잘게 나누다는 뜻입니다. 미분 이해의 열쇠는 평균 변화율입니다. 그리고 또하나의 열쇠는 극한입니다. 극한을 이해하지 않고 미분·적분을 제대로 이해 할 수 없습니다. 극한을 이해 하는 이해하는 것은 \(\infty\)(무한대)를 이해하는 것입니다. 미분은 문자 그대로 '미세하게 나눈다'는 말입니다. 즉, 미분은 함수를 한없이 작게 나누는 분석입니다. 무한대는 문자 그대로 '끝없이 크다'는 말인데 이를 상상하기 가장 쉬운 것이 바로 '등차 수열'과 '등비 수열'입니다. 다음의 등차 수열 관련 정의가 낯설다면 다음 글을 참고하세요. : [게임 개발/게임 수학] - 등차 수열 [등차 수열의 일반항] \(\mathbf{a_n} = \mathbf{a_1}..

[수학] 순열(Permutation), 조합(Combination)

순열 순열(Permutation)은 객체를 순서에 따라 배열하는 방법의 수를 나타내는 것입니다. 즉, 순서를 고려하여 뽑는 경우의 수. A, B, C, D, E 5개의 문자중에서 순서를 고려하여 3개를 뽑는 경우의 수는 60(5x4x3)가지입니다. 처음에는 5개 중에서, 다음은 4개 중에서, 그 다음은 3개 중에서 뽑을 수 있기 때문입니다. 기호로 표시하면 다음과 같습니다. $${_5}P{_3}=5\times4\times3 = 60$$ 조합 조합(Combination)은 n개의 객체 중에서 r개의 객체를 선택하는 방법의 수를 나타내는 것입니다. 즉, 선서를 고려하지 뽑는 경우의 수. A, B, C, D, E 5개의 문자중에서 순서를 고려하지 않고 3개를 뽑는 경우의 수는 10가지 입니다. 순서를 고려 했..

[UE5] stat unit

Stat Unit stat unit 콘솔 명령어는 언리얼 엔진 뷰포트 내에서 유용한 성능 지표의 가시성을 전환합니다. 또한, stat unitgraph 콘솔 명령어를 사용하여 지표의 실시간 그래프와 함께 동일한 지표를 표시할 수도 있습니다. 각 항목들의 의미는 다음과 같습니다. Frame 게임의 한 프레임을 생성하는 데 소요된 총 시간입니다. Game 게임 쓰레드에서 사용된 시간입니다. 값이 프레임 시간과 유사하면, 게임 성능은 게임 쓰레드에 의해 병목이 발생한 것으로 보입니다. Draw 드로우: 렌더링 쓰레드에서 사용된 시간입니다. 값이 프레임 시간과 유사하면, 게임 성능은 렌더링 쓰레드에 의해 병목이 발생한 것으로 보입니다. GPU GPU: 씬 렌더링에 사용된 GPU에서 소요된 시간입니다. GPU 시..