아마 지금의 자료를 찾지 못했다면 바로 포기했을 것이다.
https://de.slideshare.net/GerkeMaxPreussner/gdc-europe-2014
상당히 유용한 슬라이드였다.
이때 GDC를 갈 기회가 사실 있었는데 왜 안갔을까... GTC가서 물론 재밌게 놀긴(?) 했지만 조금 후회가 된다...
항상 소스코드를 어떻게 어디부터 봐야할지 몰랐는데 디렉터리부터 차근차근 알아가니 좀 진입장벽이 낮아지는 느낌(?)
여하튼 좀 정리를 해본다.
아직 보지 않은 부분이기때문에 해당 강의 내용기반으로 정리하는 중이긴 하지만 나중에 하나하나 뜯어보면서 차근차근
틀린 내용에 대해서는 갱신을 하겠다
우선 크게 Engine과 Programs 로 나뉘는데
Engine은 모든 code, contents, configurate 등등을 다루고 있는 게임 엔진의 가장 핵심 부분이라 할 수 있다.
Programs는 다양한 프로젝트들이 나열되어 있는것으로 봐서 StandAlone Application들이나 개발 Tool들을 의미한다고 한다.
우선 엔진 폴더부터 봐보자.
하나씩 폴더 설명부터 정리해 보자면
- Build : 엔진부 코드들을 빌딩하는데 필요한 파일들
개발 플랫폼 별로 폴더들이 정리되어있다
- Config : Configuation 파일
역시 개발 플랫폼 별로 폴더가 잘 정리가 되어있다. ini파일들을 살펴보면 에디터부터 게임, 하드웨어등 기본 설정값들이 어떤식으로 사용되는지 유추해볼 수 있다.
- Content: Shared Engine Context라고 되어있다.
실체가 뭘까 궁금해서 실제로 폴더를 열어보니 에디터에서 유저가 게임 개발에 사용하는 class들이 .template형식으로 저장되어 있다.
- Extras: VisualStudioDebugging 이란 폴더가 있고 Visualizer라고 되어있는것으로 유추하여보면 Visual Studio의 Custom Visualizer를 Editor에서 쓰기위해 설정값들이 저장되어있는것으로 추정된다.
- Plugins: 게임 Project에 필요한 플러그인으로 Component라고 불러야하나... Editor나 Runtime에서 필요한 기능을 관리하는 폴더라고 보면 될듯하다.
잘 알겠지만 언리얼은 Plug-in형태로 기능을 추가할 수 있다.
- Programs: 폴더를 열어보면 빌드툴과 헤더툴이라고 나온다. 언리얼4 빌딩의 자동화를 위한 도구인데 자세한건 다음에 빌드툴 관련해서 작성할때 참고하도록 하자. 생각보다 내용이 정리하기 힘들다...
궁금한 사람들은 https://docs.unrealengine.com/en-us/Programming/BuildTools 참조를 하자.
- Shaders: 언리얼 쉐이더 파일들로 확인되고 있고 쉐이더를 만들경우 이 폴더에 두고 작업해야한다.
나중에 리뷰하겠지만 궁금하면 https://www.unrealengine.com/ko/blog/how-to-add-global-shaders-to-ue4 요길 참조하자
- Source: 여기가 핵심이다. 메인 소스코드가 전부 있다. 하위 폴더를 잠시 살펴보면 사용가능한 API들을 구현해 놓은 파일들을 가져다 놓았다.
Editor: Unreal 에디터에서 사용할 수 있는 API이다.
Developer: 개발 전용 API로 shader 컴파일러같은것들이 있는걸로 보아 Runtime에서는 사용되지 않을 API들을 의미하는 것 같다
Runtime: 어디서든 사용 가능한 런타임 관련 API들이 있다.
ThirdParty: 언리얼에서 사용하는 Thirdparty lib들에 대한 경로라던가 플랫폼별 세팅들에 대한 C#스크립트와 XML파일이 들어있다.
일단은 간단히 여기까지 1-2에서 보도록 하고 1-3에서 본격적으로 하나하나 어떤식으로 파볼지 결정하자.
Programs폴더는 다음 기회에 Engine이 어느정도 정리 되면 시작하겠다.
폴더에 무엇이 있는지 전혀 알기 힘들었는데 이제 하나하나 보다보니 대충의 언리얼이 얼마나 큰 덩어리였는지 알 수 있게 되었다...
과연 Unreal5 이전에 이 분석 작업이 끝날 수 있을까 궁금하다.... 분발해야지...