-
2025-10-25 Primera Release!! Stable
released this
2025-10-25 11:05:33 +02:00 | 0 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
-