Vad är filformatet RPY?
.rpy är en skriptfil som används av motorn Ren'Py för visuella romaner. Även om formatets filtillägg ekar dess .py-rötter, är en .rpy-fil inte en vanlig Python-källkod: den är skriven i Ren'Pys eget domänspecifika språk, som lägger högnivåinstruktioner för berättande - karaktärsdialog, scendirektiv, förgrenade menyer och villkorligt berättelseflöde - ovanpå Pythons bekanta syntaxregler. .rpy-filer kan innehålla kod skriven i Python direkt tillsammans med Ren'Py-specifika instruktioner.
.rpy är en vanlig textfil kodad i UTF-8 och kan öppnas och redigeras i valfri textredigerare. Författare som redigerar .rpy-skript måste vara noggranna med indrag (indentering), eftersom Ren'Py använder indrag för att definiera kodblock, precis som Python gör. För avancerad logik kan skript bädda in rå Python inuti python:-block eller via prefixet $ för enstaka rader, vilket ger författare tillgång till hela Pythons standardbibliotek inom ett Ren'Py-projekt.
När Ren'Py startar ett spel kompileras varje .rpy-källfil till en binär .rpyc-cachefil för snabbare laddning. Distribuerade spel levereras vanligtvis med endast de kompilerade .rpyc-filerna, ofta packade inuti ett .rpa-arkiv, så spelare ser normalt inte .rpy-källkoden. Community-verktyg som unrpyc kan dekompilera .rpyc-filer tillbaka till läsbara .rpy-skript.
Ett typiskt projekt delar upp sin berättelse och logik över många .rpy-filer - en kan definiera karaktärer och variabler, en annan hantera menyskärmar och en tredje innehålla huvudberättelsen. Ren'Py SDK behandlar alla .rpy-filer i en projektkatalog som ett enda program och kompilerar och länkar dem samman vid uppstart.
Säkerhet & trygghet
RISK: MEDIUMEn .rpy är klartext och säker att öppna i en redigerare, men det är exekverbar logik för motorn Ren'Py och kan innehålla fullständig Python inuti python:-block - så att köra ett okänt Ren'Py-spel eller mod kan exekvera godtycklig kod på din maskin. Läs skript från okända moddar innan du lägger till dem i ett spel, och hämta spel/moddar från pålitliga källor. Att redigera själva dialogtexten är ofarligt; att klistra in okända python:-block är det inte.
Formatdetaljer
i ett nötskal- Twisted Resource (Python webbskript) - Föråldrad .rpy som används av webbservern Twisted/twistd som ett Python-skript som returnerar ett resursobjekt - orelaterat till Ren'Py.
- RPGMaker / diverse generiska Python-skript - Vissa verktyg har historiskt märkt sparad Python-källkod som .rpy; idag dominerar Ren'Py-betydelsen.
Program som öppnar RPY-filer
Tekniska detaljer
djup specifikation| Filkategori | Källkodsskript i klartext - Ren'Pys domänspecifika språk för visuella romaner |
| Kodning | UTF-8 klartext; inga binära magic bytes eller byte-order mark krävs |
| MIME-typ | text/plain (känns även igen som text/x-python av generiska verktyg) |
| Kompilerad form | Varje .rpy kompileras till en binär .rpyc-fil av motorn Ren'Py vid uppstart |
| Indragningsregel | Signifikant indragning med blanksteg i Python-stil definierar alla kodblock |
| Kärninstruktionstyper | label, jump, call, menu, scene, show, hide, play, define, init |
| Inbäddad Python | Fullständig Python-kod tillgänglig via python:-block och prefixet $ för enstaka rader |
| Python-version | Ren'Py 6 och 7 använder Python 2-syntax; Ren'Py 8 och senare kräver Python 3-syntax |
| Typisk filstorlek | 1 KB till ~500 KB; ett helt spelprojekt sträcker sig över flera .rpy-filer |
| Distributionsmetod | Spel levereras med kompilerade .rpyc-filer packade i .rpa-arkiv - inte .rpy-källkoden |
| Plattformssupport | Skapas på Windows, macOS, Linux; spel byggs och körs även på Android och iOS |
| Projektkompilering | Alla .rpy-filer i spelkatalogen kompileras och länkas som ett enda program vid start |
| Syntaxfelrapportering | Ren'Py SDK visar syntax- och logikfel vid start med filnamn och radnummer |
| Dekompilering | Community-verktyget unrpyc kan rekonstruera .rpy-källkod från kompilerad .rpyc-bytecode |
| Teckenstöd | Fullständig Unicode via UTF-8 för flerspråkig dialogtext och identifierarnamn |
| Släppt | Ren'Py engine, first release 2004 |
| Senaste version | Ren'Py 8.x (Python 3 based); script syntax tracks the engine release |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.renpy.org |
RPY-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RPY-filer.