Hvad er RPY-filformatet?
.rpy er en scriptfil, der bruges af Ren'Py-motoren til visuelle romaner. Selvom formatets filtype minder om dets .py rødder, er en .rpy-fil ikke en almindelig Python-kilde: den er skrevet i Ren'Pys eget domænespecifikke sprog, som lægger højniveau-fortælleinstruktioner - karakterdialog, scenedirektiver, forgrenede menuer og betinget historieflow - oven på Pythons velkendte syntaksregler. .rpy-filer kan indeholde kode skrevet direkte i Python sammen med Ren'Py-specifikke erklæringer.
.rpy er en almindelig tekstfil kodet i UTF-8 og kan åbnes og redigeres i enhver teksteditor. Forfattere, der redigerer .rpy-scripts, skal være omhyggelige med indrykning, da Ren'Py bruger indrykning til at definere kodeblokke, præcis som Python gør. Til avanceret logik kan scripts indlejre rå Python i python:-blokke eller via $-præfikset på en enkelt linje, hvilket giver forfattere adgang til Pythons fulde standardbibliotek i et Ren'Py-projekt.
Når Ren'Py starter et spil, kompilerer det hver .rpy-kildefil til en binær .rpyc cache-fil for hurtigere indlæsning. Distribuerede spil leveres typisk kun med de kompilerede .rpyc-filer, ofte pakket i et .rpa arkiv, så spillere normalt ikke ser .rpy-kilden. Community-værktøjer som unrpyc kan dekompilere .rpyc-filer tilbage til læsbare .rpy-scripts.
Et typisk projekt opdeler sin historie og logik over mange .rpy-filer - én kan definere karakterer og variabler, en anden administrere menuskærme, og en tredje indeholde selve hovedfortællingen. Ren'Py SDK behandler alle .rpy-filer i en projektmappe som ét enkelt program og kompilerer og linker dem sammen ved opstart.
Sikkerhed og tryghed
RISIKO: MEDIUMEn .rpy er almindelig tekst og sikker at åbne i en editor, men det er eksekverbar logik til Ren'Py-motoren og kan indeholde fuld Python inde i python:-blokke - så kørsel af et upålideligt Ren'Py-spil/mod kan eksekvere vilkårlig kode på din maskine. Læs scripts fra ukendte mods, før du tilføjer dem til et spil, og hent spil/mods fra pålidelige kilder. Redigering af selve dialogteksten er harmløs; indsættelse af ukendte python:-blokke er ikke.
Formatdetaljer
kort fortalt- Twisted Resource (Python webscript) - Forældet .rpy brugt af Twisted/twistd-webserveren som et Python-script, der returnerer et ressourceobjekt - urelateret til Ren'Py.
- RPGMaker / diverse generiske Python-scripts - Nogle værktøjer har historisk set navngivet enhver gemt Python-kilde som .rpy; i dag dominerer Ren'Py-betydningen.
Programmer der åbner RPY-filer
Tekniske detaljer
dyb specifikation| Filkategori | Kildescript i almindelig tekst - Ren'Pys domænespecifikke sprog til visuelle romaner |
| Kodning | UTF-8 almindelig tekst; ingen binære magic bytes eller byte-order mark påkrævet |
| MIME-type | text/plain (genkendes også som text/x-python af generiske værktøjer) |
| Kompileret form | Hver .rpy kompileres til en binær .rpyc-fil af Ren'Py-motoren ved opstart |
| Indrykningsregel | Betydningsfuld indrykning med blanktegn i Python-stil definerer alle kodeblokke |
| Primære erklæringstyper | label, jump, call, menu, scene, show, hide, play, define, init |
| Indlejret Python | Fuld Python-kode tilgængelig via python:-blokke og $-præfikset til enkeltlinjer |
| Python-version | Ren'Py 6 og 7 bruger Python 2-syntaks; Ren'Py 8 og nyere kræver Python 3-syntaks |
| Typisk filstørrelse | 1 KB til ca. 500 KB; et fuldt spilprojekt spænder over flere .rpy-filer |
| Distributionsmetode | Spil leveres med kompilerede .rpyc-filer pakket i .rpa-arkiver - ikke .rpy-kilden |
| Platformunderstøttelse | Udvikles på Windows, macOS, Linux; spil kan også bygges og køres på Android og iOS |
| Projektkompilering | Alle .rpy-filer i spilmappen kompileres og linkes som et enkelt program ved start |
| Rapportering af syntaksfejl | Ren'Py SDK viser syntaks- og logikfejl ved opstart med filnavn og linjenummer |
| Dekompilering | Community-værktøjet unrpyc kan rekonstruere .rpy-kilde fra kompileret .rpyc-bytecode |
| Karakterunderstøttelse | Fuld Unicode via UTF-8 til flersproget dialogtekst og identifikatornavne |
| Udgivet | Ren'Py engine, first release 2004 |
| Seneste version | Ren'Py 8.x (Python 3 based); script syntax tracks the engine release |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.renpy.org |
RPY-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om RPY-filer.