# ViBe3 Physics - Herramientas de Recursos Este directorio contiene herramientas para empaquetar los recursos del proyecto en un archivo único y ofuscado. ## 📁 Archivos - **`pack_resources.cpp`** - Código fuente de la herramienta de empaquetado - **`Makefile`** - Sistema de compilación para la herramienta - **`README.md`** - Esta documentación ## 🔧 Compilación ### Opción 1: Usar Makefile (Recomendado) ```bash cd tools/ make ``` ### Opción 2: Compilación manual ```bash cd tools/ g++ -std=c++17 -I../ pack_resources.cpp ../source/resource_pack.cpp -o pack_resources ``` ## 📦 Uso de la herramienta ### Crear pack de recursos ```bash # Desde el directorio tools/ make create_pack # O manualmente: ./pack_resources ../data ../resources.pack ``` ### Crear pack de prueba ```bash # Desde el directorio tools/ make test_pack # O manualmente: ./pack_resources ../data test_resources.pack ``` ## 📋 Comandos del Makefile | Comando | Descripción | |---------|-------------| | `make` o `make all` | Compila la herramienta de empaquetado | | `make pack_tool` | Compila la herramienta de empaquetado | | `make test_pack` | Crea un pack de recursos de prueba | | `make create_pack` | Crea el pack de recursos final | | `make clean` | Limpia archivos generados | | `make help` | Muestra la ayuda | ## 🎯 ¿Qué se empaqueta? La herramienta empaqueta **solo** el contenido del directorio `data/`: ``` data/ ├── balls/ ✅ Empaquetado (texturas de sprites) └── logos/ ✅ Empaquetado (PNG shapes) ``` **NO se empaqueta:** - Archivos de sistema - Config (ViBe3 no usa carpeta config) ## 🔐 Características del pack - **Formato binario personalizado** con cabecera "VBE3" - **Encriptación XOR** simple para ofuscar contenido - **Checksums** para verificar integridad - **Compresión** por concatenación de archivos - **Tamaño típico:** ~500KB para todos los recursos ## 🚀 Integración en ViBe3 El proyecto automáticamente detecta si existe `resources.pack`: 1. **Con pack:** Carga recursos del archivo empaquetado 2. **Sin pack:** Carga recursos desde `data/` (modo desarrollo) El sistema usa fallback automático en `source/external/texture.cpp` ## 📝 Ejemplo completo ```bash # 1. Ir al directorio tools cd tools/ # 2. Compilar herramienta make # 3. Crear pack final make create_pack # 4. El juego ahora usará resources.pack automáticamente ``` ## 🆘 Solución de problemas ### Error: "No such file or directory" ```bash # Verificar que estás en el directorio correcto pwd # Debe mostrar .../vibe3_physics/tools # Verificar que existe el directorio data ls ../data ``` ### Error de compilación ```bash # Limpiar y recompilar make clean make ``` ### El programa no encuentra los recursos ```bash # Verificar que resources.pack está en el directorio raíz del proyecto ls ../resources.pack # Verificar el tamaño del pack (debe ser ~500KB) ls -lh ../resources.pack ``` ## 📊 Información técnica - **Archivos empaquetados:** ~10-20 recursos (texturas PNG) - **Tamaño sin comprimir:** ~500KB de recursos individuales - **Tamaño empaquetado:** ~400KB (reducción ~20%) - **Tiempo de empaquetado:** < 1 segundo - **Compatibilidad:** Windows, Linux, macOS --- **Nota:** ViBe3 Physics no usa archivos de configuración externos.