# ViBe2 Modules - Simulador de Sprites con Física Modular ## Propósito del Proyecto Este proyecto es una evolución de **[vibe1_delta](https://gitea.sustancia.synology.me/JailDesigner/vibe1_delta)**, diseñado específicamente para **aprender y practicar la modularización de código**. El objetivo principal es tomar el código monolítico existente y reestructurarlo en módulos bien organizados. ### Fases del Proyecto #### Fase 1: Modularización (Actual) - **Objetivo**: Convertir el código monolítico en una arquitectura modular - **Meta de aprendizaje**: Entender cómo estructurar proyectos C++ en módulos coherentes - **Beneficios esperados**: - Código más mantenible y legible - Mejor separación de responsabilidades - Facilitar futuras extensiones y modificaciones #### Fase 2: Nuevas Características (Futura) - **Objetivo**: Añadir características divertidas a la demo de física - **Prerrequisito**: Completar la modularización - **Ideas potenciales**: Por definir después de la modularización ## Descripción Técnica **vibe2_modules** es una simulación de física de pelotas rebotando desarrollada con: - **SDL3**: Para renderizado y manejo de ventanas - **C++20**: Estándar moderno de C++ - **CMake**: Sistema de construcción - **Física con Delta Time**: Sistema de tiempo independiente del framerate ### Características Actuales - ✨ **Múltiples temas visuales**: ATARDECER, OCÉANO, NEÓN, BOSQUE - 🎮 **Escenarios configurables**: 1 a 100,000 pelotas - ⚡ **Optimizaciones**: Batch rendering para alto rendimiento - 🎨 **Efectos visuales**: Fondos degradados y paletas de colores temáticas - 🔧 **Debug integrado**: Contador FPS, información de física, controles V-Sync ### Controles - **1-8**: Cambiar número de pelotas (1, 10, 100, 500, 1K, 10K, 50K, 100K) - **T**: Ciclar entre temas / **F1-F4**: Seleccionar tema específico - **ESPACIO**: Impulsar pelotas hacia arriba - **G**: Invertir gravedad - **V**: Alternar V-Sync - **H**: Mostrar/ocultar información de debug - **ESC**: Salir ## Construcción ```bash mkdir build && cd build cmake .. make ``` ## Estructura Objetivo (Post-Modularización) ``` vibe2_modules/ ├── source/ │ ├── core/ # Funcionalidades básicas │ ├── physics/ # Sistema de física │ ├── rendering/ # Sistema de renderizado │ ├── input/ # Manejo de entrada │ ├── themes/ # Sistema de temas │ └── external/ # Bibliotecas externas ├── data/ # Recursos (texturas, assets) └── build/ # Archivos de construcción ``` --- *Este proyecto forma parte del aprendizaje de arquitectura de software y buenas prácticas en C++.*