32blogby Studio Mitsu

Distribuir tu Juego Ren'Py: De la Compilación a itch.io

Aprende a compilar y publicar tu juego Ren'Py 8.5 en itch.io. Cubre notas específicas por plataforma, firma en macOS y control de archivos con build.classify().

by omitsu9 min read
Contenido

Para distribuir un juego de Ren'Py, compilas paquetes por plataforma (Windows/macOS/Linux/Android/Web) desde el Launcher y subes los archivos zip a itch.io — manualmente o mediante la integración con butler. Todo el proceso toma minutos una vez que tu options.rpy está configurado.

Esta guía cubre el flujo completo con Ren'Py 8.5.2: preparación de compilación, particularidades de cada plataforma, publicación en itch.io y control de archivos con build.classify().

Preparación para la compilación

Configuración de options.rpy

Establece la información básica de compilación en options.rpy. Se genera una plantilla al crear un proyecto — solo actualiza los valores.

renpy
define config.name = "My Visual Novel"

define build.name = "MyVisualNovel"

define config.version = "1.0"

config.name es el título de tu juego. build.name se usa para los nombres de archivo de distribución — no se permiten espacios, dos puntos ni punto y coma. config.version es el número de versión, también referenciado al subir a itch.io.

Ejecutando Lint

Siempre ejecuta Lint antes de compilar. Haz clic en "Check Script (Lint)" en el Launcher.

Lint verifica:

  • Referencias a imágenes o personajes no definidos
  • Labels inalcanzables
  • Archivos de audio faltantes
  • Otros problemas potenciales

Corrige cualquier error antes de continuar. Las advertencias no son críticas pero deberían resolverse cuando sea posible.

Cambiando el icono

Reemplaza el icono predeterminado de Ren'Py con el tuyo.

text
mygame/               ← Directorio base (coloca los iconos aquí)
├── icon.ico          ← Windows (256x256 recomendado)
├── icon.icns         ← macOS
└── game/
    └── ...

Colócalos en el directorio base de tu proyecto (el padre de game/).

Ejecutando la compilación

Compilando desde el Launcher

  1. Selecciona tu proyecto en el Launcher de Ren'Py
  2. Haz clic en "Build Distributions"
  3. Selecciona qué paquetes compilar (todas las plataformas están seleccionadas por defecto)
  4. Cuando la compilación termine, se abre la carpeta de salida

Archivos de salida

Con la configuración predeterminada, se generan estos archivos:

ArchivoDestino
MyVisualNovel-1.0-pc.zipWindows + Linux
MyVisualNovel-1.0-mac.zipmacOS

El paquete pc incluye ejecutables para Windows y Linux. Los jugadores simplemente ejecutan el que corresponde a su sistema operativo.

Notas específicas por plataforma

Windows

No se necesita configuración especial. Extrae el zip y haz doble clic en el .exe. La plataforma más fácil.

macOS — El problema de Gatekeeper

macOS restringe las aplicaciones no firmadas. Desde macOS Sequoia (15.0), estas restricciones se han vuelto más estrictas.

Para lanzar un juego no firmado, los jugadores necesitan ejecutar esto en Terminal:

bash
xattr -r -d com.apple.quarantine /path/to/MyVisualNovel.app

Linux

Ejecuta el archivo .sh incluido en el paquete pc. Si no tiene permisos de ejecución, ejecuta chmod +x primero.

Android

