As somebody who has read a large number of visual novels (VNs), I consider Ren'py one of the better engines as a consumer:
- It has all the basic featured you'd expect, ranging from proper backlogs, to key bindings, and much more. You'd be shocked how many VN developers think that they can just pop out an VN engine themselves, and end up producing something that lacks even basic features.
- It is performant. You'd be surprised how poorly many VN engines run really poorly. Fast-forwarding past already-read text is often capped at a surprisingly slow rate, with your CPU pegged at 100%, due to how inefficient many engines are
- It is easily moddable, as you just need to plop a (pseudo-)python script into the game folder, so you can easily tweak or turn off annoying bits of UI
A number of localization companies have also ported (typically older) Japanese titles to Ren'py, instead of having to struggle with poor to non-existent support for non-Japanese systems in the original engine, as well as extremely expensive engine licenses, and just straight up poorly written bespoke engines. Examples of companies having done this includes JAST USA, FAKKU, MangaGamer, and (IIRC) Sekai Project/Denpasoft. In other words, the heavy hitters of VN localization.
The other main contender for best VN engine (in my mind) is the KiriKiri engine, which I believe is also open source, but which lacks the large, English-speaking community that Ren'py has built.
Despite that, Ren'py does have a bit of a poor reputation in the older VN reading community, more specifically among readers who mainly read localized, Japanese VNs, due to its association with low-budget, originally English visual novels. Typically the same people have only heard of DDLC and Katawa Shoujo, when it comes to originally English visual novels
One thing Ren'Py does well that many other engines do poorly is forward compatibility of saves. When VNs are released in pieces over time it is important to make sure the saves carry forward. Nothing kills momentum like "you will need to start over from scratch after every update".
As far as competitors go, the list is not very long. Sugarcube/Twine works ok, but tends to bog down as the projects grow large because it doesn't have a good way of breaking up the core logic across different files. The save system is also a bit of a problem since the in-browser saves tend to get lost in version updates. QSP is just a buggy confusing mess every time. People try to shoehorn RPGMaker into doing the job but it is just so clunky and slow. Custom engines, typically built in Unity, are almost always massive resource hogs and lacking in one or more of the basic features Ren'Py provides by default. Plus there is just the community aspect of it, with Ren'Py having so many developers there is a lot of institutional knowledge to be had. If you run into a problem you are probably not the first, someone else has probably solved it already.
Forward compatibility of saves is harder than people thought. VN scripts have choices and loops, so in general they are graphs, and upgrading the saves to another version requires matching two graphs. I'd be happy to know if there is a good diff algorithm for graphs
In practice graph matching can be helped by manually tagging the same nodes (labels in Ren'Py) in the two versions, but that cannot cover all the edge cases
I'm developing a VN framework for the own use of my indie VN dev group, and we mostly implemented the diff algorithm for the 'linear' part of the graphs. You can search my handle to know more
If you take the graph of the game, you basically have a DFA (deterministic finite automaton), so the problem is purely a reachability one which is trivial.
In renPy, you have arbitrary variables that can be used to define the possible transitions.
So reachability becomes a problem depending on the automaton state X persistent variables.
Unfortunately, that means that now reachability is now Turing-complete, since you need to analyze the code that interacts with all variables.
So say you have a transition tau from state Si to Sj, you need to make sure the labels contain any persistent variable that is used to trigger tau.
You can make sure to be forward compatible by (1) never removing states, and (2) making sure that any state x (value of persistent variables) has a transition.
Of course, that condition (2) is often violated by assuming that if you are in state Si, you must have gone through state Sk which sets a given variable to x, and fail to realize that there is another path to Si that does not go through Sk and you are stuck. If you add new states or new variables to your game, you are effectively creating this situation for all states. Reachability is a trivial problem, but checking the values all variables can take is kind of famously Turing-complete. So if you want to be able to do that, you need your use of variables so that basically you could eliminate them by replacing them by having more states.
Btw, the problem you mention is a notoriously painful one (https://en.wikipedia.org/wiki/Graph_isomorphism_problem), but with VNs you have labels so I think the issue is not to produce a diff but make it useful enough to check all game conditions.
The script graph can be thought as a DFA, but a 'game state' (images showing on screen, music playing...) is different from a node of the script graph, and there is not a one-to-one mapping between them
For example, if the script loops through a node (and there is a choice to go out of the loop), and the node moves a character on screen to the left by 5 pixels each time, then there can be different game states with the same node. It happens in a common trope of VNs when the story lets you explore different places and go back to the original place each time
In the design of our VN framework, the game state is determined not by the current node, but by the node history (and other things like 'global variables'). If the author changes some script in the new version, then all saved data with the affected node history need to get updated
If there is no choice added/deleted, then the update can be implemented by simply re-running the nodes. However, if there are choices added/deleted, the update can be more complicated and involve graph isomorphism in the worst case
>The script graph can be thought as a DFA, but a 'game state' (images showing on screen, music playing...) is different from a node of the script graph, and there is not a one-to-one mapping between them
Sure. I would say it's a pretty bad idea though, and for instance in JOBifAI we manually managed savepoints in these case to stay isomorphic to a DFA anyway, because it's already hard enough to manage when the game has a big scope.
>If there is no choice added/deleted, then the update can be implemented by simply re-running the nodes. However, if there are choices added/deleted, the update can be more complicated and involve graph isomorphism in the worst case
Well. what you call 'global variables' is what I called 'persistent variables' above (using renPy's terminology).
If you consider that they can get any value, your problem can be reduced to the halting problem.
There are 2 ways you can get around that:
- any use of these variables in conditional transitions segments the domain into a finite number of subdomains (in that case it's just a proxy for a long expansion into a much bigger DFA)
- the variables belong to an infinite domain but are not involved into any state transition (for example, setting your name is not restricted but does not change any state transition)
Since the halting problem isn't solvable, if you use these two solutions you don't need to solve the graph isomorphism problem.
If you delete a node Si and your history contained Ss => Si => Se, you just need to find a path from Ss ==> Se. If you take the first in lexicographic order you even have a canonical solution.
I think you can accommodate most changes by storing ordered list of IDs of visited nodes as well as variables set by choices. This way if you'll delete or replace some nodes or branches you can walk back to still existing parts.
I took a quick look via query.vndb.org, and the top 10 most popular engines in terms of releases are Ren'Py, KiriKiri, TyranoScript, Unity, NScripter, LiveMaker, RPG Maker, YU-RIS, Flash, and Artemis (from most to least).
This is of course not an exact ranking, since the same game can have many (nearly identical) releases, but it roughly matches my experience
The best thing about Renpy is that the text rendering actually looks good, which is true of shockingly few VN engines even today.
Especially when you increase the window size or run fullscreen, most VN engines just render the whole game at a fixed resolution and upscale it up but Renpy makes the framebuffer match the window size and renders text at the full resolution.
I agree as for my own VN I started working with a custom-made engine until I completed the rollback-feature requirements; after seeing the scope of it, I checked renPy and found it basically did everything right already.
In many ways I felt that the engine was designer for beginners rather than developers in a way that are antagonistic to each others.
No real debugger, no support for libraries, leading to re-implementation of basic stuff, etc. I had a love-hate relationship with it. Pseudo-python is the right term for it.
In the end I was happy with the Steam features it already had to make distribution easy, although I had to actually patch the engine as the Steam session ticket function was broken.
Something noticeably missing from almost every other type of text-heavy game which perhaps wouldn't be if games developers were less snobbish about where they draw inspiration from.
On the other hand, writers of games with metatextual stories benefit from their target audience not knowing how well-trod the ground is.
Sorry, as others have said, I meant a text log or "history". Basically, the ability to view the last N lines of text. For some VNs, this log also allows you to replay the voice lines, to jump back to specific lines/scenes, and even to bookmark specific lines, separately from saving the game. Ren'py is actually a bit unusual in this regard, since the default behavior is a rewind feature rather than a text log. However, most commercial Ren'py VNs will show the history as a log.
I think they meant scrollback. as conventionally a backlog would evoke "work yet to be done", whereas in this context we're talking about a conversation history one can revisit.
Like you can either read a log of what characters said in a scene so far, or simply go backwards through the story to reach an earlier line and view it again.
>A number of localization companies have also ported (typically older) Japanese titles to Ren'py, instead of having to struggle with poor to non-existent support for non-Japanese systems in the original engine, as well as extremely expensive engine licenses, and just straight up poorly written bespoke engines. Examples of companies having done this includes JAST USA, FAKKU, MangaGamer, and (IIRC) Sekai Project/Denpasoft. In other words, the heavy hitters of VN localization.
That caught my curiosity, but I couldn't find any examples of older VNs being ported to Renpy. Could you share any examples?
Examples include 'Love Duction!' (2014) published by Sekai Project/Denpasoft, 'Sona-Nyl of the Violet Shadows Refrain' (2011) localized by MangaGamer,
multiple re-releases of late-90s/early 2000s titles published by JAST USA such as X-Change (1997-2004), Water Closet (2000), and Heart de Roommate (2003), and 'True Love 95' (1995) published by FAKKU
Agree, as a person with accessibility issues, I prefer this engine because it has a basic TTS support that I can mod and plug my own custom TTS script.
I also seen people reinventing poorly the engine in Unity so for me text based games or visual novels in Unity are just a NO , because of TTS support.
Much like books, that depends on what kind of stories interest you. Though it'd be advantageous for you if you enjoy romance, because that genre is heavily over-represented.
But if there are no titles that have already caught your interest, then my personal recommendation is to start with hybrid games such as VA-11 Hall-A, the Danganronpa series, the Ace Attorney series, WILL: A Wonderful World, and 999.
VNs are at their core a reading experience, frequently involving more words than what you'll find in the entire Lords of the Ring trilogy, but hybrid games like the above allow you to dip your toes in the VN genre without it purely being reading
For context, visual novels are basically ~novella sized stories that come with visuals like static backgrounds + a few dozen renders per character. The character renders tend to be mostly the same, with small variations in facial expression, pose, maybe outfit.
All that to say, you probably won't like VNs unless you like reading. Don't expect much gameplay / animation. That said, the more famous stories tend to have multiple endings determined by a handful of choices you get during the story. On occasion, some games go for sandbox-style gameplay where you roam the map to grind out currency to unlock visual novel scenes.
In terms of genre I'd say at least half are dating sims, with the rest being some kind of adventure or mystery story. I'd also guess at least half are nsfw / r18. Renpy VNs tend to be made by indie devs from everywhere but Japan, which has a VN industry with in-house engines.
Writing quality tends to be what you expect from indie authors / devs. That is, filled with tropes, tending towards the wish-fulfillment types. Which isn't necessarily a bad thing, you'll be surprised what you'd be willing to overlook if the premise / plot seems interesting.
title length (min) engine
HEAVEN BURNS RED 12580 CRIware
Rance X -Kessen- 11085 AliceSoft System4.X
Shoujo Settai 10418
Kamidori Alchemy Meister 8407
Seinarukana... 6858
Lessons in Love 6819 Ren'Py
Sengoku † Koihime... 6744 CatSystem2
Higurashi no Naku Koro ni 6626
Keep in mind that several of these titles are hybrid VNs, i.e. games that mix visual novel narration with gameplay elements. This has a tendency to inflate the playtime disproportionately to the actual word count, though VNDB does require that a significant amount of play-time is spent reading for games listed on there in the first place.
Off the top of my head, hybrid VNs on your list includes HEAVEN BURNS RED, Rance X, Kamidori, Seinarukana, and Koihime. Though as far as I know, Rance X in particular also has a very, very long script
Baldr Sky is a perfect title for those who also want some action gaming in the mix. Also, like many great visual novels, the plot takes advantage of multiple endings very well.
Unfortunately, Japan stopped making visual novels somewhere around a decade ago. Creators presumably moved on to work on gacha games. Many visual novel companies are now either gone, inactive, or pivoted to gacha games. I wish I can see more games like Baldr Sky, Steins Gate, and Aiyoku no Eustia again.
The Spooktober Visual Novel jam that happens every September is a good way to both get into VN development and also find high quality games that you can play for free on itch.io.
Some if the entries really push the limits in terms visual presentation and can have a crazy amounts of animations. Plus really talented voice actors use the jam to practice their skills.
This was used to make 'Analogue: A Hate Story', which in my opinion was an interesting visual novel to read, with some more unusual interactive elements as well.
It feels to me like 'Hate Story' and its sequel ('Hate Plus') really pushed the bounds of what a visual novel engine can easily do.
It's an extremely popular engine for visual novels, to the point where it's fairly safe to assume any given VN is made using Ren'Py. For example, last year's Slay The Princess.
Needy Streamer Overload was the big visual novel of 2024 I think, which was Unity.
The most popular modern-ish visual novels I know of, like Fate Grand Order, Dangenronpa, and Ace Attorney, aren't Ren'py.
I feel like Ren'py is in the minority for modern popular visual novels, and it's definitely in the minority if you include re-releases of older visual novels.
I'd expect it to be in the vast majority for independent visual novels.
I really wish they'd implement proper XDG stuff, because the engine is great and I love VNs but all I can think about is the ~/.renpy littering my home.
I just picked up Stories from Sol: The Gun-Dog, which launched on steam this week, and was made with RenPy. It's going great so far. Some of the lore reminds me a lot of Martian Successor Nadesico.
Honestly I wouldn't recommend DDLC to someone new to VNs. It's hilarious but it parodies the dating sim genre by amping up the defining tropes to 11 before it then (minor spoiler, see footnote [2]). So you kind of need familiarity with the genre to understand some of the jokes. One of the more famous dating sims is probably Katawa Shoujo which is also free under a CC license.
Ah Interesting, I have only played one or two dating sims many years ago, what are some tropes which are specific to dating sims rather than those also found in romance-based anime/manga?
I guess "bad endings" and "save then go back" would be specific and played with in DDLC, but I didn't pick up anything else.
> So you kind of need familiarity with the genre to understand some of the jokes.
>> what are some tropes which are specific to dating sims rather than those also found in romance-based anime/manga?
It's been a while since I've read DDLC but familiarity was probably too strong a word. Having expectations about how the story should develop and then having those subverted is a good chunk of the fun [1]. So skimming at least one dating sim vn is probably enough context.
And anime / manga covers most of the context / japan-isms that DDLC mocks (eg the school setting, the childhood friend / council prez / spoiled imouto archetypes). To your question though, the VN-specific jokes are mostly about the route system and world building. Like you mentioned, DDLC toys a lot with the concept of multiple routes / save files. In most VNs each route starts the same before branching. You don't normally expect this "common route" to change between tries but in DDLC it does in multiple ways. But more uniquely, DDLC also questions why these romantic endings exist in the first place and arrives at the conclusion that the romantic interests are psychotically obsessed... by the design of some god [2]. This also pokes at how some VNs just rewrite the world between routes to avoid distractions from the chosen love interest, as in big events that are inevitable in one route just don't happen in others.
I also thought the poem-based choice system in itself was a good joke. Like most VNs have screens that let you vote on which route to read, one choice per route. After N screens you get placed on the route you picked most. DDLC exaggerates this by giving you 100s of screens each with multiple choices per love interest.
Speaking of DDLC, I should really reread Totono [3]. It's another VN-parody but less gimmicky and a bit more serious / emotional.
I was wondering what it was built with as I was playing. Roadwarden is tripple-A storytelling and world building masquerading as a little indie title. I was very impressed by how much atmosphere it conveys with minimalistic presentation. That takes a lot of skill.
Here it is on Steam, currently on sale for a criminally under priced $4.39
Agreed, Roadwarden is an absolute gem and has earned two full playthroughs from me. It's such a compelling experience for a text-based game, it feels especially so as I'm not old enough to have a nostalgic appreciation for text games.
I've made two 'games' with ren'py in the past, and it's really fun engine to work in and quite an amazing engine as it can be used for the most basic straight forward game with little programming experience but also scales up to some pretty complex stuff if you have the means.
They have a database of over 4,000 visual novels built with this engine, but that barely scratches the surface. If you know where to look there are many thousands more projects built on this engine.
The Visual Novel Database (VNDB) alone lists nearly 12,000 titles that have used Ren'py:
(Warning: This site contains a lot of text and images that are not safe for work. And it records a lot of works that many people will probably find distressing)
But as you say, that's barely scratching the surface. You can probably find many more on itch.io and in other communities, that nobody have bothered to add to VNDB
That's weird, I don't think those old TypeMoon and Key visual novels used Ren'py. Maybe Ren'py is able to read files made for other engines like NScript or KiriKiri and that's why they show in the search?
I've always wondered if LLMs will slowly seep into this backyard. They are perfectly capable of creating the story (will probably be mid, barely interesting), the art (albeit easily recognized as AI slop) and the code (after some iterations) and with some tooling, even sign and deploy to websites all fully automated.
VNs are interesting to AI developers because they're multimodal datasets with extensive text annotations. People are already working on this https://huggingface.co/datasets/Limour/b-corpus
The game engine that’s probably kickstarted more game dev careers than most. I remember when 4chan came together to produce the surprisingly good Katawa Shoujo with it. Wild times
As somebody who has read a large number of visual novels (VNs), I consider Ren'py one of the better engines as a consumer:
- It has all the basic featured you'd expect, ranging from proper backlogs, to key bindings, and much more. You'd be shocked how many VN developers think that they can just pop out an VN engine themselves, and end up producing something that lacks even basic features.
- It is performant. You'd be surprised how poorly many VN engines run really poorly. Fast-forwarding past already-read text is often capped at a surprisingly slow rate, with your CPU pegged at 100%, due to how inefficient many engines are
- It is easily moddable, as you just need to plop a (pseudo-)python script into the game folder, so you can easily tweak or turn off annoying bits of UI
A number of localization companies have also ported (typically older) Japanese titles to Ren'py, instead of having to struggle with poor to non-existent support for non-Japanese systems in the original engine, as well as extremely expensive engine licenses, and just straight up poorly written bespoke engines. Examples of companies having done this includes JAST USA, FAKKU, MangaGamer, and (IIRC) Sekai Project/Denpasoft. In other words, the heavy hitters of VN localization.
The other main contender for best VN engine (in my mind) is the KiriKiri engine, which I believe is also open source, but which lacks the large, English-speaking community that Ren'py has built.
Despite that, Ren'py does have a bit of a poor reputation in the older VN reading community, more specifically among readers who mainly read localized, Japanese VNs, due to its association with low-budget, originally English visual novels. Typically the same people have only heard of DDLC and Katawa Shoujo, when it comes to originally English visual novels
One thing Ren'Py does well that many other engines do poorly is forward compatibility of saves. When VNs are released in pieces over time it is important to make sure the saves carry forward. Nothing kills momentum like "you will need to start over from scratch after every update".
As far as competitors go, the list is not very long. Sugarcube/Twine works ok, but tends to bog down as the projects grow large because it doesn't have a good way of breaking up the core logic across different files. The save system is also a bit of a problem since the in-browser saves tend to get lost in version updates. QSP is just a buggy confusing mess every time. People try to shoehorn RPGMaker into doing the job but it is just so clunky and slow. Custom engines, typically built in Unity, are almost always massive resource hogs and lacking in one or more of the basic features Ren'Py provides by default. Plus there is just the community aspect of it, with Ren'Py having so many developers there is a lot of institutional knowledge to be had. If you run into a problem you are probably not the first, someone else has probably solved it already.
Forward compatibility of saves is harder than people thought. VN scripts have choices and loops, so in general they are graphs, and upgrading the saves to another version requires matching two graphs. I'd be happy to know if there is a good diff algorithm for graphs
In practice graph matching can be helped by manually tagging the same nodes (labels in Ren'Py) in the two versions, but that cannot cover all the edge cases
I'm developing a VN framework for the own use of my indie VN dev group, and we mostly implemented the diff algorithm for the 'linear' part of the graphs. You can search my handle to know more
If you take the graph of the game, you basically have a DFA (deterministic finite automaton), so the problem is purely a reachability one which is trivial. In renPy, you have arbitrary variables that can be used to define the possible transitions. So reachability becomes a problem depending on the automaton state X persistent variables. Unfortunately, that means that now reachability is now Turing-complete, since you need to analyze the code that interacts with all variables. So say you have a transition tau from state Si to Sj, you need to make sure the labels contain any persistent variable that is used to trigger tau.
You can make sure to be forward compatible by (1) never removing states, and (2) making sure that any state x (value of persistent variables) has a transition.
Of course, that condition (2) is often violated by assuming that if you are in state Si, you must have gone through state Sk which sets a given variable to x, and fail to realize that there is another path to Si that does not go through Sk and you are stuck. If you add new states or new variables to your game, you are effectively creating this situation for all states. Reachability is a trivial problem, but checking the values all variables can take is kind of famously Turing-complete. So if you want to be able to do that, you need your use of variables so that basically you could eliminate them by replacing them by having more states.
Btw, the problem you mention is a notoriously painful one (https://en.wikipedia.org/wiki/Graph_isomorphism_problem), but with VNs you have labels so I think the issue is not to produce a diff but make it useful enough to check all game conditions.
Let me know if something is unclear.
The script graph can be thought as a DFA, but a 'game state' (images showing on screen, music playing...) is different from a node of the script graph, and there is not a one-to-one mapping between them
For example, if the script loops through a node (and there is a choice to go out of the loop), and the node moves a character on screen to the left by 5 pixels each time, then there can be different game states with the same node. It happens in a common trope of VNs when the story lets you explore different places and go back to the original place each time
In the design of our VN framework, the game state is determined not by the current node, but by the node history (and other things like 'global variables'). If the author changes some script in the new version, then all saved data with the affected node history need to get updated
If there is no choice added/deleted, then the update can be implemented by simply re-running the nodes. However, if there are choices added/deleted, the update can be more complicated and involve graph isomorphism in the worst case
>The script graph can be thought as a DFA, but a 'game state' (images showing on screen, music playing...) is different from a node of the script graph, and there is not a one-to-one mapping between them
Sure. I would say it's a pretty bad idea though, and for instance in JOBifAI we manually managed savepoints in these case to stay isomorphic to a DFA anyway, because it's already hard enough to manage when the game has a big scope.
>If there is no choice added/deleted, then the update can be implemented by simply re-running the nodes. However, if there are choices added/deleted, the update can be more complicated and involve graph isomorphism in the worst case
Well. what you call 'global variables' is what I called 'persistent variables' above (using renPy's terminology). If you consider that they can get any value, your problem can be reduced to the halting problem. There are 2 ways you can get around that:
- any use of these variables in conditional transitions segments the domain into a finite number of subdomains (in that case it's just a proxy for a long expansion into a much bigger DFA)
- the variables belong to an infinite domain but are not involved into any state transition (for example, setting your name is not restricted but does not change any state transition)
Since the halting problem isn't solvable, if you use these two solutions you don't need to solve the graph isomorphism problem. If you delete a node Si and your history contained Ss => Si => Se, you just need to find a path from Ss ==> Se. If you take the first in lexicographic order you even have a canonical solution.
I think you can accommodate most changes by storing ordered list of IDs of visited nodes as well as variables set by choices. This way if you'll delete or replace some nodes or branches you can walk back to still existing parts.
I took a quick look via query.vndb.org, and the top 10 most popular engines in terms of releases are Ren'Py, KiriKiri, TyranoScript, Unity, NScripter, LiveMaker, RPG Maker, YU-RIS, Flash, and Artemis (from most to least).
This is of course not an exact ranking, since the same game can have many (nearly identical) releases, but it roughly matches my experience
Notably nscripter has a third party open source reimplementation in onscripter[0], which in turn has a fork in onscripter-en[1].
0. https://github.com/ogapee/onscripter
1. https://github.com/Galladite27/ONScripter-EN
The best thing about Renpy is that the text rendering actually looks good, which is true of shockingly few VN engines even today.
Especially when you increase the window size or run fullscreen, most VN engines just render the whole game at a fixed resolution and upscale it up but Renpy makes the framebuffer match the window size and renders text at the full resolution.
I agree as for my own VN I started working with a custom-made engine until I completed the rollback-feature requirements; after seeing the scope of it, I checked renPy and found it basically did everything right already.
In many ways I felt that the engine was designer for beginners rather than developers in a way that are antagonistic to each others. No real debugger, no support for libraries, leading to re-implementation of basic stuff, etc. I had a love-hate relationship with it. Pseudo-python is the right term for it.
In the end I was happy with the Steam features it already had to make distribution easy, although I had to actually patch the engine as the Steam session ticket function was broken.
>proper backlogs
Something noticeably missing from almost every other type of text-heavy game which perhaps wouldn't be if games developers were less snobbish about where they draw inspiration from.
On the other hand, writers of games with metatextual stories benefit from their target audience not knowing how well-trod the ground is.
The other big text engines are probably Inform 7 and Twine? They both have undo.
Text-heavy. JRPGs love to include 20 minutes of reading where an errant click means you miss a line, forever.
What does a "backlog" mean in this context?
Sorry, as others have said, I meant a text log or "history". Basically, the ability to view the last N lines of text. For some VNs, this log also allows you to replay the voice lines, to jump back to specific lines/scenes, and even to bookmark specific lines, separately from saving the game. Ren'py is actually a bit unusual in this regard, since the default behavior is a rewind feature rather than a text log. However, most commercial Ren'py VNs will show the history as a log.
I think they meant scrollback. as conventionally a backlog would evoke "work yet to be done", whereas in this context we're talking about a conversation history one can revisit.
Like you can either read a log of what characters said in a scene so far, or simply go backwards through the story to reach an earlier line and view it again.
You can rewind a conversation in case you accidentally pressed the "skip" button and missed some important plot point
>A number of localization companies have also ported (typically older) Japanese titles to Ren'py, instead of having to struggle with poor to non-existent support for non-Japanese systems in the original engine, as well as extremely expensive engine licenses, and just straight up poorly written bespoke engines. Examples of companies having done this includes JAST USA, FAKKU, MangaGamer, and (IIRC) Sekai Project/Denpasoft. In other words, the heavy hitters of VN localization.
That caught my curiosity, but I couldn't find any examples of older VNs being ported to Renpy. Could you share any examples?
Examples include 'Love Duction!' (2014) published by Sekai Project/Denpasoft, 'Sona-Nyl of the Violet Shadows Refrain' (2011) localized by MangaGamer, multiple re-releases of late-90s/early 2000s titles published by JAST USA such as X-Change (1997-2004), Water Closet (2000), and Heart de Roommate (2003), and 'True Love 95' (1995) published by FAKKU
Many examples can be queried from VNDB https://query.vndb.org/8e75036b2dcfe441
[dead]
Agree, as a person with accessibility issues, I prefer this engine because it has a basic TTS support that I can mod and plug my own custom TTS script. I also seen people reinventing poorly the engine in Unity so for me text based games or visual novels in Unity are just a NO , because of TTS support.
Can you recommend some good VNs for a newbie?
Much like books, that depends on what kind of stories interest you. Though it'd be advantageous for you if you enjoy romance, because that genre is heavily over-represented.
But if there are no titles that have already caught your interest, then my personal recommendation is to start with hybrid games such as VA-11 Hall-A, the Danganronpa series, the Ace Attorney series, WILL: A Wonderful World, and 999.
VNs are at their core a reading experience, frequently involving more words than what you'll find in the entire Lords of the Ring trilogy, but hybrid games like the above allow you to dip your toes in the VN genre without it purely being reading
Reddit has it https://www.reddit.com/r/visualnovels/wiki/recommendations
For context, visual novels are basically ~novella sized stories that come with visuals like static backgrounds + a few dozen renders per character. The character renders tend to be mostly the same, with small variations in facial expression, pose, maybe outfit.
All that to say, you probably won't like VNs unless you like reading. Don't expect much gameplay / animation. That said, the more famous stories tend to have multiple endings determined by a handful of choices you get during the story. On occasion, some games go for sandbox-style gameplay where you roam the map to grind out currency to unlock visual novel scenes.
In terms of genre I'd say at least half are dating sims, with the rest being some kind of adventure or mystery story. I'd also guess at least half are nsfw / r18. Renpy VNs tend to be made by indie devs from everywhere but Japan, which has a VN industry with in-house engines.
Writing quality tends to be what you expect from indie authors / devs. That is, filled with tropes, tending towards the wish-fulfillment types. Which isn't necessarily a bad thing, you'll be surprised what you'd be willing to overlook if the premise / plot seems interesting.
> For context, visual novels are basically ~novella sized stories
Usually, but some of them are infamously ludicrously long. Like 2-3x War and Peaces long.
Got curious about the actual distribution so ran some queries on vndb [1].
Looks like the median renpy novel (with 100+ votes) takes 250min to complete with the ludicrously long ones [2] bringing the average up to 503min.
[1] https://query.vndb.org/?sql=SELECT+%0D%0A++++r.engine%2C+%0D...[2] https://query.vndb.org/?sql=SELECT%0D%0Avn.title%2C%0D%0AROU...
Keep in mind that several of these titles are hybrid VNs, i.e. games that mix visual novel narration with gameplay elements. This has a tendency to inflate the playtime disproportionately to the actual word count, though VNDB does require that a significant amount of play-time is spent reading for games listed on there in the first place.
Off the top of my head, hybrid VNs on your list includes HEAVEN BURNS RED, Rance X, Kamidori, Seinarukana, and Koihime. Though as far as I know, Rance X in particular also has a very, very long script
Baldr Sky is a perfect title for those who also want some action gaming in the mix. Also, like many great visual novels, the plot takes advantage of multiple endings very well.
Unfortunately, Japan stopped making visual novels somewhere around a decade ago. Creators presumably moved on to work on gacha games. Many visual novel companies are now either gone, inactive, or pivoted to gacha games. I wish I can see more games like Baldr Sky, Steins Gate, and Aiyoku no Eustia again.
The most popular VN is a massive franchise: Phoenix Wright.
And danganronpa
>~novella sized stories
laughs in umineko and higurashi
cries in seagulls, cicadas and storks
The Spooktober Visual Novel jam that happens every September is a good way to both get into VN development and also find high quality games that you can play for free on itch.io.
Some if the entries really push the limits in terms visual presentation and can have a crazy amounts of animations. Plus really talented voice actors use the jam to practice their skills.
[flagged]
This was used to make 'Analogue: A Hate Story', which in my opinion was an interesting visual novel to read, with some more unusual interactive elements as well.
It feels to me like 'Hate Story' and its sequel ('Hate Plus') really pushed the bounds of what a visual novel engine can easily do.
It's an extremely popular engine for visual novels, to the point where it's fairly safe to assume any given VN is made using Ren'Py. For example, last year's Slay The Princess.
I don't know if that's a given.
Needy Streamer Overload was the big visual novel of 2024 I think, which was Unity.
The most popular modern-ish visual novels I know of, like Fate Grand Order, Dangenronpa, and Ace Attorney, aren't Ren'py.
I feel like Ren'py is in the minority for modern popular visual novels, and it's definitely in the minority if you include re-releases of older visual novels.
I'd expect it to be in the vast majority for independent visual novels.
If you're wondering what's up with the name, "Ren'Py" is a pun on the Japanese word "ren'ai" (恋愛), which means "romantic love".
And at the risk of stating the obvious, Py is for Python and Ren is for Render
The “Ren” part is surely coincidence, it doesn't really make sense.
"Render your visual novel with Python"?
I really wish they'd implement proper XDG stuff, because the engine is great and I love VNs but all I can think about is the ~/.renpy littering my home.
I just picked up Stories from Sol: The Gun-Dog, which launched on steam this week, and was made with RenPy. It's going great so far. Some of the lore reminds me a lot of Martian Successor Nadesico.
https://store.steampowered.com/app/2118420/Stories_from_Sol_...
Curious, I discovered this today as I played a visual novel built with it: Doki Doki literature club (free on steam).
Interesting read/play, but not for everyone.
you can download it without steam for free (or donate if you like) at https://ddlc.moe/
Honestly I wouldn't recommend DDLC to someone new to VNs. It's hilarious but it parodies the dating sim genre by amping up the defining tropes to 11 before it then (minor spoiler, see footnote [2]). So you kind of need familiarity with the genre to understand some of the jokes. One of the more famous dating sims is probably Katawa Shoujo which is also free under a CC license.
[1] https://en.m.wikipedia.org/wiki/Katawa_Shoujo
.
.
.
.
[2] does a 180 and makes fun of the plot holes
Ah Interesting, I have only played one or two dating sims many years ago, what are some tropes which are specific to dating sims rather than those also found in romance-based anime/manga?
I guess "bad endings" and "save then go back" would be specific and played with in DDLC, but I didn't pick up anything else.
(spoilers ahead)
> So you kind of need familiarity with the genre to understand some of the jokes.
>> what are some tropes which are specific to dating sims rather than those also found in romance-based anime/manga?
It's been a while since I've read DDLC but familiarity was probably too strong a word. Having expectations about how the story should develop and then having those subverted is a good chunk of the fun [1]. So skimming at least one dating sim vn is probably enough context.
And anime / manga covers most of the context / japan-isms that DDLC mocks (eg the school setting, the childhood friend / council prez / spoiled imouto archetypes). To your question though, the VN-specific jokes are mostly about the route system and world building. Like you mentioned, DDLC toys a lot with the concept of multiple routes / save files. In most VNs each route starts the same before branching. You don't normally expect this "common route" to change between tries but in DDLC it does in multiple ways. But more uniquely, DDLC also questions why these romantic endings exist in the first place and arrives at the conclusion that the romantic interests are psychotically obsessed... by the design of some god [2]. This also pokes at how some VNs just rewrite the world between routes to avoid distractions from the chosen love interest, as in big events that are inevitable in one route just don't happen in others.
I also thought the poem-based choice system in itself was a good joke. Like most VNs have screens that let you vote on which route to read, one choice per route. After N screens you get placed on the route you picked most. DDLC exaggerates this by giving you 100s of screens each with multiple choices per love interest.
Speaking of DDLC, I should really reread Totono [3]. It's another VN-parody but less gimmicky and a bit more serious / emotional.
[1] https://github.com/Bronya-Rand/DDLCModTemplate2.0/blob/v1.1....
[2] https://github.com/Bronya-Rand/DDLCModTemplate2.0/blob/69aa2... https://github.com/Bronya-Rand/DDLCModTemplate2.0/blob/v1.1....
[3] https://store.steampowered.com/app/1293820/YOU_and_ME_and_HE...
Review by “Yahtzee” Croshaw: <https://www.youtube.com/watch?v=krq6-1ht_kk>
Interestingly, DDLC Plus, the paid rerelease with extra content, was rebuilt in Unity, presumably to support consoles.
vndb[0] is a non-profit VN database, and a good starting point to find reputable VNs in English (original or translated) to play.
0. https://vndb.org/
Some really cool stuff has been built with Ren'Py. A (fairly) recent example for me is Roadwarden, a 20hr long RPG.
I was wondering what it was built with as I was playing. Roadwarden is tripple-A storytelling and world building masquerading as a little indie title. I was very impressed by how much atmosphere it conveys with minimalistic presentation. That takes a lot of skill.
Here it is on Steam, currently on sale for a criminally under priced $4.39
https://store.steampowered.com/app/1155970/Roadwarden/
Agreed, Roadwarden is an absolute gem and has earned two full playthroughs from me. It's such a compelling experience for a text-based game, it feels especially so as I'm not old enough to have a nostalgic appreciation for text games.
If you prefer JS to Python, there's also WebGAL https://github.com/OpenWebGAL/WebGAL
I've made two 'games' with ren'py in the past, and it's really fun engine to work in and quite an amazing engine as it can be used for the most basic straight forward game with little programming experience but also scales up to some pretty complex stuff if you have the means.
They have a database of over 4,000 visual novels built with this engine, but that barely scratches the surface. If you know where to look there are many thousands more projects built on this engine.
The Visual Novel Database (VNDB) alone lists nearly 12,000 titles that have used Ren'py:
(Warning: This site contains a lot of text and images that are not safe for work. And it records a lot of works that many people will probably find distressing)
https://vndb.org/v?q=&ch=&f=N1802fwRen_7Py-741&s=26y
But as you say, that's barely scratching the surface. You can probably find many more on itch.io and in other communities, that nobody have bothered to add to VNDB
That's weird, I don't think those old TypeMoon and Key visual novels used Ren'py. Maybe Ren'py is able to read files made for other engines like NScript or KiriKiri and that's why they show in the search?
Fan-ports of VNs to Ren'py are not uncommon, in part because Ren'py supports mobile devices. For example, https://vndb.org/r99153
But you can exclude those by only searching for official releases:
https://vndb.org/v?q=&ch=&f=N1803fwRen_7Py-741Ng01&s=26y
Hehe I've come across this tech from xxx games
Edit: I don't have the patience for these games but yeah I've seen the name before
If you look on SteamDB PyGame and Ren'Py are the 5th and 6th most used technologies, ahead of Godot. https://steamdb.info/tech/
Some people point out this is mainly because of the erotic novel shovelware that is quite popular on Steam.
It's a player, like Flash.
What does it do that Flash didn't?
It has a DSL specified for writing VNs
I've always wondered if LLMs will slowly seep into this backyard. They are perfectly capable of creating the story (will probably be mid, barely interesting), the art (albeit easily recognized as AI slop) and the code (after some iterations) and with some tooling, even sign and deploy to websites all fully automated.
VNs are interesting to AI developers because they're multimodal datasets with extensive text annotations. People are already working on this https://huggingface.co/datasets/Limour/b-corpus
They might take it with storm and we see influx or high quality stories that can't be distinguished from those written by nips.
GenAI is becoming popular for image generation to add visuals to the novel.
The game engine that’s probably kickstarted more game dev careers than most. I remember when 4chan came together to produce the surprisingly good Katawa Shoujo with it. Wild times