LucasArtsifier: un analizador estático que previene los softlocks en los juegos de Sierra

Fuentes: LucasArtsifier: a static analysis tool that prevents softlocks in Sierra adventure games

LucasArtsifier es una herramienta de análisis estático diseñada para juegos de aventura clásicos de Sierra. Su objetivo es detectar y prevenir los 'softlocks' —estados en los que el juego sigue aceptando entradas pero la victoria se ha vuelto imposible— sin modificar los archivos originales del juego. El proyecto, alojado en GitHub, ha sido probado con cuatro títulos: Leisure Suit Larry 2, King's Quest IV, King's Quest VI y Laura Bow 2. La herramienta descompila los scripts SCI del juego y los interpreta mediante abstracción para construir un grafo de transiciones entre habitaciones, movimientos de objetos y escrituras de flags. A partir de ese grafo, identifica los cruces unidireccionales que pueden dejar al jugador varado, deriva las condiciones (guardas) bajo las cuales el objetivo sigue siendo alcanzable, y las recompila en el formato de parches que el propio Sierra utilizaba para corregir sus juegos. Así, el jugador puede seguir disfrutando de la experiencia original pero sin quedar atrapado irremediablemente. Un aspecto notable es que el análisis no declara nada específico de cada título: la habitación inicial, la de victoria, la señal de muerte y los flags de depuración se descubren automáticamente a partir del código del juego. Además, el sistema es conservador: si una guarda no supera la verificación o un script editado no compila, no emite nada. También distingue entre estados sin retorno (softlocks) y muertes evitables, que se dejan intactas para no eliminar las pistas que los diseñadores originales usaban para guiar al jugador. La herramienta está escrita en Python 3 sin dependencias de terceros. Para descompilar utiliza sci-tools y para compilar un puerto del compilador de SCICompanion. Las pruebas se ejecutan en ScummVM o DOSBox. Aunque se ha aplicado a cuatro juegos, la arquitectura está pensada para abarcar las dos grandes eras del motor SCI (SCI0 y SCI1.1). Su principal limitación es que, por ahora, el soporte se centra en juegos de Sierra, no en los de LucasArts, cuyo nombre toma prestado con ironía.