게임메이커 스튜디오 이후부터는 사운드 설정을 스트림(Streamed)으로 설정한 사운드는 게임 폴더에 사운드파일이 복사되는데, 이들을 하나로 줄여주는 방법이다.

저장:
1. 모든 사용할 BGM파일을 datafiles 폴더에 전부 집어넣는다.
2. 리스트 버퍼와 데이터 버퍼를 만든다.
3. 리스트 버퍼에는 데이터 버퍼 내에 BGM파일을 저장할 위치를, 데이터 버퍼에는 BGM파일의 내용 전부 + 메타데이터를 저장한다.
4. 3을 모든 사용할 BGM파일에 대해 반복한다.
5. 리스트 버퍼와 데이터 버퍼를 각각의 메타데이터와 함께 같은 파일에 저장한다. 이때 파일의 첫 부분은 리스트 버퍼에 해당되는 내용이고, 다음 부분은 데이터 버퍼에 해당되는 내용이다. 저장 시 압축, 암호화 여부는 자유.
6. 5에서 저장한 파일(결과물)을 datafiles 폴더에 넣는다.
7. 남은 BGM파일을 삭제하거나 백업하거나는 자유.

불러오기:
1. 저장 단계에서 저장된 파일을 불러온다.
2. 리스트 버퍼와 데이터 버퍼를 만들고, 각각을 파일 내 리스트와 데이터로 채운다.
3. 리스트 버퍼에서 오프셋을 읽어와, 데이터 버퍼에게 해당 위치부터 읽게 한다.
4. 해당 위치에 있는 BGM파일 데이터를 메타데이터에 적힌 파일명에 저장한다. 경로는 temp_directory 등을 추천.
5. 4를 모든 사용할 BGM파일에 대해 반복한다.
6. 각각 BGM을 각각의 오디오 스트림으로 로드한다. 이의 설정(구간반복 구간, 반복 여부 등) 여부는 자유.
7. 게임이 종료되면 사용했던 BGM들은 삭제한다.

* 메타데이터에는 파일명, 크기, 해쉬값이 들어간다.
** 읽는 과정에는 출력물과 메타데이터 내 크기와 해쉬값을 대조하는 과정이 포함되며, 안맞을 경우 오류를 뿜어낸다.
*** 모든 버퍼는 사용이 끝나면 삭제해야 한다.
**** 사용할 해쉬 알고리즘은 어떤 것이든 상관없으나(되도록 SHA2/SHA3/BLAKE2/BLAKE3 등을 추천) 저장할 때 사용한 해쉬 알고리즘과 저장된 해쉬값을 대조할 때 사용할 해쉬 알고리즘은 동일해야 한다.

by SHOOTING_STAR 2025. 8. 9. 12:59