See, this is bad. You don't want to duplication in code. Because if you want to change one thing you need to change it in all the 'pasted' places and chances are you will miss one place.
I've never written anything in Renpy, but I'm assuming Oni didn't really do anything that could be scalable. Does Renpy come with a default Character class for you to extend or is that up to the developer? If it's the latter, it could be the reason why his code is so bad/slow.
Seems like from looking at this demo:
You must be registered to see the links
, it looks like Renpy doesn't have those prebuilt. He has to have to knowledge of using good OOP to make sure his game can easily add new characters. Eg, have a base Character class that Student or Teacher inherits from. Character has the shared stuff like Lust, Love, Obed, etc. Storing dialog is sane formats like JSON or XML, rather than putting it in the script directly...
Idk, shit like that. I'm guessing he's doing everything with bad programming practices. Which, is fine for HIM. But the work will be much harder to change, and not very fun to work with. I commend him for doing that bad code + art and design + writing. It's hard to write bad code man, because when you change something everything goes to shit. Good code is easy to change and modify.