Wat is het RPY-bestandsformaat?
.rpy is een scriptbestand dat wordt gebruikt door de Ren'Py visual-novel engine. Hoewel de extensie van het formaat verwijst naar de .py wortels, is een .rpy-bestand geen gewone Python-broncode: het is geschreven in Ren'Py's eigen domeinspecifieke taal, die storytelling-statements op hoog niveau - personage-dialogen, scènedirectieven, vertakkende menu's en conditionele verhaallijnen - bovenop de bekende syntaxisregels van Python plaatst. .rpy-bestanden kunnen code bevatten die rechtstreeks in Python is geschreven naast Ren'Py-specifieke statements.
.rpy is een tekstbestand in platte tekst gecodeerd in UTF-8 en kan worden geopend en bewerkt in elke tekstverwerker. Auteurs die .rpy-scripts bewerken, moeten voorzichtig zijn met inspringing (indentation), aangezien Ren'Py inspringing gebruikt om codeblokken te definiëren, net als Python. Voor geavanceerde logica kunnen scripts ruwe Python insluiten binnen python:-blokken of via het $-voorvoegsel voor één regel, waardoor auteurs toegang krijgen tot de volledige standaardbibliotheek van Python binnen een Ren'Py-project.
Wanneer Ren'Py een spel start, compileert het elk .rpy-bronbestand naar een binair .rpyc-cachebestand voor sneller laden. Gedistribueerde spellen bevatten doorgaans alleen de gecompileerde .rpyc-bestanden, vaak verpakt in een .rpa-archief, zodat spelers normaal gesproken de .rpy-broncode niet zien. Community-tools zoals unrpyc kunnen .rpyc-bestanden decompileren naar leesbare .rpy-scripts.
Een typisch project splitst het verhaal en de logica over vele .rpy-bestanden - de ene kan personages en variabelen definiëren, een andere beheert menuschermen, en weer een andere bevat het hoofdverhaal. De Ren'Py SDK behandelt alle .rpy-bestanden in een projectmap als één enkel programma en compileert en koppelt ze bij het opstarten.
Beveiliging & veiligheid
RISICO: MEDIUMEen .rpy is platte tekst en veilig om te openen in een editor, maar het bevat uitvoerbare logica voor de Ren'Py-engine en kan volledige Python bevatten binnen python:-blokken - dus het uitvoeren van een onbetrouwbaar Ren'Py-spel of mod kan willekeurige code uitvoeren op je machine. Lees scripts van onbekende mods voordat je ze aan een spel toevoegt, en download spellen/mods van betrouwbare bronnen. Het bewerken van de dialoogtekst zelf is ongevaarlijk; het plakken van onbekende python:-blokken niet.
Formaatdetails
in een notendop- Twisted Resource (Python webscript) - Verouderde .rpy gebruikt door de Twisted/twistd webserver als een Python-script dat een resource-object retourneert - niet gerelateerd aan Ren'Py.
- RPGMaker / diverse generieke Python-scripts - Sommige tools labelden historisch gezien elke opgeslagen Python-broncode als .rpy; tegenwoordig domineert de Ren'Py-betekenis.
Programma's die RPY-bestanden openen
Technische details
diepe specificaties| Bestandscategorie | Bronscript in platte tekst - Ren'Py's domeinspecifieke taal voor visual novels |
| Codering | UTF-8 platte tekst; geen binaire magic bytes of byte-order mark vereist |
| MIME-type | text/plain (ook herkend als text/x-python door generieke tools) |
| Gecompileerde vorm | Elke .rpy wordt bij het opstarten door de Ren'Py-engine gecompileerd naar een binair .rpyc-bestand |
| Inspringregel | Inspringing met witruimte in Python-stijl definieert alle codeblokken |
| Kern-statementtypes | label, jump, call, menu, scene, show, hide, play, define, init |
| Ingebedde Python | Volledige Python-code toegankelijk via python:-blokken en het $-voorvoegsel voor statements op één regel |
| Python-versie | Ren'Py 6 en 7 gebruiken Python 2-syntaxis; Ren'Py 8 en later vereisen Python 3-syntaxis |
| Typische bestandsgrootte | 1 KB tot ~500 KB; een volledig spelproject beslaat meerdere .rpy-bestanden |
| Distributiemethode | Spellen leveren gecompileerde .rpyc-bestanden verpakt in .rpa-archieven - niet de .rpy-broncode |
| Platformondersteuning | Ontwikkeld op Windows, macOS, Linux; spellen kunnen ook worden gebouwd en uitgevoerd op Android en iOS |
| Projectcompilatie | Alle .rpy-bestanden in de gamemap worden bij de start gecompileerd en gekoppeld als één programma |
| Foutrapportage syntaxis | Ren'Py SDK toont syntaxis- en logicafouten bij het opstarten met bestandsnaam en regelnummer |
| Decompilatie | De community-tool unrpyc kan .rpy-broncode reconstrueren uit gecompileerde .rpyc-bytecode |
| Karakterondersteuning | Volledige Unicode via UTF-8 voor meertalige dialoogteksten en namen van identifiers |
| Uitgebracht | Ren'Py engine, first release 2004 |
| Laatste versie | Ren'Py 8.x (Python 3 based); script syntax tracks the engine release |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.renpy.org |
RPY conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RPY-bestanden.