Las compilaciones de Android usan RAPT (Ren'Py Android Packaging Tool).

  1. En el Launcher, ve a "Android""Install SDK"
  2. Se requiere JDK 21 (Adoptium Temurin recomendado)
  3. "Generate Keys" para crear claves de firma (haz respaldo de estas)
  4. "Configure" para establecer nombre de paquete, icono, etc.
  5. "Build" para generar un APK o AAB

Usa AAB (Android App Bundle) para Google Play, APK para distribución directa. Consulta la documentación oficial de compilación Android para más detalles sobre configuración y solución de problemas.

Web (Beta)

También puedes compilar una versión jugable en navegador.

  1. En el Launcher, ve a "Web (Beta)""Build Web Application"
  2. Abre index.html en la carpeta de salida para probar

Las compilaciones web son ideales para "Jugar en navegador" en itch.io, pero los tamaños de archivo grandes significan tiempos de carga más largos. itch.io impone un límite de 1000 archivos y 500 MB en total para juegos en navegador. Optimiza tus imágenes y audio, y usa build.classify() para archivar assets en archivos .rpa (cubierto más adelante). Consulta la documentación oficial de compilación Web para las limitaciones de la plataforma.

Publicando en itch.io

Subida manual

  1. Crea una cuenta en itch.io
  2. Ve a Dashboard"Create new project"
  3. Completa los detalles del proyecto (título, descripción, etiquetas, etc.)
  4. Establece "Kind of project" en "Downloadable"
  5. Sube tus archivos zip compilados
  6. Establece etiquetas de plataforma (Windows / macOS / Linux) para cada archivo
  7. Haz clic en "Save & view page" para publicar

Para compilaciones web, establece "Kind of project" en "HTML", sube el zip y marca "This file will be played in the browser".

Auto-subida desde el Launcher

Agrega esto a options.rpy para subir directamente desde el Launcher:

renpy
define build.itch_project = "username/project-name"

Después de compilar, aparece un botón "Upload to itch.io". El primer uso te pedirá instalar e iniciar sesión en la herramienta CLI de itch (butler).

La auto-subida mapea archivos a canales de itch.io según patrones de nombre de archivo:

Patrón de archivoCanal
*-pc.zipwin-linux
*-mac.ziposx
*-linux.tar.bz2linux
*-release.apkandroid

Controlando archivos con build.classify()

La configuración predeterminada funciona para la mayoría de los casos, pero usa build.classify() cuando necesites excluir archivos o personalizar el archivado.

Excluyendo archivos de desarrollo

renpy
init python:
    # Excluir archivos de Photoshop e ilustración
    build.classify("**/*.psd", None)
    build.classify("**/*.clip", None)

    # Excluir notas de desarrollo
    build.classify("**/TODO.txt", None)

Establecer None excluye los archivos que coinciden con el patrón de la compilación.

Archivando archivos

Agrupa imágenes y audio en archivos .rpa para reducir la cantidad de archivos. Esto ayuda con el límite de 1000 archivos de itch.io para compilaciones web.

renpy
init python:
    build.classify("game/**.png", "archive")
    build.classify("game/**.jpg", "archive")
    build.classify("game/**.ogg", "archive")

Sintaxis de patrones

PatrónSignificado
*Cualquier carácter excepto separadores de directorio
**Cualquier carácter incluyendo separadores de directorio
/Separador de directorio

Los patrones se evalúan de arriba hacia abajo — la primera coincidencia gana. Coloca los patrones más específicos primero.

FAQ

¿Puedo distribuir mi juego de Ren'Py en Steam?

Sí. Ren'Py soporta la integración con Steam a través de Steamworks. Necesitas una cuenta de desarrollador en Steamworks ($100 pago único) y configuras los ajustes específicos de Steam en options.rpy. El proceso de compilación es similar — generas los archivos de distribución y los subes con las herramientas de Steam.

¿Necesito firmar mi juego para Windows?

No es estrictamente necesario. SmartScreen de Windows puede mostrar una advertencia para ejecutables no firmados, pero los jugadores pueden hacer clic en "Más información" → "Ejecutar de todas formas." Los certificados de firma de código cuestan $200–400/año, así que la mayoría de los desarrolladores independientes lo saltan. La advertencia tiende a desaparecer cuando suficientes usuarios han descargado tu juego.

¿Cómo actualizo mi juego en itch.io después de publicarlo?

Sube nuevas compilaciones con los mismos nombres de canal. Si usas butler, simplemente ejecuta el comando push de nuevo — butler maneja los parches diferenciales automáticamente, así que los jugadores que regresan solo descargan lo que cambió. Para subidas manuales, reemplaza los archivos en tu página de proyecto.

¿Puedo compilar para iOS?

Ren'Py no soporta oficialmente compilaciones para iOS. Algunos desarrolladores han usado herramientas de terceros o soluciones con Xcode, pero no es un flujo de trabajo soportado. Enfócate en Android para distribución móvil.

¿Cuál es la diferencia entre los destinos "all", "windows", "linux", "mac" de build.classify()?

Estos destinos controlan en qué paquetes de plataforma se incluye un archivo. "all" lo incluye en todos los paquetes. "windows" solo en la compilación de Windows. Puedes combinarlos con espacios: build.classify("README.txt", "windows linux mac"). Consulta la documentación oficial de compilación para la lista completa.

¿Qué tamaño máximo puede tener mi juego en itch.io?

Para juegos descargables, itch.io permite hasta 1 GB por archivo (puedes solicitar más). Para juegos HTML5 jugables en navegador, el límite es 500 MB en total con un máximo de 1000 archivos. Usa archivos .rpa y optimiza los assets para mantenerte dentro de los límites.

Mi compilación de macOS muestra "la app está dañada" — ¿qué hago?

Es la marca de cuarentena de Gatekeeper. Ejecuta xattr -r -d com.apple.quarantine /ruta/a/TuJuego.app en Terminal. Si distribuyes a otros, documenta esto en tu README. Para una solución permanente, considera el Apple Developer Program ($99/año) y usa la herramienta mac-notarization de Ren'Py.

Conclusión

Lo que cubrimos:

  • Preparación de compilación: configuración de options.rpy, verificación Lint, reemplazo de icono
  • Ejecutando la compilación: unos pocos clics en el Launcher para generar archivos zip
  • Notas de plataforma: problemas de Gatekeeper en macOS, gestión de claves de firma en Android, tamaño de archivo en compilación web
  • Publicando en itch.io: subida manual y auto-subida desde el Launcher
  • build.classify(): excluyendo archivos de desarrollo, archivando y el truco del prefijo #

Para lo básico de Ren'Py, consulta la guía de inicio. Para opciones y ramificaciones, consulta la guía de opciones. Para agregar BGM y efectos de sonido, consulta la guía de audio.

Recursos oficiales:

  • Building Distributions — referencia oficial de compilación
  • Android — detalles de compilación para Android
  • Web — detalles de compilación web
  • itch.io — plataforma de distribución de juegos independientes
  • r/RenPy — comunidad

Artículos relacionados: