Ren'Py is a LICENSE licensed visual novel game engine written in [[Python]].
- [Website](https://www.renpy.org/)
- GitHub
- Documentation
- AlternativeTo
> QUOTE
# Notability
# Philosophy
Built on top of Python, everything is actually embedded in a Python file with a DSL layer. As a result, text is not the primary environment, code is. This diffs philosophically from [[3. Reference/Alchemy/Ink/Ink]] where the focus is on the writing first, with code secondary.
# OS Support
# Features
- [Flags](https://www.renpy.org/doc/html/quickstart.html#supporting-flags-using-the-default-python-and-if-statements)
- [Tags](https://www.renpy.org/doc/html/text.html) for text formatting and control flow
## Tags
- `a` - link
- label `jump`
- label `call` and `call_in_new_context`
- screen `show`
- display `showmenu` for game menu
- `alpha` - text opacity
- `alt` - alt text for images (intended for web browsers)
- `art` - alternate japanese ruby text
- `b` - bold
- `color` - color of text
- `cps` - characters per second
- `font` - font select
- `i` - italics
- `image` - images (intended for emoji and small icons on a line of text)
- `k` - text kerning/spacing
- `noalt` - disable text to speech for this section (use next to `alt` to provide different outputs depending on whether the user is doing text to speech or not)
- `rt` - japanese ruby text (superscript text over kanji)
- `s` - strikethrough
- `size` - text size
- `space` - horizontal space between words (like htab)
- `u` - underline
- `vspace` - vertical space between lines (like `<br>`)
- `#` - ignore string for display purposes, only use for translation
Additional text tags:
- `done` - hide remaining text, used with other tags to avoid text jumping around (seems like a workaround)
- `fast` - display text instantly, even in slow mode
- `nw` - no-wait dismisses a line of text as soon as it finishes displaying
- `p` - terminates the current paragraph, pause and wait for user input or timeout
- `w` - wait, pause and wait for user input or timeout (==I'm not clear on how that's different from `p`==)
- `clear` - ==some kind of pagination thing that I don't understand==
Example of how `nw`, `done`, and `fast` combine with an action like `show` to dramatically time events with text.
```
g "Looks like they're{nw}{done} playing with their trebuchet again."
show trebuchet
g "Looks like they're{fast} playing with their trebuchet again."
```
# References