들어가기
개인적으로도 정리해두면 프로젝트 시작할 때마다 보기 좋을 것 같아서 정리해둡니다.
이 페이지는 생각나는 게 더 생길 때마다 내용이 추가될 수 있을 것 같습니다.
추가되는 내용들은 날짜와 함께 추가되었다는 표시를 해 두겠습니다.
새로운 프로젝트를 시작할 때
언리얼 엔진 기준 새로운 프로젝트를 시작할 때 미리 고민해두면 좋은 것들.
혹은 미리 세팅해두면 이로운 것들.
- 외부 리소스 관리 규약
- 프로젝트에 도입할 외부 리소스 관리를 어떻게 할 것인가?
- 외부 리소스는 최대한 원본을 유지하는 것이 이로움
- 외부 리소스만 관리하는 별도 프로젝트 파일을 운영하는 것도 방법
- 메인 프로젝트엔 게임에 실제 사용될 리소스만 마이그레이션
- 테스트 리소스 관리 규약
- 실제 게임에 들어가지 않을 리소스에 대한 관리 방법을 정해두는 것이 좋음
- 인게임 리소스와 참조 관계가 형성되지 않도록 미연에 방지할 수 있으면 베스트
- 보통 컨텐츠 폴더 아래에 여러 팀들이 디렉토리를 형성해 리소스를 보관
- 팀 별로 공통적인 테스트 리소스에 대한 규칙을 만들어 드리면 좋음
- 테스트용 리소스 폴더의 네이밍을 통일
- 테스트용 리소스의 리소스 네임 규칙을 통일
- Developers 폴더 사용하는 방법도 고려
- 테스트 리소스용 폴더는 빌드에서 제외
- 검증 툴로 테스트 리소스 사용 현황 검증 및 알림
- 아트 리소스 규약
- 3D 메시, 2D 텍스쳐, 애니메이션, 이펙트, 머테리얼 등 아트 리소스의 규약을 미리 정하는 게 좋음
- 참고로 하는 게임들의 아트 리소스를 파악해보는 것이 도움이 됨
- 가능한 디테일하게 규약을 정해두는 것이 좋음 (추후 변동 되더라도)
- 퀄리티 세팅에 따라 어떻게 리소스를 출력할 것인가?
- 타겟으로 하는 디바이스 별로 어떻게 출력할 것인가?
- 텍스쳐 그룹은 어떻게 나눌 것인가?
- 텍스쳐 제작은 어떤 기법들을 사용할 것인가? 트림 시트?
- 캐릭터의 본 갯수는 몇 개가 적당한가?
- 에셋 네이밍은 어떻게 갈 것인가?
- PBR 수치 범위는 어떻게 정할 것인가? 배경, 이펙트, 캐릭터는 어떻게 달리 갈 것인가?
- 버텍스 컬러는 사용할 것인가?
- 엔진 기능 사용 규약
- 개발하는 게임에 필요한 기능들과 불필요한 기능들 분리 (추후 변동 되더라도)
- 최대한 자세히 분리하여 개발에 불필요한 기능들이 사용되는 걸 방지
- ex. Volumetric Fog를 사용할 것인가?
- ex. 타겟 디바이스가 지원하는 기능인가?
- ex. 레이트레이싱 기능을 사용할 것인가? 어디까지 사용할 것인가? 그림자? 간접광?
- ex. RVT를 사용할 것인가?
- ex. Level Instance, PackedLevelActor를 사용할 것인가?
- ex. 폴리지는 어떻게 배치할 것인가? PCG? GrassType? FoliageTool?
- 최적화가 필요한 엔진 기능 미리 파악
- 새로 구현이 필요한 엔진 기능 미리 파악
- 검증 툴 마련
- 월드에 배치된 액터들이 올바른 규칙을 따르는지 검증하는 툴 필요
- 꼭 엔진에 제시된 규칙 뿐만 아니라 프로젝트에서 정한 특별한 규칙이 있다면 다 포함시킬 수 있다. 예컨대, 쓰지 않기로 한 액터 클래스가 있다면 삭제 경고를 출력하도록.
- 컨텐츠 브라우저에 저장된 에셋들이 올바른 규칙을 따르는지 검증하는 툴 필요
- 자동 수정까지 가능하면 베스트
- 프로젝트에서 사용하는 협업 툴에 공지 및 알림 기능으로 연동 가능하면 베스트
- 요청 사항 페이지를 운영하는 것이 작업에 도움이 됨
- 여러 팀과 협업하는 부서일수록 요청 사항을 정리해둘 수 있는 페이지가 필요
- 페이지 작성 규약을 정해서 외부 팀에서 작성 해주면 본인 팀에서 확인 및 관리
- 요청 사항이 있는 팀도 해당 페이지를 확인하여 업무 진척도 등 확인 가능
- 새로운 레벨의 프리셋을 미리 마련해 레벨별 규격 통일
- 랜드스케이프, RVT, 라이트나 구름 등 레벨 전반에 걸쳐 항상 세팅되어야 하는 오브젝트들은 모든 레벨에 걸쳐 통일된 규격을 갖고 있는 것이 개발에 용이
- 미리 몇 가지 레벨 프리셋을 만들어 두어 새로운 레벨이 생성될 때마다 정해진 규칙대로 레벨이 자동 생성되도록 안내