About this project

Ren'Py is a free and open-source visual novel engine that enables creators to build interactive storytelling games using a simple scripting language, with support for multiple platforms. This repository contains the engine's source code, including its core modules, documentation, and development tools. The project is organized into several branches: the `fix` branch handles bug fixes and documentation updates for the current release, the `master` branch is the main development line for upcoming features, `work/` branches are for pull requests and collaborative development, and `history/` branches contain commits not shown on GitHub. To get started with development, users can either use the latest nightly build (available at https://nightly.renpy.org) and run `./after_checkout.sh` to link it, or compile the Cython and C modules themselves. Compilation requires dependencies like Python development headers, SDL2 libraries, and various media libraries, which can be installed via package managers on Ubuntu/Debian. The project recommends using a virtual environment and package manager like `uv` to manage dependencies, then running `./run.sh` to execute the engine. Documentation is built using Sphinx and consists of reStructuredText files in the `sphinx/source` directory, with generated content from docstrings in the code. Docstrings can include tags like `:doc:`, `:name:`, and `:args:` to control documentation generation. Contributions are welcome, with bug fixes and documentation improvements going to the `fix` branch and new features to `master`. The project emphasizes that all changes must be created and understood by humans, and while efficiency tools including language models may be used for assistance, large AI-generated changes without human review are not accepted. Machine translation of system messages is allowed when no human translator is available. Ren'Py is licensed under the MIT license, and contributors agree to license their contributions under the same terms, either retaining copyright or assigning it to the project lead, Tom Rothamel.