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