Move snoot game to latest renpy version #184

Closed
opened 2022-10-14 21:38:02 +00:00 by MapAnon · 10 comments
Member

Since we have some resurgent popularity, this might be a good time to do a partial revision of the game's code, provided there's support to do this.

Snoot Game uses version 7.4.6, the latest version is 7.5.3 or 8.0.3 depending on what python version you want (it doesn't matter, 8.0.3 is our winner).

This is not a trivial task as there's many hacky things I did while working under the frustrating bug infested 7.4.6 that would not work on later versions, as well as most people's general inexperience with renpy that might require refactoring the code. They are including but not limited to:

  • Replacing instances of "pause 0" with "with None" to seperate sprite actions. "pause 0" now gurantee's a single frame delay instead, and this might break functionality if not changed. This applies to "pause 0.0001" statements and variations of that. Similarly, "pause 0" could be used with other frame perfect visuals, such as Naser's locker slamming.
  • Replacing instances of "$ renpy.music.set_volume()" that have smaller fades than .69 seconds with the "fadeout" statement, as renpy now supports fades with "fadeout" smaller than that time. Fixes audio bugs in the process.
  • Replacing the code that synced audio streams in the Ending 1 final sequence and Naomi's Tribulations III with existing functions specifically made for that, instead of playing streams at the same time.
  • Using 3D transforms for certain moments in the game such as the Ending 1 rooftop and the stare between Trish and Ripley in Naomi's Tribulations I, instead of doing that shit manually with 2d transforms.
  • Enabling sprite interpolation for certain moments/actions so they're less choppy. Unfortunately this can't be left on as the inputs for sprite positioning puts it on non-pixel perfect positions, and they get smeared in-game as a result if they're not moving.

There is likely a host of other renpyisms I can't recall, so be prepared to go through the entire game.

One thing we should do first of all however, is try to extract the spanish fan translation's strings into a translation file that renpy likes and be more efficent to implement by using Renpy's own tools. I believe that may be possible to do, though I'm not totally sure. However, the more this codebase gets edited, the more it strays away from the fan translation's codebase, thus possibly harder to manage. We do not have to implement it right away, but when we do it'll be much easier to manage if it's in a format that renpy officially supports.

Since we have some resurgent popularity, this might be a good time to do a partial revision of the game's code, provided there's support to do this. Snoot Game uses version 7.4.6, the latest version is 7.5.3 or 8.0.3 depending on what python version you want (it doesn't matter, 8.0.3 is our winner). This is not a trivial task as there's many hacky things I did while working under the frustrating bug infested 7.4.6 that would not work on later versions, as well as most people's general inexperience with renpy that might require refactoring the code. They are including but not limited to: * Replacing instances of "pause 0" with "with None" to seperate sprite actions. "pause 0" now gurantee's a single frame delay instead, and this might break functionality if not changed. This applies to "pause 0.0001" statements and variations of that. Similarly, "pause 0" could be used with other frame perfect visuals, such as Naser's locker slamming. * Replacing instances of "$ renpy.music.set_volume()" that have smaller fades than .69 seconds with the "fadeout" statement, as renpy now supports fades with "fadeout" smaller than that time. Fixes audio bugs in the process. * Replacing the code that synced audio streams in the Ending 1 final sequence and Naomi's Tribulations III with existing functions specifically made for that, instead of playing streams at the same time. * Using 3D transforms for certain moments in the game such as the Ending 1 rooftop and the stare between Trish and Ripley in Naomi's Tribulations I, instead of doing that shit manually with 2d transforms. * Enabling sprite interpolation for certain moments/actions so they're less choppy. Unfortunately this can't be left on as the inputs for sprite positioning puts it on non-pixel perfect positions, and they get smeared in-game as a result if they're not moving. There is likely a host of other renpyisms I can't recall, so be prepared to go through the entire game. One thing we should do first of all however, is try to extract the spanish fan translation's strings into a translation file that renpy likes and be more efficent to implement by using Renpy's own tools. I believe that may be possible to do, though I'm not totally sure. However, the more this codebase gets edited, the more it strays away from the fan translation's codebase, thus possibly harder to manage. We do not have to implement it right away, but when we do it'll be much easier to manage if it's in a format that renpy officially supports.
Contributor

One thing I'd like to add is that from renpy 7.4.9 onwards renpy android supports loading assets from outside the APK, which means that Android builds finally get mod support.

One thing I'd like to add is that from renpy 7.4.9 onwards renpy android supports loading assets from outside the APK, which means that Android builds finally get mod support.
Contributor

Also, renpy 8.0 onwards drops 32 bit support, I don't know how many people will be affected by this but still, it's something to take into account.

Also, renpy 8.0 onwards drops 32 bit support, I don't know how many people will be affected by this but still, it's something to take into account.
Author
Member

We could have some 7.x builds as easily as we have 8.x builds, provided that the custom python is not affected by the version change (If it is, there's not a lot to tweak). Eventually the 7.x branch will be deprecated, so focusing on 8.x is good for maintainability.

We could have some 7.x builds as easily as we have 8.x builds, provided that the custom python is not affected by the version change (If it is, there's not a lot to tweak). Eventually the 7.x branch will be deprecated, so focusing on 8.x is good for maintainability.

One thing we should do first of all however, is try to extract the spanish fan translation's strings into a translation file that renpy likes and be more efficent to implement by using Renpy's own tools.

Hi, my name is cibermesias, developer. I recently joined the Spanish translating team and I'm already working on that, on moving the Spanish strings into the correct files so we can later push a proper commit. I also added a language selector so our translation won't mess with your work and maybe more people around the world can add their locale files.

> One thing we should do first of all however, is try to extract the spanish fan translation's strings into a translation file that renpy likes and be more efficent to implement by using Renpy's own tools. Hi, my name is cibermesias, developer. I recently joined the Spanish translating team and I'm already working on that, on moving the Spanish strings into the correct files so we can later push a proper commit. I also added a language selector so our translation won't mess with your work and maybe more people around the world can add their locale files.
Contributor

The more this codebase gets edited, the more it strays away from the fan translation's codebase, thus possibly harder to manage

You're thinking with labels, using translation files this shouldn't be a problem (As long as new lines aren't added/removed)

>The more this codebase gets edited, the more it strays away from the fan translation's codebase, thus possibly harder to manage You're thinking with labels, using translation files this shouldn't be a problem (As long as new lines aren't added/removed)
Owner

Also, renpy 8.0 onwards drops 32 bit support, I don't know how many people will be affected by this but still, it's something to take into account.

I don't think dropping 32-bit is such a big deal. To my knowledge, most of the world can get a relatively cheap 64-bit computer in the modern era, I'm not too worried about losing out on that for desktop.

However, lack of 32-bit on ARM may pose a problem for mobile platforms if you happen to have a potato (relatively common). Does renpy drop 32-bit only for desktop computers or did they drop it for smartphones too?

> Also, renpy 8.0 onwards drops 32 bit support, I don't know how many people will be affected by this but still, it's something to take into account. I don't think dropping 32-bit is such a big deal. To my knowledge, most of the world can get a relatively cheap 64-bit computer in the modern era, I'm not too worried about losing out on that for desktop. However, lack of 32-bit on ARM may pose a problem for mobile platforms if you happen to have a potato (relatively common). Does renpy drop 32-bit only for desktop computers or did they drop it for smartphones too?
MichaelYick added the
enhancement
High Priority
Meta
labels 2022-10-16 23:50:36 +00:00
Contributor

However, lack of 32-bit on ARM may pose a problem for mobile platforms if you happen to have a potato (relatively common). Does renpy drop 32-bit only for desktop computers or did they drop it for smartphones too?

According to the changelog only these platforms are affected.

32-bit x86 Windows (i686)
32-bit x86 Linux (i686)
> However, lack of 32-bit on ARM may pose a problem for mobile platforms if you happen to have a potato (relatively common). Does renpy drop 32-bit only for desktop computers or did they drop it for smartphones too? According to the [changelog](https://www.renpy.org/doc/html/changelog.html) only these platforms are affected. ``` 32-bit x86 Windows (i686) 32-bit x86 Linux (i686) ```
Owner

neat, then it should be fine then.

neat, then it should be fine then.
Contributor

I have confirmed that bumping the renpy version does allow for mods in android. You just have to place the mod's folder in /android/data/cavemanon.snootgame/game/
Do note tho that when you install the game, the folder doesn't exist, so we'll have to make it when it first boots up.

I have confirmed that bumping the renpy version does allow for mods in android. You just have to place the mod's folder in /android/data/cavemanon.snootgame/**game**/ Do note tho that when you install the game, the folder doesn't exist, so we'll have to make it when it first boots up.
Contributor

Running the game on 8.0.3 makes the exit button on Fang's phone not appear.

Edit: On 7.5.3 (Basically 8.0.3 but with python2) it works, so it probably has something to do with floats/integers.

Running the game on 8.0.3 makes the exit button on Fang's phone not appear. ![](https://git.snootgame.xyz/attachments/89711ed3-52d4-4d6c-ae7c-6ddc5854c847) Edit: On 7.5.3 (Basically 8.0.3 but with python2) it works, so it probably has something to do with floats/integers.
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Cavemanon/SnootGame#184
No description provided.