Releasing Ren'Py Games PyTom Updated: 2005-05-28 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? 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. You'll also want to run the lint.bat tool. 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. 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 PE 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. If you haven't done so already, you may want to rename the executable. This will also allow you to rename the game directory. In the case of moonlight walks, the executable was named moonlight.exe and the game directory was moonlight. The python file run_game.py was renamed moonlight.py. I'll use the name moonlight as a placeholder for the name of your game throughout the rest of this document. 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. moonlight/ [all] - The game directory containing your scripts and data. You probably do not want to distribute the saves/ directory inside here, so remove that first. moonlight.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. If you're making a python or cross-platform distribution, remember that non-windows platforms have case-sensitive filenames. If you need help testing, I can help with that. (This caveat also goes for data files, like images and music.) 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!