RenPy engine itself written in python, but it can interpretate several languages.
First of all, it's pure python (python 2 for now). It is stored in .py files, does not support rollback (by default) and gives you opportunities to create as basic functions and classes, as advanced engine-dependant code like custom displayables. Not all RenPy project use pure python, because it's need some programming skill to write and integrate it.
Second part is renpy-specific languages. It's usually referenced, as on language, but this is not correct: different fields of game logic in renpy sould be written in different languages, and the common thing between them is that they all stored in .rpy files and some of them can run or use another. There can't be renpy game without renpy-specific code.
There is:
- script language
- screen (UI) layout language
- animation and transformation language (ATL)
However, script language and screen language support insertion of pure python sections. There is two main ways to insert python code:
- By writing python block:
label my_label:
python:
print('hello there')
print('general kenobi')
- By writting a python oneliner:
label my_label:
$ print('stonks')
The only difference is that oneliner supports only one python command (one line, huh), and python block support any amount of python code.
So, the code above is just a lot of python oneliners, probably in some script.