Ren'Py 8.6 Is in Prerelease: Should Your Visual Novel Stay on 8.5.3 or Start Testing?
November 3, 2026

If you're building a visual novel in Ren'Py, the question this week isn't whether 8.6 looks good. It's whether your project should touch it yet. On November 1, Ren'Py's lead developer Tom Rothamel posted the first prerelease of Ren'Py 8.6.0, nicknamed "Real Artists Ship" (build 8.6.0.26110123), and described it as the result of a year of work on new features, fixes and optimizations. The stable release listed on renpy.org is still 8.5.3 from May 15, and the homepage asks creators not to release games with the prerelease until it becomes stable.
So there are two versions on the table, and they suit different projects. Below I keep what the official release page, changelog and incompatible changes list say apart from my own advice about which version fits which stage of a project.
What does 8.6 change for visual novel work?
Most of the big work happened under the hood. Ren'Py moved to SDL3, the library it relies on for windows, input and audio output, and gained a shader compiler that predicts and caches shaders, with GLSL ES 3.00 as the default for new games. The changelog says existing shader parts need no changes, because Ren'Py translates between the two GLSL versions on its own.
The change you're more likely to feel is prediction, the system that loads images before they appear. It has been rewritten with Python coroutines so the work can be cut into chunks small enough to fit inside a single frame. The release announcement says this removes the need to design pauses into animations just to give prediction time. Image decoding during preload is now spread across threads, and texture uploads get a time budget per frame. If background and sprite swaps have ever stuttered in your game, this is the part worth trying first.
Accessibility gets the other big upgrade. Self-voicing can now use any voice installed on the player's system, chosen from the Shift+A accessibility menu, with speed adjustable between 1.0 and 5.0. A new screen reader mode, toggled with Shift+V, talks directly to screen readers such as NVDA, JAWS, VoiceOver and Orca through the Prism library, so text can reach braille displays as well as speech. It switches on automatically when a screen reader is already running as the game starts. With config.auto_image_alt enabled, images that have no explicit alt text are voiced using their image name and attributes.
Smaller additions that matter to visual novels:
- Text and files can use different languages, so on-screen text could be English while the voice audio stays Japanese.
renpy.music.seek()jumps to a position in the playing track, and movies can now loop.- You can list more than one directory for images, audio and fonts, and WOFF2 font files load.
- Warping to a line during development now replays the dialogue along the way, rebuilding history and the NVL list.
- The PC presplash accepts WEBP and AVIF images.

What could break when an existing project opens in 8.6?
The incompatible changes page lists six items for 8.6. Three of them touch most visual novels.
Voice and translations come first. By default, the voice statement no longer contributes to translation identifiers. If your game has both voice lines and translations, those identifiers may change. The documented way back is define config.tlid_only_considers_say = False. If you already have translation files, this alone is a reason to test on a copy.
Next are the dialogue and choice layers. config.say_layer, config.choice_layer and config.nvl_choice_layer now default to None, so a screen's own layer property takes precedence. Screens without a declared layer still use "screens", and games that declare compatibility with 8.5 or earlier keep the old defaults.
Then there's audio scan timing. Files in the audio directory are now defined at a late init level instead of init 0. If your init code refers to those names early, define -1 config.late_audio_scan = False restores the old order.
The other three are narrower. Live2D models that have a pose file now follow it, which can change which parts are visible. On Windows, Ren'Py now draws the input method candidate list itself through a new _ime_candidates screen, because the system's own window could be invisible in fullscreen; if you styled a name entry screen, look at it again. And renpy.get_sdl_dll() needs a version argument of 3.
Outside that list, the platform floor rises. iOS builds need iOS 15 or later, up from iOS 13, and macOS builds need 10.13 or later. Android, iOS and web builds need a GPU with OpenGL ES 3.0, roughly devices from 2013 on, while desktop asks for OpenGL 3.3 and falls back to 2.0. When choosing a screen variant, Android now treats devices under 6.95 inches as phones, up from 6.0 inches, so a phone-specific GUI may appear on more devices than before. Buttons also activate only when the press and the release happen on the same button.

Which version should your project use right now?
From here on it's my judgment, not Ren'Py's. I'd decide on two things: how close you are to release, and whether you use any of the features on the incompatible list.
If you're shipping within a few months, or patching a game that's already out, stay on 8.5.3. The homepage itself says not to release on the prerelease, and an engine swap widens everything you need to retest. Opening a copy in 8.6 and writing down what breaks is still worth an afternoon, because it tells you how big the move will be once 8.6 is stable.
If you're in the middle of production, duplicate the project folder, open the copy in 8.6 and play it from start to finish. Go straight to translations, voice, Live2D, name entry and any phone GUI you use. The release page asks people to test the prerelease and report issues, and a visual novel with real content makes better test material than an empty template.
If you're starting a new visual novel this month, prototyping on the prerelease is a reasonable bet. New projects begin with GLSL ES 3.00 and the new layer defaults, so there's less to migrate later. Build the version you actually sell after 8.6 is declared stable.
Whatever you pick, keep a few save files from your current build before switching engines. Whether old saves still load is the first difference your players would notice.

If you're making a visual novel in Ren'Py, what would you check first in the 8.6 prerelease? And if you've shipped self-voicing or screen reader support before, I'd like to hear how your players used it.