• v1.10 98f01a6dde

    v1.10 Stable

    JailDesigner released this 2026-03-30 10:02:25 +02:00 | 0 commits to main since this release

    Novetats de la versió 1.10

    Canvis majors

    Migració a SDL3

    El motor gràfic ha sigut completament migrat de SDL2 a SDL3. Això afecta el sistema de finestra, el renderitzador, la gestió d'àudio i els dispositius d'entrada. La migració ha requerit actualitzar totes les crides a l'API i adaptar els tipus de dades de int a float en la majoria dels sistemes de renderitzat.

    Sistema de renderitzat basat en Surfaces (CPU)

    S'ha eliminat l'ús directe de SDL_Texture per a la lògica del joc. Ara tot el renderitzat intermedi es fa sobre Surfaces en memòria de la CPU (Surface), la qual cosa ha permès:

    • Paletes de color intercambiables en temps real (256 colors indexats per paleta)
    • Suport per a múltiples paletes predefinides (CRT, Spectrum, Sweetie-16, etc.)
    • Recoloració per programari sense shaders
    • Compatibilitat total amb el sistema de shaders
    • Eliminada la classe Texture

    Nou sistema de shaders i efectes visuals

    Reescrit completament el sistema de postprocessat:

    • Eliminat el suport d'OpenGL clàssic
    • Nous backends: Vulkan (Windows/Linux) i Metal (macOS)
    • Compilació automàtica de shaders SPIR-V en temps de compilació
    • Nous presets de shader: CRT, PostFX, subpixel, scanlines amb suport de subpixels
    • Supersampling per GPU (Lanczos)
    • Comandos de consola i teceles de funció per canviar i ajustar shaders

    Migració a sistema basat en temps (time-based)

    Tot el joc ha sigut migrat de frame-based a time-based (delta time), la qual cosa garanteix una experiència consistent independentment de la taxa de fotogrames:

    • Logo, LoadingScreen, Title, Game, GameOver, Ending, Ending2, Credits
    • Player, Enemy, Item, Scoreboard, Notifier
    • Totes les classes Sprite
    • Velocitats d'enemics als fitxers .room expressades en píxels per segon

    Migració de formats de fitxer a YAML

    Tots els formats de configuració i dades han sigut migrats a YAML:

    Format antic Format nou
    .ani .yaml (animacions)
    .room + .tmx .yaml unificat
    assets.txt assets.yaml
    config.txt config.yaml

    A més, la biblioteca yaml-cpp ha sigut substituïda per fkYAML, més lleugera i sense dependències externes.

    Consola interactiva

    S'ha implementat una consola de comandos accessible en temps real durant el joc i en el menú principal:

    • Escriptura de comandos amb suport UTF-8
    • Ajuda organitzada per categories
    • Comandos disponibles:
      • Joc: canviar d'habitació, activar/desactivar trucs en calent
      • Vídeo: canviar upscale/downscale, driver de GPU, shader
      • Àudio: ajustar volums de música i efectes
      • Sistema: canviar escena, reiniciar, eixir
      • Debug: activar mode debug, establir posició inicial
    • Afegits cheats activables directament des de la consola

    Traducció al valencià i sistema multiidioma

    • Implementat sistema de localització multiidioma
    • Traducció completa al valencià
    • Per defecte, el joc s'inicia en valencià
    • Revisió i correcció de traduccions

    Mode quiosc

    Nou mode pensat per a instal·lacions en exposicions o màquines arcade:

    • Inicia directament en pantalla completa
    • Ignora les tecles F1, F2 i F3 (zoom i pantalla completa)
    • Per eixir cal la combinació Ctrl+Alt+Shift+Q
    • Configurable des del fitxer de configuració

    Redefinició de tecles i suport per a mandos

    • Es poden redefinir totes les tecles des del menú d'opcions
    • Suport complet per a joysticks i mandos (botons i eixos)
    • Base de dades de mandos actualitzada (gamecontrollerdb.txt)

    Nova classe Audio

    • Creada la classe Audio com a gestor centralitzat de l'àudio
    • Volums normalitzats a float entre 0.0 i 1.0
    • Fade de música en transicions entre escenes
    • Configurable des de la consola i des del fitxer de configuració

    Refactorització de Room (5 fases)

    La classe Room ha sigut modularitzada completament en 5 fases:

    1. Extracció de la gestió d'entitats
    2. Extracció del sistema de col·lisions
    3. Extracció del sistema de renderitzat del tilemap
    4. Extracció del sistema de parseig de fitxers
    5. Neteja final i optimitzacions

    Millores i correccions

    Efectes visuals

    • Nou efecte PixelReveal als crèdits i a l'ending
    • Nou sprite SurfaceDissolveSprite
    • Endings amb fades correctes
    • Animacions al Logo amb easing

    Pantalla de càrrega

    • Nova pantalla de càrrega amb efectes visuals (picos de soroll als silencis, visualització de la càrrega de headers)

    Sistema de depuració

    • Overlay de debug millorat
    • Mostra el dispositiu de renderitzat en la informació de debug
    • La posició i habitació inicials de debug es poden establir des d'un fitxer o des de la consola
    • Eliminada la classe Debug en les versions Release

    Notificacions

    • Estils diferenciats per a notificacions de sistema i de logros
    • Control d'offset de les notificacions des de RenderInfo
    • Durada configurable per a cada notificació
    • Nou hud amb info del joc

    Sistema d'assets

    • Migrat Assets per a que els fitxers no estiguen escrits en dur al codi
    • Recursos empaquetats en resources.pack
    • Compilació automàtica de shaders integrada en el sistema de build

    Build i empaquetament

    • Suport per a compilació de shaders (compile_spirv.cmake)
    • Makefile actualitzat amb múltiples targets (help, release, etc.)
    • Correccions per a Windows (final de línia, lectures de fitxers)
    • Correccions per a Wayland/Linux (VSync, initSDLVideo)

    Correccions de bugs destacades

    • Corregit bug que impedia entrar a la presó correctament (ara usa el número d'habitació, no el nom)
    • Corregit el càlcul incorrecte de l'offset dels tiles mortals
    • Corregit que al canviar de pantalla lateralment es resetejava l'altura de salt
    • Corregides les conveyor belts d'algunes habitacions
    • Corregit el mode invulnerable: ja no quedava marcat com mort en caure d'alçades grans
    • Corregida la pantalla completa, escalat sencer i VSync
    • Corregits els endings

    Notes tècniques

    • Eliminada tota la funcionalitat de gamepad_config_manager i la dependència de JSON
    • Eliminat el suport per a arguments de línia de comandos
    • Unificat el número de versió en un sol lloc
    • Reorganitzada l'estructura de carpetes de source/
    • Nou icono vectoritzat
    • Afegida font tipogràfica d'Aseprite
    • Revisades i corregides les traduccions (eliminats accents en títols d'habitacions)
    Downloads