Ren'Py is a visual novel engine that is written using Python.
File Formats
It is highly recommended that you use the following file formats:
- WebP for image assets
- Opus/WebM for audio assets
- VP8/Opus/Matroska for video assets
- RPAv2 for game archives
If these formats are not used, there is a possibility of the program working incorrectly or performance being impacted.
Free tools such as FFmpeg, cwebp, and ImageMagick are available to convert file formats.
rpatool can be used to create and merge RPA files, and also convert to RPAv2 format.
The file format can be changed without changing the file extension, so no script (rpy file) changes are needed.
The file example.png can be in the WebP file format without changing the filename to example.webp.
RomFS Integration
To integrate the game into one single nro file, place game files in a folder named romfs, and build as described in the "Building" section.
NOTE: If you do not compile the py and rpy files to pyo and rpyc respectively by running the game at least once on a read-write file system, the loading time required until the title screen is seen will be increased.
The py_compile module can be used to compile py files to pyo.
Example usage of this module:
find . -name \*.py -exec python -O -m py_compile {} \;
File system layout
The following files or folders are required to be in the same directory as the .nro or in RomFS:
- lib.zip - contains the Python stdlib, Ren'Py modules, pygame_sdl2 modules, and libnx binding modules.
- renpy - contains the common directory used by Ren'Py.
- renpy.py - startup script for Ren'Py.
- game - contains the game files. This is where you place the game.
libnx bindings
Ren'Py for Nintendo Switch supports mostly complete libnx bindings.
The bindings are generated by SWIG.
by uyjulian.
Que novedades incluye la versión 1.7
Released
- Out of memory workaround removed (making it more likely that you can rollback, save, and restart the game)
- Overclock removed
- Better error messages with error applet
- Mostly complete libnx bindings
- _socket, _hotshot, and imageop modules added
- pymalloc now allocates memory aligned to page boundary
- Show a helpful error message and quit when launched as applet
- Update to libnx 3.1.0
- Update to CPython 2.7.18
- Python libraries are now imported from zip file using zipimport
- Integrated extra libraries into main distribution
- Update to switch-sdl2 2.0.12