Releasing Ren'Py Games PyTom Updated: 2005-11-21 Okay, so you've finished creating a game using Ren'Py, and now you want to release it. Congratulations! This tech note will help you to package up your creation and send it into the world. The first thing to do is to check to see if you have the latest version of Ren'Py. New versions of Ren'Py fix bugs in old versions. If you're not using the latest version, your game may have known bugs in it. At the very least, ask about what was fixed between versions if you insist on using an older version. The next thing to do is to ensure that you actually have a finished and working game. Did you remember to run add_from? The easiest way to do this is to change into the tools/ directory, and run game_add_from.bat. That tool will add from clauses to all of the call statements in your program, ensuring that everything continues working after a game is reloaded. It will also create .bak files for each of the .rpy files it can find, so you'll probably want to delete those by hand once you've tested the changes. You'll also want to run game_lint.bat, also found in the tools/ directory. This is a tool that will check your Ren'Py game for subtle bugs. If it reports any bugs, you should fix them, and run lint.bat again until they're all fixed. If you've changed the name of the .exe, you'll probably need to edit lint.bat so that it runs. In general, you don't want to release a game with lint errors, or at least a good excuse for said errors. Many of the problems that are found this way are fairly subtle, and only manifest themselves on some of the platforms Ren'Py supports. If you're not totally sure that everything is A-OK, you can send me the game and I will check it over in confidence. If there's enough demand, I'll put together a tool that will elide the game text, so just the code and structure is left. I also ask that you add a Ren'Py credit into your game. I tend to use the line "Powered by Ren'Py.", but feel free to word it however you want. Another thing to do is to change the icon of the exe file. The best way to do this is to create a .ico file containing 48x48, 32x32, and 16x16 versions of your icon, and then to use XN Resource Explorer to go in and change the icon of the file. Just delete off the existing icon, and then do a command like "Import image resource..." (going from memory here) to add in the new icon. Save the modified executable. Now, we have everything that goes into the final distribution. In fact, we have more than enough, as Ren'Py ships with a number of tools that aren't needed to run a game. So we need to decide which files to keep in various circumstances. There are basically three different kinds of distributions you can make. The first is a windows executable distribution (abbreviated windows), that allows the user to run your game without having to download any additional software. The second kind is a python-dependent (python) distribution, which can run on any computer that supports python 2.3 and pygame. The final type of distribution that is supported is a cross platform distribution, which can run both on windows and on any computer that supports python. To make a windows distribution, you need the files that I'll mark windows or all. To make a python distribution, you need the files that I'll mark python and all. And to make a cross-platform distribution, you'll need all the indicated files. Anyway, the list of files that you may concievably want to include as part of your game are: common/ [all] - A directory containing common script files that help Ren'Py work. lib/ [windows] - A directory containing the code and libraries needed to run Ren'Py on windows. game/ [all] - The game directory containing your scripts and data. You probably do not want to distribute the saves/ directory inside here, so remove that. Be sure not to distribute game/saves/persistent, and be warned that it is recreated each time Ren'Py is run. run_game.exe [windows] - The game executable that the user runs. moonlight.py [python] - The main python script that runs your game. python23.dll [windows] - The DLL containing the python interpreter. It may change versions in the future, in which case the numbers will change. renpy/ [python] - Contains the python source code for Ren'Py. module/ [python] - Contains the source code for the _renpy module. LICENSE.txt [all] - The license for Ren'Py. You may want to integrate this into the license for your game as a whole. README_RENPY.txt [all] - Instructions for running a Ren'Py game. You may want to integrate this into your own README. Anyway, once you have all of the files, you can zip them up (perhaps adding in things like README and license files) and post them on the web. You've just released a Ren'Py game! For the record, the following are the files distributed with Ren'Py that should not be distributed with a game. CHANGELOG.txt - The Ren'Py changelog. console.exe - A console/debugging version of Ren'Py. extras - Scripts that give additional features. Uninteresting as a whole, as to be used the scripts must be in the game/ directory. scripts - Example scripts. tools - Development tools. game/saves - This is the directory containing the savegame info. It should be deleted before distribution, but please note that running Ren'Py recreates it automatically. It contains a file named persistent that stores the list of seen lines. Shipping a persistent file may lead to the option to skip seen text skipping text not seen by the end-user.