Ren'Py works astonishingly similarly to Tupperbox
Okay, hear me out here.
So, for those in the RP community, especially those in Discord-based RPs, you must be familiar with Tupperbox. For those who aren't, the way Tupperbox works is that you register a character with a text bracket:
>tul!register 'Character Name' [bracket]text
So when you're in a server with the Tupperbox bot, all you have to do is type in:
>[bracket]some text here
And the bot will replace your character with a proxy:
>Character Name[APP]
some text here
Sound familiar? That's because say statements and character objects work similarly in Ren'Py. First, you define a character object:
>define [variable] = Character("Character Name")
So when you code your game, all you have to do for dialogue is type in:
>[variable] "Some dialogue here"
Which Ren'Py spits out as:
>Character Name
Some dialogue here
Anyway, that's how I intuitively got the hang of say statements as a long-time Discord RPer.