scripts_extract y scripts_combine

La Base de Sky guarda todo su código Ruby dentro de un único archivo binario (Data/Scripts.rxdata). Ese formato es cómodo para el juego, pero pésimo para editar y para trabajar con Git: no se puede ver un cambio línea por línea ni resolver conflictos. Los scripts scripts_extract.rb y scripts_combine.rb resuelven eso convirtiendo ese binario en carpetas de archivos .rb legibles, y de vuelta.

¿Para qué sirve?

Sirve para desarrollar y contribuir a la base trabajando con los scripts como archivos de texto normales:

Si solo quieres jugar o crear tu fangame sin tocar el código base, no necesitas estas herramientas. Están pensadas para quien modifica los scripts de la base o quiere contribuir al proyecto.

Instalar Ruby

Ambos scripts están escritos en Ruby, así que necesitas tener Ruby instalado en tu sistema para poder ejecutarlos. La base usa Ruby 3.x; cualquier versión 3.1 o superior funciona. Para comprobar si ya lo tienes, abre una terminal y ejecuta:

ruby -v

Si muestra algo como ruby 3.3.0, ya está instalado y puedes saltar a Cómo usarlos. Si dice "comando no encontrado", instálalo según tu sistema operativo.

Windows

  1. Ve a rubyinstaller.org/downloads.
  2. Descarga la versión recomendada Ruby+Devkit (la que aparece en negrita, ej. Ruby+Devkit 3.3.x (x64)).
  3. Ejecuta el instalador. Deja marcada la opción "Add Ruby executables to your PATH".
  4. Al final del instalador, cuando pregunte por ridk install, acepta y pulsa Enter para instalar el toolchain (opción 3, MSYS2 y MINGW).
  5. Abre una nueva ventana de PowerShell o CMD y verifica con ruby -v.

Linux

Instala Ruby con el gestor de paquetes de tu distribución:

# Debian / Ubuntu / derivadas
sudo apt update && sudo apt install ruby-full

# Arch / Manjaro / CachyOS
sudo pacman -S ruby

# Fedora
sudo dnf install ruby

# openSUSE
sudo zypper install ruby

Verifica con ruby -v. Si tu distro trae una versión muy antigua, considera usar rbenv o RVM para instalar Ruby 3.x.

macOS

macOS trae una versión de Ruby preinstalada, pero suele ser vieja. Lo recomendable es instalar una versión moderna con Homebrew:

# Instalar Homebrew (si no lo tienes)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Instalar Ruby
brew install ruby

Tras instalarlo, cierra y reabre la terminal y verifica con ruby -v. Homebrew puede pedirte añadir Ruby al PATH; sigue las instrucciones que muestra al terminar.

Cómo funciona

Son dos scripts complementarios que operan sobre la carpeta Data/ del proyecto:

ScriptQué hace
scripts_extract.rb Lee Data/Scripts.rxdata y lo descomprime en la carpeta Data/Scripts/ como archivos .rb organizados en subcarpetas numeradas (ej. 001_SectionName/001_ScriptName.rb). Guarda una copia de seguridad en Data/ScriptsBackup.rxdata y reemplaza Scripts.rxdata por un loader que hace que el juego cargue los scripts desde la carpeta.
scripts_combine.rb Operación inversa: recorre la carpeta Data/Scripts/, recomprime todos los .rb de vuelta en un único Data/Scripts.rxdata y borra la carpeta Data/Scripts/. Se usa para empaquetar antes de distribuir.
Flujo típico: ejecutas scripts_extract.rb una vez tras clonar el proyecto. A partir de ahí el juego lee los scripts desde Data/Scripts/, editas los .rb directamente y Git detecta cada cambio. Solo usas scripts_combine.rb cuando necesitas volver a un único Scripts.rxdata (por ejemplo para una release).

Cómo usarlos

Con Ruby instalado, abre una terminal dentro de la carpeta del juego (la que contiene Game.exe, scripts_extract.rb y la carpeta Data/) y ejecuta:

# Pasar de Scripts.rxdata a carpeta editable Data/Scripts/
ruby scripts_extract.rb

# Volver de la carpeta Data/Scripts/ a un único Scripts.rxdata
ruby scripts_combine.rb
Consejo: en VS Code puedes abrir una terminal integrada en la carpeta correcta con Terminal → New Terminal, así no tienes que navegar con cd. La Base de Sky incluye un archivo Scripts.code-workspace para abrir el proyecto directamente en VS Code.

Advertencias

Cuidado con perder scripts:
  • scripts_combine.rb borra la carpeta Data/Scripts/ al terminar. Asegúrate de tener tus cambios commiteados en Git antes de combinar.
  • Como protección, scripts_combine.rb se niega a ejecutarse si Scripts.rxdata ya contiene 10 o más scripts (para no pisar datos existentes por error).
  • No borres Data/ScriptsBackup.rxdata: es la copia de seguridad que genera la extracción.
  • Ejecuta siempre los scripts desde la carpeta raíz del juego; usan rutas relativas a Data/.

Artículos relacionados