Live data from Hacker News

The Ren'Py Visual Novel Engine

renpy.org

71–80 of 91 posts

Re: The Ren'Py Visual Novel Engine

#72

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

Re: The Ren'Py Visual Novel Engine

#73

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…

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

Re: The Ren'Py Visual Novel Engine

#74

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…

Can you recommend some good VNs for a newbie?

Reddit has it https://www.reddit.com/r/visualnovels/wiki/recommendations

Re: The Ren'Py Visual Novel Engine

#75
post #65

Earlier quoted context omitted.

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…

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 t…

>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.

Re: The Ren'Py Visual Novel Engine

#76

Earlier quoted context omitted.

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 i…

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 ca…

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.

Re: The Ren'Py Visual Novel Engine

#77
post #13

Earlier quoted context omitted.

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/Kataw…

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 also cover most of that 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. I guess these still fall under the umbrella of "bad endings" and "save then go back" but imo it's a huge umbrella that's worth exploring.

So like you mentioned, DDLC toys a lot with the concept of multiple routes / save files. In most VNs each route starts the same story 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 choice system (the poems) in itself was a fun 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. Kind of like "Are you really really sure? Is this your final answer?"

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...

Re: The Ren'Py Visual Novel Engine

#78

If you prefer JS to Python, there's also WebGAL https://github.com/OpenWebGAL/WebGAL

Trying the demo of this on my phone, there are already several kinds of jank, and one of the lines got cut off so I couldn't read it. I think that's a bad sign.

Re: The Ren'Py Visual Novel Engine

#80
post #77

Earlier quoted context omitted.

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]…

thanks for the extensive explanation, much appreciated!
Post reply on HN