Quieres hacer una novela visual o un juego de aventura de texto. Pero Unity y Godot se sienten excesivos. Ahí es donde entra Ren'Py — un motor gratuito, de código abierto y basado en Python que incluye visualización de texto, opciones de ramificación, guardar/cargar y distribución desde el primer momento.
Ren'Py impulsa títulos comerciales como DDLC (Doki Doki Literature Club!) y miles de juegos independientes en itch.io. Si sabes programar, puedes extenderlo con sistemas personalizados como gestión de estadísticas o exploración de mapas usando Python puro. El código fuente del motor está disponible en GitHub bajo la licencia MIT.
Esta guía te lleva a través de Ren'Py 8.5.2 (lanzado en enero de 2026) — desde la instalación del SDK hasta compilar tu primer archivo de juego distribuible.
Qué es Ren'Py
Ren'Py es un motor de juegos de código abierto para novelas visuales y aventuras de texto. Lanzado por primera vez en 2004, tiene más de 20 años de historia.
Así se compara con otros motores:
| Motor | Mejor para | Curva de aprendizaje |
|---|---|---|
| Ren'Py | Novelas visuales, aventuras de texto | Baja (basado en Python) |
| Unity | Juegos 2D/3D | Alta (C#, editor) |
| Godot | Juegos 2D/3D | Media (GDScript) |
| RPG Maker | RPGs | Baja (basado en GUI) |
La fortaleza de Ren'Py es que la visualización de texto, opciones de ramificación, guardar/cargar y registro de diálogos están incorporados desde el primer día. No tienes que construir esto desde cero.
Descarga e instala el SDK
Descarga el SDK del sitio oficial de Ren'Py. La última versión estable a marzo de 2026 es 8.5.2.
Descarga renpy-8.5.2-sdk.7z.exe (~116 MB) desde la página de descarga.
Pasos de instalación:
- Haz doble clic en el
.7z.exepara extraerlo - Elige una ruta de extracción (ej.,
C:\renpy\renpy-8.5.2-sdk) - Abre la carpeta extraída y haz doble clic en
renpy.exepara lanzar el launcher de Ren'Py
Si el launcher se abre, estás listo.
Estructura del directorio del SDK
La carpeta del SDK extraída contiene lo siguiente:
renpy-8.5.2-sdk/
├── renpy.exe / renpy.sh # Ejecutable del launcher
├── lib/ # Entornos Python específicos por plataforma
├── renpy/ # Código fuente del motor Ren'Py
├── launcher/ # Aplicación del launcher
├── tutorial/ # Juego tutorial oficial
└── the_question/ # Juego de ejemplo "The Question"
tutorial/ y the_question/ son proyectos de ejemplo que puedes lanzar directamente desde el launcher de Ren'Py. Pruébalos para tener una idea de cómo funcionan las cosas.
Configura tu editor de código
Los scripts de Ren'Py (archivos .rpy) son texto plano. Si usas VS Code, instala la extensión oficial para resaltado de sintaxis y autocompletado.
Pasos:
- Abre el panel de Extensiones (
Ctrl+Shift+X/Cmd+Shift+X) - Busca "Ren'Py"
- Instala Ren'Py Language (Official) (Marketplace)
Esto te da:
- Resaltado de sintaxis para archivos
.rpy - Autocompletado de palabras clave
- Ir a Definición (
F12) - Detección de errores de indentación
En el launcher de Ren'Py, ve a "preferences" → "Text Editor" y establece la ruta de tu editor. Esto te permite abrir archivos .rpy directamente desde el launcher.
Crea tu primer proyecto
Crea un nuevo proyecto desde el launcher:
- Haz clic en "Create New Project"
- Ingresa un nombre de proyecto (ej.,
mygame) - Selecciona una resolución (1280x720 es lo recomendado. Usa 1920x1080 si quieres Full HD)
- Elige un esquema de colores (colores de acento y fondo — puedes cambiarlos después en
gui.rpy)
La carpeta mygame se generará en segundos.
Estructura del proyecto
mygame/
└── game/
├── audio/ # BGM y efectos de sonido
├── gui/ # Imágenes de GUI (auto-generadas)
├── images/ # Fondos y sprites de personajes
├── tl/ # Archivos de traducción
├── gui.rpy # Configuración de GUI (fuentes, colores, diseño)
├── options.rpy # Configuración del juego (título, resolución, config de compilación)
├── screens.rpy # Definiciones de pantalla (menús, pantalla de guardado, etc.)
└── script.rpy # Script principal (aquí va tu juego)
Escribirás tu código de juego principalmente en script.rpy. A medida que tu proyecto crezca, puedes dividir el código en múltiples archivos .rpy — Ren'Py carga automáticamente todos los archivos .rpy en la carpeta game/.
Escribe tu primera escena
Abre game/script.rpy y reemplaza el código predeterminado con esto:
# Definiciones de personajes
define s = Character("Sakura", who_color="#c8ffc8")
define y = Character("Yuki", who_color="#c8c8ff")
# Inicio del juego
label start:
# Mostrar fondo
scene bg room
with fade
# Diálogo
s "Por fin terminamos el juego."
y "Fue un largo camino... pero está funcionando."
# Opciones
menu:
s "¿Qué hacemos ahora?"
"Agregar más funciones":
jump add_feature
"Descansar un poco":
jump rest
label add_feature:
y "Bien, vamos a implementar el sistema de exploración de mapas."
"Los dos siguieron desarrollando hasta tarde en la noche."
return
label rest:
s "Dejémoslo por hoy."
"Decidieron descansar y continuar mañana."
return
Desglosemos esto.
Definiciones de personajes
define s = Character("Sakura", who_color="#c8ffc8")
define declara una constante que no cambia durante el juego. Character crea un objeto de personaje con un nombre de visualización y color. Una vez definido, s "diálogo" muestra el texto con el nombre del personaje.
Labels y jumps
label start:
...
label add_feature:
...
return
label marca un punto en tu script. label start: es un nombre reservado — es donde Ren'Py comienza la ejecución. jump se mueve entre labels, y return termina el juego.
Mostrando fondos
scene bg room
with fade
scene limpia la pantalla y muestra una imagen de fondo. with fade agrega un efecto de aparición gradual. Ren'Py busca automáticamente archivos coincidentes en game/images/ — en este caso, un archivo llamado bg room.png (los espacios en el nombre del archivo corresponden a espacios en el nombre de la imagen). Consulta la documentación oficial de visualización de imágenes para más detalles.
Opciones y ramificaciones
menu:
s "¿Qué hacemos ahora?"
"Agregar más funciones":
jump add_feature
"Descansar un poco":
jump rest
El bloque menu: muestra opciones al jugador. El código indentado bajo cada opción se ejecuta cuando se selecciona esa opción. Usar jump para ir a diferentes labels crea líneas de historia ramificadas.
Gestión de flags con variables
Para rastrear los resultados de las opciones, declara variables con default:
# Las variables que cambian durante el juego usan default
default motivation = 0
label start:
menu:
"Trabajar duro":
$ motivation += 1
jump next
"Descansar":
jump next
label next:
if motivation > 0:
"¡Estás lleno de energía!"
else:
"Pareces un poco cansado."
return
default declara una variable que persiste correctamente a través de guardar/cargar. $ ejecuta una sola línea de código Python.
Prueba de ejecución
Vuelve al launcher, selecciona tu proyecto y haz clic en "Launch Project". El juego comenzará y reproducirá la escena que escribiste.
Si no has agregado imágenes de fondo, la pantalla estará negra en scene bg room — pero el diálogo y las opciones funcionarán bien. Es práctica estándar probar scripts sin arte primero y agregar imágenes después.
Compila y distribuye
Una vez que tu juego funciona correctamente, genera archivos distribuibles.
Configuración previa a la compilación
Abre game/options.rpy y verifica estas configuraciones:
# Título del juego (se muestra en la barra de título de la ventana)
define config.name = _("My First Game")
# Nombre de compilación (usado en nombres de archivo)
define build.name = "MyFirstGame"
build.name se usa en los nombres de archivo de salida, así que no incluyas espacios ni caracteres no ASCII.
Ejecutando la compilación
- Selecciona tu proyecto en el launcher
- Haz clic en "Build Distributions"
- Selecciona los objetivos de compilación (todas las plataformas están seleccionadas por defecto)
- Haz clic en "Build"
- La carpeta de salida se abre automáticamente cuando la compilación termina
La compilación produce estos archivos:
| Archivo | Destino |
|---|---|
MyFirstGame-1.0-win.zip | Windows |
MyFirstGame-1.0-mac.zip | macOS (Intel y Apple Silicon) |
MyFirstGame-1.0-linux.tar.bz2 | Linux |
Estos archivos ZIP son autocontenidos — los destinatarios pueden ejecutar el juego sin instalar Ren'Py. Subir a itch.io es la forma más común de distribuir juegos de Ren'Py.
Preguntas Frecuentes
¿Ren'Py es gratis?
Sí. Ren'Py es gratuito y de código abierto bajo la licencia MIT. Puedes usarlo para proyectos comerciales y no comerciales sin pagar regalías ni tarifas de licencia.
¿Puedo vender juegos hechos con Ren'Py?
Por supuesto. La licencia MIT permite la distribución comercial. Títulos como Doki Doki Literature Club! y muchos otros juegos comerciales en Steam e itch.io están hechos con Ren'Py. Te quedas con el 100% de los ingresos.
¿Qué lenguaje de programación usa Ren'Py?
Ren'Py tiene su propio lenguaje de scripting .rpy diseñado para diálogos y ramificaciones. Internamente ejecuta Python 3.12, y puedes escribir código Python directamente dentro de archivos .rpy usando $ para líneas individuales o bloques python: para código más largo.
¿Ren'Py soporta Android e iOS?
Sí. Ren'Py puede compilar para Android directamente desde el launcher usando RAPT (Ren'Py Android Packaging Tool). Las compilaciones para iOS requieren una Mac con Xcode. Consulta la documentación oficial de iOS para más detalles.
¿Puedo usar Ren'Py sin experiencia en programación?
Sí, para novelas visuales básicas. El lenguaje .rpy está diseñado para ser legible — escribir diálogos, agregar opciones y mostrar imágenes requiere código mínimo. Para mecánicas más complejas como sistemas de estadísticas o minijuegos, algo de conocimiento de Python ayuda. El tutorial oficial incluido en el SDK es un excelente punto de partida.
¿Cómo agrego imágenes a mi proyecto Ren'Py?
Coloca archivos de imagen (PNG, JPG o WebP) en la carpeta game/images/. Ren'Py mapea automáticamente los nombres de archivo a nombres de imagen — bg park.png se convierte en la imagen bg park que puedes referenciar con scene bg park. Revisa Básicos de Imágenes para una guía completa sobre sprites de personajes, imágenes en capas y transiciones.
¿Cuál es la diferencia entre Ren'Py 7 y 8?
Ren'Py 8 usa Python 3 (actualmente 3.12), mientras que Ren'Py 7 usa Python 2. Ren'Py 8 es recomendado para todos los proyectos nuevos. La guía de migración cubre las diferencias, pero la mayoría de los scripts .rpy funcionan sin cambios entre versiones.
Conclusión
Esto es lo que cubrimos:
- Configuración del SDK: Descargamos 8.5.2 del sitio oficial y lo extrajimos
- Configuración del editor: VS Code + extensión Ren'Py Language para resaltado de sintaxis y autocompletado
- Creación de proyecto: Creamos un nuevo proyecto desde el launcher y exploramos la estructura de directorios
- Escritura de scripts: Definiciones de personajes, fondos, diálogo, opciones de ramificación y gestión de flags basada en variables
- Compilación: Generamos archivos distribuibles como archivos ZIP
Con esta base, puedes ejecutar el ciclo completo de desarrollo en Ren'Py. Próximos pasos:
- Básicos de Imágenes — mostrando fondos, personajes y transiciones
- Opciones y Ramificaciones — declaraciones menu hasta múltiples finales
- Guía de Audio — gestión de BGM, efectos de sonido y voz
- Gestión de Estadísticas — sistemas basados en Python para afinidad, HP y más
- Guía de Distribución — compilando y publicando en itch.io
Recursos oficiales:
- Ren'Py Quickstart Guide — cobertura más profunda de
define/default/label/menu - Ren'Py Documentation — referencia completa de todas las funciones
- r/RenPy — comunidad para preguntas y discusión
Artículos relacionados: