Files
vibe3_physics/tools
Sergio Valor 4d3ddec14e fix: Regenerar resources.pack automáticamente cuando cambian archivos en data/
**Problema crítico detectado:**
- resources.pack del 5 oct (14 días antiguo, 1.3 KB)
- Archivos en data/ modificados recientemente (logo.png: 18 oct)
- make *_release NO regeneraba resources.pack automáticamente
- Releases distribuían resources.pack obsoleto

**Causa:**
Makefile línea 108 solo dependía de $(PACK_TOOL):
```makefile
resources.pack: $(PACK_TOOL)  # ← Faltaban archivos de data/
```
Result: Make decía "up to date" aunque data/ tuviera cambios

**Solución:**
Añadido wildcard con todos los archivos de data/ como dependencias:
```makefile
DATA_FILES := $(shell find data -type f 2>/dev/null)
resources.pack: $(PACK_TOOL) $(DATA_FILES)  # ← Ahora detecta cambios
```

**Verificación:**
 Regeneración completa: 1.3 KB → 3.7 MB (16 recursos)
 Detección de cambios: touch data/logo.png → regenera automáticamente
 Eficiencia: Si no hay cambios → "up to date" (no regenera)
 tools/pack_resources: +x permisos de ejecución

**Impacto:**
Todas las recetas *_release ahora regeneran resources.pack si hay cambios

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 09:11:53 +02:00
..

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)

cd tools/
make

Opción 2: Compilación manual

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

# Desde el directorio tools/
make create_pack

# O manualmente:
./pack_resources ../data ../resources.pack

Crear pack de prueba

# 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

# 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"

# 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

# Limpiar y recompilar
make clean
make

El programa no encuentra los recursos

# 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.