- Jun 10, 2017
- 10,957
- 16,191
It's a big news for Ren'Py authors, but it come with a big warning, reason for this post.
The version 8.0 see Ren'Py pass from the old, and now unsupported, Python 2.7, to the recent and supported Python 3.9. This imply a lot of subtle changes in all Python parts, as well as in Ren'Py ones.
The most obvious one, divisions of integers will not anymore return an integer. It can seem futile, but it already broke at least one game in the past, when the branch 7.x slowly introduced the port to Python 3.x. The game used a division to decide what image to display, assuming to have file names like "base0.jpg" and other "base2.jpg". Except that, the result now being float values, it got names like "base0.123.jpg" and others "base2.5637.jpg"... Images that obviously wasn't present.
By themselves, those changes are nothing impossible to deal with. Especially if you use really few Python. But they can be really annoying, especially when the player who report an error don't know how to explain what happen. You'll end finding it, and fixing it, possibly with some help, but you'll loose time doing so.
Therefore, I want to remember you that the branch 8.x of Ren'Py do not come alone. In parallel, PyTom continue the branch 7.x. The version 7.5 have been released at the same time that the version 8.0. It have all the novelties and fixes that come with the version 8.x, but is built around Python 2.7 as usual.
This permit you to continue to devel your game at your speed, while taking benefit from the fixes and additions, without having to care yet about porting your code to Python 3.9. So, do not switch to the branch 8.x, unless you're starting a new game. Python 2.7 not being supported anymore is not an issue, and do not lower the security of your game (and by extension of your players).
This being said, I remind that since the version 7.3 (or is it the 7.4, I have a sudden doubt), Ren'Py added an instruction,
I guess that the branch 7.x will continue for one or two years, so take your time, and stay on this branch as long as you can, or need, in order to not unknowingly break your game.
The version 8.0 see Ren'Py pass from the old, and now unsupported, Python 2.7, to the recent and supported Python 3.9. This imply a lot of subtle changes in all Python parts, as well as in Ren'Py ones.
The most obvious one, divisions of integers will not anymore return an integer. It can seem futile, but it already broke at least one game in the past, when the branch 7.x slowly introduced the port to Python 3.x. The game used a division to decide what image to display, assuming to have file names like "base0.jpg" and other "base2.jpg". Except that, the result now being float values, it got names like "base0.123.jpg" and others "base2.5637.jpg"... Images that obviously wasn't present.
By themselves, those changes are nothing impossible to deal with. Especially if you use really few Python. But they can be really annoying, especially when the player who report an error don't know how to explain what happen. You'll end finding it, and fixing it, possibly with some help, but you'll loose time doing so.
Therefore, I want to remember you that the branch 8.x of Ren'Py do not come alone. In parallel, PyTom continue the branch 7.x. The version 7.5 have been released at the same time that the version 8.0. It have all the novelties and fixes that come with the version 8.x, but is built around Python 2.7 as usual.
This permit you to continue to devel your game at your speed, while taking benefit from the fixes and additions, without having to care yet about porting your code to Python 3.9. So, do not switch to the branch 8.x, unless you're starting a new game. Python 2.7 not being supported anymore is not an issue, and do not lower the security of your game (and by extension of your players).
This being said, I remind that since the version 7.3 (or is it the 7.4, I have a sudden doubt), Ren'Py added an instruction,
rpy python 3
. Every rpy file starting by this line will be proceeded as if Ren'Py was using Python 3.9. This permit you to slowly, file by file, port your code to the future.I guess that the branch 7.x will continue for one or two years, so take your time, and stay on this branch as long as you can, or need, in order to not unknowingly break your game.