# Claude Code Session - ViBe1 Delta ## Estado del Proyecto **Proyecto:** ViBe1 Delta - Simulador de sprites con fisica **Objetivo:** Implementar delta time para separar bucle de proceso del de renderizado ## Progreso Actual ### βœ… Completado 1. **Configuracion inicial** - Reestructurar codigo: movido utilidades a `source/external/` - Filtro nearest neighbor para texturas pixel-perfect - Compilacion funcionando (Make y CMake) 2. **Sistema de metricas** - Contador FPS en esquina superior derecha (amarillo) - Control V-Sync con tecla "V" (ON/OFF) - Display V-Sync en esquina superior izquierda (cian) 3. **Mejoras visuales** - TamaΓ±o pelota: 8x8 β†’ 10x10 pixels - Fondo aclarado: (32,32,32) β†’ (64,64,64) - Textura pelota redibujada con mejor calidad ### 🚧 En Proceso - **Proximos pasos:** Implementar sistema delta time - **Problema detectado:** Caracteres extraΓ±os en README.md (encoding) ### πŸ“‹ Controles Actuales | Tecla | Accion | |-------|---------| | V | Alternar V-Sync ON/OFF | | 1-8 | Cambiar numero de pelotas (1 a 100,000) | | ESPACIO | Impulsar pelotas hacia arriba | | G | Alternar direccion gravedad | | ESC | Salir | ## Arquitectura Actual ``` source/ β”œβ”€β”€ main.cpp # Bucle principal + FPS/V-Sync β”œβ”€β”€ ball.h/.cpp # Logica fisica pelotas β”œβ”€β”€ defines.h # Constantes (BALL_SIZE=10) └── external/ # Utilidades externas β”œβ”€β”€ texture.h/.cpp # Gestion texturas + nearest filter β”œβ”€β”€ sprite.h/.cpp # Sistema sprites β”œβ”€β”€ dbgtxt.h # Debug text + nearest filter └── stb_image.h # Carga imagenes ``` ## Bucket Actual: FPS Acoplado El sistema usa bucle acoplado a 60 FPS: ```cpp if (SDL_GetTicks() - ticks > DEMO_SPEED) { // 16.67ms // Solo aqui se actualiza fisica } ``` **Problema:** Fisica dependiente del framerate β†’ Inconsistencia cross-platform ## Delta Time - Plan de Implementacion 1. **Sistema timing independiente** 2. **Bucle desacoplado** logica vs renderizado 3. **Interpolacion** para renderizado suave 4. **Optimizaciones** rendimiento --- *Archivo de seguimiento para sesiones Claude Code*