답변:
SharpZipLib 또는 DotNetZip을 살펴볼 수도 있습니다. DotNetZip을 사용하면 Stream
직접 액세스 할 수 있습니다. 이는 파일과 달리 스트림에서로드 할 수있는 대부분의 C # 라이브러리에 도움이됩니다. 또한 DotNetZip은 법적으로 의심되는 예외를 제외하고 GPL 대신 Ms-PL (BSD-Like)을 사용합니다.
또 다른 옵션은 텍스처 아틀라스 를 사용 하는 것입니다. 많은 작은 이미지에는 몇 개의 큰 이미지가 있습니다. 이것들은 실제로 조금 더 빠르게로드되고 당신이 그리는 방법에 똑똑하면 런타임에 약간 더 빠릅니다.
마지막으로 관련 무손실 압축기 (PNG, FLAC 등)를 통해 각 자산 유형을 실행하고 플랫 파일 (기본적으로 압축이 비활성화 된 zip 파일)에 저장할 수 있습니다. 압축 된 데이터를 압축하지 마십시오 . 대부분의 경우 크기 가 커집니다 .
일부 선행 기술 :
옵션은 압축 텍스처를 만드는 데 사용하는 것과 동일한 압축 형식으로 이미지를 저장하는 것입니다. 이것은 하나의 손실 형식을 다른 형식으로 변환하지 않지만 데이터를 손실 형식으로 저장한다는 이점이 있습니다. 텍스처에 따라 이러한 파일을 압축 된 아카이브에 저장하면 얻을 수있는 것이 여전히 있습니다.
압축 된 텍스처에 대한 자세한 정보는이 답변을 참조하십시오 : https://gamedev.stackexchange.com/a/5177/3505
ZLIB는 좋은 해답이 될 수 있지만, 사람들이 애셋을 가져 오는 것을 알고 있다면 애셋을 저장하기위한 고유 한 파일 형식을 만들 수도 있습니다.
그것을 만드는 방법은 다음과 같습니다 .
C #이지만 C #은 C 및 C ++과 비슷하기 때문에 배우기가 어렵지 않아야합니다.
물론, 여전히 지식이 높은 사람들은 리소스를 확보 할 수 있습니다. 원하는 경우 암호화를 거의 추가하지 않아도됩니다.
이것은 매우 유용 할 수 있지만 파일을 결합 할뿐입니다. 압축에도 두 가지 선택이 있습니다.
전체 자원 파일을 작성하고 압축하여 배송하십시오.
이 방법은 쉽지만 그리 좋지는 않지만 하나의 리소스 만 사용하려면 모든 것을 압축 해제해야합니다.
모든 리소스를 압축하고 리소스 파일에 압축을 추가하십시오.
각 파일이 개별적으로 압축되기 때문에 방법 1 옆의 크기가 약간 증가하지만 유연성을 원한다면 더 좋습니다.
각 방법에는 고유 한 단점이 있으므로 현명하게 선택해야합니다. 일반적으로 게임의 리소스 수가 매우 적 으면 방법 1이 더 좋을 것입니다. LOTS를 사용하는 경우 모든 리소스의 크기가 함께 얻는 추가 용량을 압도하기 때문에 방법 2가 적합해야합니다.
압축 라이브러리의 경우 다음이 있습니다.
게임 내에서 빠른 액세스를 원한다면 LZO와 함께 갈 것이므로 실시간 압축 해제에 대해 걱정할 필요가 없으며 균형 잡힌 압축 해제 비율과 크기를 원할 경우 파일을 축소하거나 Zlib 자체로 축소하려면 7-Zip을 두려워하지 않아도됩니다.
선택은 당신입니다 : D
아, 물론 데이터를 압축하는 다른 알고리즘이 있으며 그 인터넷 검색을 찾을 수 있습니다 .