(2022) 공부 (Study)/게임 개발 (Development)

Win32API - 출력 디렉터리 및 리소스 경로 관리

수낭 2022. 8. 11. 16:09

 

[1] Output 경로 관리

기존의 정리되지 않은 출력 파일들의 모습

 

프로젝트 속성 ➝ 구성 속성 일반 출력 디렉터리

기본으로 설정된 모습

&(SolutionDir) : Solution(.sln) 파일이 위치한 경로
&(Platform) : 플랫폼 이름의 폴더 x64 or x32
&(Configuration) : 구성 이름의 폴더 Debug or Release
구성 형식 : (App이름).exe 형태  원하는 이름으로 수정한 결과물을 낼 수도 있다. (ex. MapleStory.exe)

 

Debug x64에 대한 설정

Release x64의 경우, bin_debug가 아닌 bin으로 설정하였다.

 

출력된 결과 모습이다.

 

[2] Resource 경로 관리

추후에 Output 폴더 내부의 bin 폴더만 통채로 배포하면, 게임을 구동시킬 환경을 옮길 수 있는 것이 된다.
그러므로, Resource들 또한 Output 폴더에 같이 넣어두는 것이 좋다.

x64환경의 Output 폴더 내부에 content 폴더를 만들고 리소스들을 넣어두고
x32환경에서 리소스에 접근해야 하는 경우를 대비해 x32 환경에서도 x64의  Output의 content에 해당하는
경로의 리소스를 공유해서 사용하도록 경로를 잡아주면 된다.
(*) 궅이 리소스를 두 곳에 똑같은 파일들을 놔 둘 필요가 사라지므로 권장하는 방식

이러한 경로들을 잘 관리하기 위해서 PathManager 클래스를 만들어서 관리해주도록 한다.
(Resource 클래스와 자식인 Texture, Sound 등의 경로를 모두 PathManager 클래스를 통해 관리해주도록 하면 편리하다.)

 

[3] 시작 경로의 통일화

22 - Path Manager ➝ 중요한 내용 다룬다.

Windows에서 제공하는 기본 함수 중에,  GetCurrentDirectory()를 사용하면 된다.
다만 주의해야 할 점이 있다.

Visual Studio에서 F5를 눌러 실행했을 때의 모습 :  Solution(.sln) 파일의 위치가 시작 경로

물론, Debug 폴더나 Release 폴더에서 실행 파일(.exe)을 통해 실행한 경우 해당 실행 파일의 경로시작 경로가 된다.

- Visual Stduio에서 debugging을 통해서 실행하게 되면, Solution 파일(.sln)이 시작 경로로서 열리지만,
실행 파일(.exe)로 직접 실행하게 되면, 실행 파일이 시작 경로로서 열리는 것에 주의해야 한다.

 

프로젝트 속성 - 디버깅 - 작업 디렉터리 : 시작 경로 설정 가능

프로젝트 속성을 통해 시작 경로를 지정이 가능하다.
이를 $(SolutionDir)Output\bin\ 경로로 변경해주면 된다.
(기본적으로 F5로 디버깅 모드로 실행하는 경우 $(ProjectDir)이 시작 경로로 잡혀있다.)

시작 경로가 x64의 .exe 파일의 경로와 똑같이 잡힌 모습 (bin 폴더)

 

※ 다만, 위와 같이 bin\.. 경로로 리소스 파일들을 담아두는 경우,
github에 commit 할 시, .gitignore에 기본 등록된 bin 경로로 인해 리소스는 올라가지 않게 된다.
(물론, .gitignore 목록에서 bin을 제외하거나, 폴더명을 bin->bin_release와 같은 방식으로 바꿔주면 된다.)

 

이상으로 포스팅을 마칩니다.