-
2026-03-21 PostFX Stable
released this
2026-03-21 11:10:51 +01:00 | 0 commits to main since this releaseNovedades respecto a la release 2026-03-18 "Pulint cosetes"
Nuevas funcionalidades
- Sistema PostFX completo con SDL3_GPU: migración a renderizado de 2 pasos con post-procesado GPU (Vulkan/Metal/Direct3D). Nuevos efectos: aberración cromática y scanlines. Controles F5 (toggle), X (ciclo modos), F6 (viewport/scissor),
--postfxdesde CLI. - Soporte SPIR-V / Vulkan: shaders compilados a SPIR-V integrados como headers C++ para Linux y Windows. SPIR-V pre-compilados opcionales si
glslcno está disponible. - Soporte Metal en macOS: conversión de SPIR-V a Metal vía
spirv-crosspara los shaders de GpuShaderPreset. - F7/F8 redimensionan el campo lógico en tiempo real. F1/F2 muestran notificación de zoom.
- Benchmark CPU-only: medición de rendimiento sin ventana visible durante la fase de benchmark.
- BOIDS limitado a escenarios ≤1.000 bolas para evitar degradación de rendimiento.
- HUD de ayuda rediseñado: 3 columnas, colores diferenciados, fuente reducida.
Correcciones de bugs
- Escalado de texto en resoluciones altas y con F4 (fullscreen real).
- Off-by-one en
sprite_capacitypara overlay en escenario 8. - Límite de sprites en modo SHAPE con muchas bolas.
- Guard de padding inferior en HelpOverlay y padding asimétrico con
getGlyphHeight(). - Texto de ayuda sincronizado con las constantes
DEFAULT_SCREEN_*/ZOOMdedefines.hpp. - Rutas en
c_cpp_properties.jsonpara Windows. - Error "ruta no encontrada" en Windows con
find. - Figura 3D y texto en fullscreen real.
- Correcciones varias en Makefile.
Refactors y mejoras internas
- Eliminación del sistema de shaders externos (
ShaderManager+GpuShaderPresetexterno): los shaders pasan a ser headers embebidos. - Auditoría completa del código: reorganización de ficheros en subsistemas, limpieza de código muerto (constantes legacy, métodos sin usar).
- F5 y X separados como acciones distintas en PostFX. Notificaciones normalizadas a castellano con title case.
- Centralización de la fuente de UI y unificación del log de consola.
- Constante
SCENE_BALLS_Ny fix del HUD overlay en modo SHAPE. - Eliminación de GPU compute BOIDS (prevenía crash en macOS).
Build
pack_resourcescompilado con C++20 (soportestd::ranges) entools/Makefile.- Supresión del falso positivo
-Wstringop-overflowenstb_image.h. - Vulkan SDK opcional: el build usa SPIR-V pre-compilados si el SDK no está presente.
- Eliminación de código muerto en
MakefileyCMakeLists.txt. - Fixes de clang-tidy aplicados (excepto
uppercase-literal-suffix).
Downloads
- Sistema PostFX completo con SDL3_GPU: migración a renderizado de 2 pasos con post-procesado GPU (Vulkan/Metal/Direct3D). Nuevos efectos: aberración cromática y scanlines. Controles F5 (toggle), X (ciclo modos), F6 (viewport/scissor),
-
2026-03-18 Pulint cosetes Stable
released this
2026-03-18 18:24:17 +01:00 | 48 commits to main since this releaseNovetats des de la v2026-03-13
Noves funcionalitats
Mode Quiosc
- Afegit mode quiosc per a instal·lacions desateses: bloqueja els canvis de mode de finestra i mostra un avís quan l'usuari intenta modificar-los.
Escenari personalitzat per paràmetre
- Nou paràmetre
--custom-balls N(o--max-balls N) per definir el nombre de pilotes de l'escenari personalitzat. - L'escenari personalitzat s'inclou ara en la rotació automàtica de DEMO i DEMO_LITE.
Benchmark integrat
- Sistema de benchmark inicial per detectar automàticament el rendiment del dispositiu i ajustar els escenaris màxims i mínims en els modes automàtics.
- El benchmark ara s'executa amb una figura 3D en compte del mode de física complet, per ser més representatiu.
- Nou paràmetre
--skip-benchmarkper saltar-se el benchmark en arrencada.
Ordenació per buckets
- Implementada ordenació per buckets (bucket sort) per millorar el rendiment en l'ordenació de sprites per profunditat Z.
Suport per a pantalles de baixa resolució
- Millora del comportament en mode finestra per a pantalles de poca resolució.
Millores
HUD de depuració
- Diverses millores en el HUD de debug: més informació visible i presentació més clara.
Gestor de recursos
- Afegida caché al ResourceManager per evitar accessos repetits a disc i millorar el rendiment de càrrega.
Correccions
- Fix macOS:
png_shapeja carrega correctament des deresources.pack, resolent problemes d'execució fora del directori de l'executable. - Fix: Corregida la càrrega de
data/shapes/jailgames.pngquan l'aplicació s'executava des d'un directori diferent al de l'executable. - Windows: Afegides les DLL necessàries al paquet de release de Windows.
Downloads
-
2025-10-25 Primera Release!! Stable
released this
2025-10-25 11:05:33 +02:00 | 63 commits to main since this releaseViBe3 Physics - Versió 1.0.0
Data de llançament: 2025-10-25
Primer llançament oficial de ViBe3 Physics, un simulador experimental de sprites amb física avançada i efectes demoscene. Implementa un sistema de delta-time independent del framerate amb renderitzat optimitzat per a fins a 50.000 sprites simultanis.
✨ Millores visuals per al jugador
-
15 temes visuals organitzats en 2 pàgines: 9 temes estàtics (ATARDECER, OCÉANO, NEÓN, BOSQUE, RGB, MONOCROMO, LAVANDA, CARMESÍ, ESMERALDA) + 6 temes dinàmics amb animacions en temps real (AMANECER, OLAS OCEÁNICAS, PULSO NEÓN, FUEGO, AURORA, VOLCÁN). Sistema de transicions LERP suaus de 0.5 segons entre temes.
-
9 figures 3D interactives amb física spring-damper:
- SPHERE: Esfera Fibonacci amb rotació dual
- CUBE: Cub rotatiu amb distribució intel·ligent (vèrtexs, cares, grid volumètric)
- HELIX: Espiral helicoïdal tipus ADN
- TORUS: Toroide/donut amb rotació triple eix
- LISSAJOUS: Corba paramètrica 3D ondulant
- CYLINDER: Cilindre rotatiu estil columna grega
- ICOSAHEDRON: Poliedre D20 amb proporció àurea
- ATOM: Nucli + 3 òrbites electròniques animades
- PNG_SHAPE: Logo 3D extruït des de PNG 1-bit (15 capes de profunditat)
-
Mode BOIDS: Comportament d'eixam emergent amb 3 regles de Reynolds (separació, alineació, cohesió). Bordes com a obstacles i física independent del framerate.
-
4 modes d'aplicació mutuament excloents:
- SANDBOX: Control manual complet (mode per defecte)
- DEMO: Auto-play complet amb aleatorització de física, temes i escenaris
- DEMO_LITE: Auto-play només física (gravetat, shapes, impuls)
- LOGO: Easter egg amb logo 3D animat (mínim 500 pilotes)
-
Sistema de logo periòdic animat (AppLogo): Logo dual amb 4 tipus d'animació aleatòria (ZOOM_ONLY, ELASTIC_STICK, ROTATE_SPIRAL, BOUNCE_SQUASH). Apareix cada 5 segons amb fade in/out de 2 segons.
-
Gravetat multidireccional: UP/DOWN/LEFT/RIGHT amb detecció de superfície intel·ligent i impuls direccional adaptatiu.
-
Controls dinàmics en temps real:
- V-Sync: Toggle ON/OFF amb tecla V
- Fullscreen: Letterbox (F3) i natiu (F4) amb escalat INTEGER/LETTERBOX/STRETCH
- Zoom de finestra: F1/F2 per reduir/augmentar zoom
- Hot-swap de sprites: Canvi dinàmic de textura (tiny/small/normal/big) sense reiniciar física
- 8 escenaris: Des de 10 fins a 50.000 pilotes (tecles 1-8)
-
Sistema de notificacions temporals: Notificacions superiors centrades amb animació slide + fade (2 segons de duració). Colors de fons temàtics amb transicions LERP.
-
Display de debug complet (tecla H): FPS en temps real, estat V-Sync, valors de física (gravetat, velocitat, superfície, rebots), direcció de gravetat, tema actiu i mode de simulació.
-
Zoom per profunditat 3D: Perspectiva simulada amb variació de mida segons eix Z (50%-150%) i modulació de color (fosc=fons, brillant=front). Sistema Z-sorting amb Painter's Algorithm per a oclusió correcta.
-
Escala manual de figures 3D: Control dinàmic amb Numpad +/- (30%-300%) i reset amb Numpad *.
⚙️ Canvis tècnics i millores internes
-
Migració completa a delta-time: Tot el motor del joc ara funciona amb temps real en lloc de frames. Conversió de unitats: velocitat ×60 (px/s), gravetat ×3600 (px/s²). Velocitat consistent entre 60Hz, 75Hz, 144Hz+ amb V-Sync independent.
-
Batch rendering amb SDL_RenderGeometry: Optimització massiva amb una sola cridada de renderitzat per frame. Rendiment aconseguit: >75 FPS amb 50.000 pilotes (millora del 750% respecte a renderitzat individual). Suport per a fins a 100.000 sprites fluids.
-
Sistema de temes unificat amb transicions LERP:
- Classe base
Themeamb interfície polimòrfica StaticTheme: Paletes fixes de 8-24 colorsDynamicTheme: Sistema de keyframes amb interpolació temporal- Transicions suaus de 0.5 segons sense pèrdua d'estat (física, posicions, velocitats)
- Fons degradats amb 2 colors interpolats verticalment
- Classe base
-
Arquitectura polimòrfica per a figures 3D:
- Classe abstracta
Shapeamb interfíciegetTargetPosition() - 9 implementacions concretes amb algoritmes específics (Fibonacci Sphere, toroide paramètric, corba Lissajous, etc.)
- Física compartida spring-damper (Llei de Hooke) amb amortiguació adaptativa
- Sistema de protecció contra clipping amb límits automàtics segons resolució
- Classe abstracta
-
Optimització BOIDS amb Spatial Hash Grid: Reducció de complexitat O(n²) → O(n) per a càlcul de veïns. Grid espacial amb cel·les dinàmiques que s'ajusten al nombre de boids. Sistema time-based completament independent del framerate.
-
Sistema de recursos empaquetats:
- Eina
pack_resourcesper crearresources.pack(format binari amb header + offset table) - Classe
ResourceManagercentralitzada per gestió de textures i fonts - Fallback automàtic a carpeta
data/si no existeix pack - Suport per a Windows (DLL), macOS (Bundle) i Linux
- Eina
-
Paràmetres CLI amb validació intel·ligent:
-w/--width,-h/--height: Resolució personalitzada (mínim 320x240)-z/--zoom: Zoom de finestra amb validació segons pantalla disponible-f/--fullscreen: Fullscreen letterbox (F3)-F/--real-fullscreen: Fullscreen natiu (F4)-m/--mode: Mode inicial (sandbox/demo/demo-lite/logo)
-
Migració a SDL3 amb SDL_TTF:
- Eliminat sistema
dbgtxt(bitmap font) - Implementat
TextRendereramb SDL_TTF i TrueType fonts - Escalat dinàmic de fonts segons resolució física de finestra
- Renderització a textura amb caché per a millor rendiment
- Eliminat sistema
-
Arquitectura component-based amb separació de responsabilitats:
Engine: Bucle principal (delta time, update, events, render)SceneManager: Gestió de pilotes i escenarisShapeManager: Gestió de figures 3D amb polimorfismeBoidManager: Comportament d'eixam amb Spatial Hash GridStateManager: Control de modes (DEMO/LOGO/SANDBOX/DEMO_LITE)ThemeManager: Temes i transicions LERPUIManager: HUD, FPS, debug, notificacionsInputHandler: Processament de teclat i esdeveniments SDLAppLogo: Sistema de logo periòdic amb animacions
-
Sistema de pre-escalat de logos amb
stb_image_resize2: 2 versions (base + resolució nativa) per a qualitat òptima en qualsevol resolució. -
Smart pointers i RAII: Gestió automàtica de memòria amb
unique_ptrishared_ptr. Recursos SDL (window, renderer, textures) amb RAII complet. -
Suport multiplataforma: Windows (MinGW + MSVC), Linux (GCC/Clang), macOS amb configuració CMake i Makefile. Icona del projecte integrada en executables Windows (.res).
ViBe3 Physics - Projecte experimental de vibe-coding amb física avançada i efectes demoscene
Desenvolupat per JailDesigner - 2025
Downloads
-