¡Maestro, entre rápido! ! !
Generalmente los juegos en formato rar zip se comprimen en paquetes de instalación o paquetes comprimidos.
Espero que todos hablen más sobre la próxima cosa mejor en el mundo.
Acabas de leer un artículo.
Cómo leer el archivo del paquete comprimido en el juego-.
La dirección de la página es: /yinuit/2005-10-17/article_view_770.htm.
-
Compramos un juego en el mercado y es raro ver fácilmente un montón de imágenes de recursos BMP y PCX en el directorio del juego. ¿No utilizan archivos como BMP para recursos de imágenes? No, de hecho empaquetaron y comprimieron estas imágenes de recursos.
Pone algunos ejemplos de juegos. El famoso archivo mixto de Red Alert de Westernwood es un paquete comprimido que contiene montones de imágenes, sonidos y otros recursos del juego. además. Los archivos mpq de las series "StarCraft", "Diablo" y "Warcraft" de Blizzard también son paquetes comprimidos que contienen recursos utilizados por varios juegos. Casi todos los juegos utilizan archivos comprimidos.
Entonces, ¿por qué utilizar este tipo de paquete comprimido? Hay muchas razones. La primera es la compresión. Las imágenes y otros recursos utilizados en el juego son extremadamente adecuados para la compresión, lo que reduce el tamaño del juego. Si se desagregan todos los recursos de Red Alert 2, creo que superará el 3G. En segundo lugar, la reducción del tamaño del archivo después de la compresión aumentará significativamente la velocidad de lectura del disco. Normalmente, un archivo BMP de 2 M se puede comprimir a menos de 700 K. Como puede imaginar, la velocidad de leer un archivo de 2 M se compara con la velocidad de leer un archivo de 700 K y luego descomprimirlo en la memoria. Finalmente, empaquetar una gran cantidad de archivos de recursos puede aclarar el directorio del juego en lugar de montones de carpetas y archivos, lo que puede reducir el desperdicio de espacio en el disco y reducir la fragmentación del disco.
Habiendo dicho tantos beneficios de los paquetes comprimidos, ¿cómo utilizamos los paquetes comprimidos en los juegos?
1. Necesitamos definir nuestro propio formato de almacenamiento de archivos de paquete comprimido.
2. Según 1, escribimos una herramienta de compresión para comprimir y almacenar los recursos del juego.
3. Según 1, escribimos una biblioteca de descompresión para nuestro juego.
4. En el código del juego, llamamos a esta biblioteca para leer los archivos de nuestro paquete.
Viendo esto parece que aún nos queda mucho trabajo por hacer y es muy complicado. Para definir una estructura de archivos, debe escribir una herramienta de compresión y una biblioteca de descompresión. De hecho, lo usamos en el paso final, donde simplemente llama a una biblioteca. Parece que la ganancia supera la pérdida. Bien, ahora necesitamos encontrar un atajo para resolver el problema del uso de paquetes comprimidos en nuestro juego. 1 y 2 son realmente muy fáciles. Existen muchos programas de compresión que pueden generar paquetes comprimidos. WinZip, Winrar y Winace son muy buenas herramientas de compresión. No necesitamos definir el formato de almacenamiento del paquete comprimido ni escribir una herramienta de compresión. Completó los pasos 1 y 2 sin esfuerzo. ¿Qué pasa con el tercer paso? No diseñamos el formato de almacenamiento de archivos, por lo que no tenemos forma de saber cómo se organizan y comprimen los archivos, y mucho menos cómo. Sin embargo, todavía podemos obtener algunos códigos fuente descomprimidos en formatos winzip y winrar mediante búsquedas en línea. Sin embargo, es difícil estudiar estos códigos, y mucho menos usarlos en tus propios juegos.
Aquí nos encontramos con una prueba severa. Ahora permítanme presentarles nuestra arma mágica: el sistema de archivos MDFile. Entonces, ¿qué es MDFile? MDFile es una biblioteca de operaciones de archivos extensible que puede leer archivos en cualquier formato de paquete comprimido de la forma más sencilla. Entonces, en este punto, nuestros 3 y 4 también se pueden implementar. Tomemos MDFile como ejemplo para ilustrar cómo usarlo para leer archivos en nuestro paquete.
Primero debemos obtener la biblioteca MDFile, descargarla de la Red de consultoría de tecnología de desarrollo de juegos de China, hacer clic en la dirección original, buscar MDFile y descargarlo.
Coloca la biblioteca en tu proyecto y configúrala.
No entraré en detalles aquí sobre cómo configurar bibliotecas externas. De lo contrario, puede consultar libros relevantes. Bien, comencemos nuestro código. Tomemos como ejemplo la lectura de un archivo test.txt en test.zip:
Agregamos una función LoadFile al programa para cargar los archivos en el paquete.
bool cargar archivo (char* nombre de archivo, char* paquete de archivo)
BYTE * buf = NULL // Se utiliza para almacenar el contenido del archivo leído.
CMD _ File CMD File(" zipext . dll "); // Pongamos un ejemplo.
archivo cmd. Open("test.zip ", true, true); //Abre el paquete comprimido test.zip
cmdfile. localizar(" prueba . txt "); // Navega hasta el archivo test.txt.
buf = nuevo byte [cmdfile. GetLength()]; //Asigna memoria según el tamaño del archivo test.txt
cmd. Read(buf); //Lee el archivo en la memoria.
En este punto, el contenido del archivo test.txt en test.zip que necesitamos se ha almacenado en buf.
¿No es muy sencillo?
Los amigos cuidadosos pueden haberlo notado, cmd _ file cmd file(" zipext . dll ");
¿Qué significa esta inicialización? ZipExt.dll es la biblioteca de extensiones que abre nuestras pruebas. Archivo Zip, debido a que MDFile en sí no admite el formato Zip, admite un formato de paquete de compresión interno llamado epk. Para que sea compatible con zip, debe obtener la biblioteca de extensiones ZipExt.dll. Del mismo modo, si necesita compatibilidad con Rar, debe obtener la biblioteca de extensiones RarExt.dll. Afortunadamente, el paquete MDFile que acabamos de descargar ya contiene un ZipExt.dll (en Sample\Sample4\Release). @j-s Studio también desarrolla constantemente bibliotecas de extensiones MDFile, lo que nos permite utilizar formatos de paquetes más comprimidos.
Cabe mencionar que es muy sencillo utilizar este software de compresión listo para usar para crear paquetes de archivos, pero también existen muchos problemas, como la seguridad. A veces no queremos que otros vean los recursos utilizados en el juego. Si utilizamos el formato Zip, otros podrán solucionarlo y modificarlo fácilmente. En este momento, es mejor utilizar el formato epk en MDFile. Utiliza tecnología de cifrado dinámico y el formato epk no es compatible con otro software de compresión. Aparte de eso, algunas de sus otras características también son excelentes. Al mismo tiempo, para admitir el formato epk, también proporciona un programa JSFilePacker para empaquetar los archivos necesarios y guardarlos en formato epk. Todos estos están disponibles en el archivo MDFile que descargamos. ? (JSFilePacker está en Herramientas)
Descargue la biblioteca de archivos MD/Programa/Otro/archivo MD ahora.