# Ren'Py — Visual Novel Engine for Interactive Storytelling > Python-powered engine for creating visual novels and interactive stories with cross-platform deployment to desktop, mobile, and web. ## Install Save as a script file and run: # Ren'Py — Visual Novel Engine for Interactive Storytelling ## Quick Use ```python # script.rpy - minimal visual novel define e = Character("Eileen") label start: scene bg room show eileen happy e "Welcome to my visual novel!" menu: "Continue the story": jump chapter2 "Exit": return ``` ```bash # Download the SDK from renpy.org and launch the project ``` ## Introduction Ren'Py is a free, open-source engine purpose-built for visual novels and interactive fiction. Since 2004, it has powered thousands of published games on Steam, Itch.io, and mobile stores, making it the dominant tool for narrative-focused game development. ## What Ren'Py Does - Provides a domain-specific language (.rpy scripts) for dialogue, choices, and branching narratives - Handles character sprites, backgrounds, transitions, and UI layout automatically - Supports full Python integration for complex game logic, inventory systems, and minigames - Builds distributable packages for Windows, macOS, Linux, Android, iOS, and web - Includes a built-in launcher with project management, script editor, and distribution builder ## Architecture Overview Ren'Py is written in Python and Cython with SDL2 for multimedia. The script language compiles to an AST that the engine interprets via a rollback-capable virtual machine. Each interaction point creates a checkpoint so players can rewind. Rendering uses a 2D compositor that layers displayables (images, text, transforms) with hardware-accelerated blitting. ## Self-Hosting & Configuration - Download the SDK (all platforms included) or install via pip for embedding in custom Python projects - Project structure: game/ directory with .rpy scripts, images/, audio/, and gui/ folders - Customize the entire UI through gui.rpy and screens.rpy (layout DSL built on displayables) - Configure build targets, file lists, and packaging in options.rpy - Translations are supported natively with per-language script directories ## Key Features - Rollback system lets players rewind to any past decision point seamlessly - Save/load with automatic screenshot thumbnails and unlimited slots - Live reload during development: edit scripts and see changes without restarting - Accessibility features: self-voicing, font scaling, and high-contrast modes built-in - Extensive documentation and a community of 15+ years with tutorials and asset packs ## Comparison with Similar Tools - **Twine** — hypertext-based, outputs HTML; Ren'Py produces standalone native executables - **TyranoBuilder** — visual editor, commercial; Ren'Py is script-based and free - **Ink/Inkle** — narrative scripting language; Ren'Py includes full presentation layer - **RPG Maker** — RPG focused; Ren'Py is optimized for dialogue-heavy narrative games - **GDevelop** — general 2D game maker; Ren'Py specializes in VN conventions and workflow ## FAQ **Q: Do I need to know Python to use Ren'Py?** A: No. The script language handles dialogue and choices without Python. Python is optional for advanced logic. **Q: Can Ren'Py make games that are not visual novels?** A: Yes. Creators have built point-and-click adventures, RPGs, and puzzle games using Python integration and custom screens. **Q: How do I publish on Steam or Itch.io?** A: The built-in distribution builder creates platform archives ready for upload. Steam requires the Steamworks SDK overlay which Ren'Py supports. **Q: Is Ren'Py suitable for commercial releases?** A: Yes. Hundreds of commercial titles on Steam use Ren'Py under its permissive MIT license. ## Sources - https://github.com/renpy/renpy - https://www.renpy.org/doc/html --- Source: https://tokrepo.com/en/workflows/asset-ff6e9822 Author: Script Depot