Best butt? Link to butts --> https://attachments.f95zone.to/2024/02/3342779_0.png

  • Kaylee

    Votes: 64 11.7%
  • SAndrA

    Votes: 107 19.6%
  • Emily

    Votes: 74 13.6%
  • Ashe

    Votes: 240 44.0%
  • Elysra

    Votes: 35 6.4%
  • Ves

    Votes: 26 4.8%

  • Total voters
    546
  • Poll closed .

POVREVIEW

Newbie
May 14, 2018
51
31
I didnt think it was possible to have a fap and fun game but my god this is fantastic

It remind me of FINAL SPACE...... the humour is spot on well done mate loving the game
 
  • Red Heart
Reactions: Classy Lemon

Classy Lemon

Active Member
Game Developer
Jun 4, 2021
958
6,527
Lemon, sir, I loaded S2 into Ren'Py 7.4.10.2178 and recompiled. Reset the persistence and did a fast run through S1. Loading S2 did not generate the "do you trust this save" warning and the lore in the codex was fine. So, it does seem that there's an issue with having changed Ren'Py versions. Sorry for the bad news, but at least we know the cause and cure.

I have not tested anything in a subsequent S1 run to see whether that causes problems.

Cheers!
So what would you say my options are?
 

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
So what would you say my options are?
At this point, I'm uncertain. The current situation is that you've essentially got one big game that's split across two different Ren'Py versions. If you leave it as is, players moving to S2 will lose their S1 saves and that compromises their replays. If you repackage S1 to use the newer Ren'Py version that S2 uses, it's likely to also be that S1 users lose their existing saves, but new ones would work fine. And, finally, if you change S2 back to the old Ren'Py version that S1 uses, S2 saves will be broken.

There may be a way to fix the saves, but it's beyond my current knowledge. I know other devs, such as Droosk, have managed to transition from one version to another without breaking saves, but I do not know what steps were taken.
 

Tremonia

Queen Lydia's bitch
Donor
Jun 14, 2020
1,996
6,178
There may be a way to fix the saves, but it's beyond my current knowledge. I know other devs, such as Droosk, have managed to transition from one version to another without breaking saves, but I do not know what steps were taken.
The "easiest" way is to create a transfer tool in S1, with Python for example. Instead of saving it via Ren'Py you create an own save format where you save all the variables of the game in the state the player set at the end of the game. In S2 you use an import tool which reads out the variables and sets them in Ren'Py. I'm sure there're some guys on GitHub who already did that and made the code available.
 
  • Like
Reactions: TREXrg

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
The "easiest" way is to create a transfer tool in S1, with Python for example. Instead of saving it via Ren'Py you create an own save format where you save all the variables of the game in the state the player set at the end of the game. In S2 you use an import tool which reads out the variables and sets them in Ren'Py. I'm sure there're some guys on GitHub who already did that and made the code available.
EDITED ANSWER: The task is to not burn existing saves. I think the easiest route here is just to upgrade Ren'Py on Season 1 and put up with the pain of losing persistence. Mostly, I think the general rule is that you just don't change Ren'Py versions mid-project unless there are really serious reasons for doing so.
 
Last edited:

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
So, I just made a build of 0.7 (AKA Season 1) on Ren'Py 7.6.1, which is the same as the version of Ren'Py used for Season 2. Starting it auto-nukes all of the Season 1 persistence that was created with the 7.4.10 build. The lore and achievements are all scrubbed in the same fashion as happens when starting the Season 2 game. At the most basic, then, this is a matter of Ren'Py versions really, really needing to be the same for all Projekt: Passion seasons, period.

My advice, which is worth what you've paid for it :ROFLMAO:, would be to make a new S1 build with the same newer version as S2 uses. S1 saves will still work in both S1 and S2 on the new Ren'Py. The achievements and lore will be lost in S1, but replays will rebuild those and persistence will be retained between S1 and S2 from there onwards.

People will inevitably complain, but making a new S1 build has better long-term benefits. Upgrading Ren'Py on S1 will preserve the gaming experience for new players discovering PP for the first time and starting with S1. So, I think that's the wise move for keeping all those newcomers to the title happy on Steam. That's where the big money is.
 
Last edited:

SerHawkes

Engaged Member
Oct 29, 2017
3,011
14,043
So who is the Milf, or will be the Milf, to celebrate on Milfs Day today?

Pretty obvious it has to be Ves. Demon Mommy and all.

-Serious questions to be had.-
 
  • Hey there
Reactions: Darkdevil66

Classy Lemon

Active Member
Game Developer
Jun 4, 2021
958
6,527
So, I just made a build of 0.7 (AKA Season 1) on Ren'Py 7.6.1, which is the same as the version of Ren'Py used for Season 2. Starting it auto-nukes all of the Season 1 persistence that was created with the 7.4.10 build. The lore and achievements are all scrubbed in the same fashion as happens when starting the Season 2 game. At the most basic, then, this is a matter of Ren'Py versions really, really needing to be the same for all Projekt: Passion seasons, period.

My advice, which is worth what you've paid for it :ROFLMAO:, would be to make a new S1 build with the same newer version as S2 uses. S1 saves will still work in both S1 and S2 on the new Ren'Py. The achievements and lore will be lost in S1, but replays will rebuild those and persistence will be retained between S1 and S2 from there onwards.

People will inevitably complain, but making a new S1 build has better long-term benefits. Upgrading Ren'Py on S1 will preserve the gaming experience for new players discovering PP for the first time and starting with S1. So, I think that's the wise move for keeping all those newcomers to the title happy on Steam. That's where the big money is.
What if Season 2 was downgraded to 7.4, is that a possibility
 

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
What if Season 2 was downgraded to 7.4, is that a possibility
S2 itself appears to work absolutely fine under 7.4.10. I did not test whether S2 saves made under 7.6.1 would work on S2 under 7.4.10. There is a risk that S2 saves from the newer Ren'Py might not work if S2 is back-ported.

EDIT TO ADD: I'll check this scenario. I'm curious.
 
  • Red Heart
Reactions: Classy Lemon

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
Yep. S2 saves made on the newer Ren'Py are hopelessly broken:

Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_file.rpy", line 462, in __call__
    renpy.load(fn)
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/_layout/screen_load_save.rpym", line 35, in script
    $ ui.interact()
  File "/Applications/renpy-7.4.10-sdk/renpy/ast.py", line 928, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2245, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_load_save.rpym", line 35, in <module>
    $ ui.interact()
  File "/Applications/renpy-7.4.10-sdk/renpy/ui.py", line 298, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/core.py", line 3315, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/core.py", line 4155, in interact_core
    rv = root_widget.event(ev, x, y, 0)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/transition.py", line 48, in event
    return self.new_widget.event(ev, x, y, st) # E1101
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/screen.py", line 727, in event
    rv = self.child.event(ev, x, y, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1313, in event
    rv = super(Window, self).event(ev, x, y, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 273, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 979, in event
    return handle_click(self.clicked)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 914, in handle_click
    rv = run(action)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 322, in run
    new_rv = run(i, *args, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 329, in run
    return action(*args, **kwargs)
  File "renpy/common/00action_file.rpy", line 462, in __call__
    renpy.load(fn)
  File "/Applications/renpy-7.4.10-sdk/renpy/loadsave.py", line 771, in load
    log.unfreeze(roots, label="_after_load")
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2200, in unfreeze
    self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2014, in rollback
    self.load_failed()
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 1932, in load_failed
    raise Exception("Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

Darwin-21.6.0-x86_64-i386-64bit
Ren'Py 7.4.10.2178
Projekt: Passion 0.11
Mon May 13 08:41:29 2024
 
  • Like
Reactions: Classy Lemon

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
I have done a full play through of S2 0.11 on Ren'Py 7.4.10.2178 and found no problems. I did play with QTEs disabled, though. So, my experience is not definitive.
 
  • Like
Reactions: Classy Lemon

Classy Lemon

Active Member
Game Developer
Jun 4, 2021
958
6,527
Yep. S2 saves made on the newer Ren'Py are hopelessly broken:

Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_file.rpy", line 462, in __call__
    renpy.load(fn)
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/_layout/screen_load_save.rpym", line 35, in script
    $ ui.interact()
  File "/Applications/renpy-7.4.10-sdk/renpy/ast.py", line 928, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2245, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_load_save.rpym", line 35, in <module>
    $ ui.interact()
  File "/Applications/renpy-7.4.10-sdk/renpy/ui.py", line 298, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/core.py", line 3315, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/core.py", line 4155, in interact_core
    rv = root_widget.event(ev, x, y, 0)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/transition.py", line 48, in event
    return self.new_widget.event(ev, x, y, st) # E1101
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/screen.py", line 727, in event
    rv = self.child.event(ev, x, y, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1313, in event
    rv = super(Window, self).event(ev, x, y, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 273, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/layout.py", line 1100, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 979, in event
    return handle_click(self.clicked)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 914, in handle_click
    rv = run(action)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 322, in run
    new_rv = run(i, *args, **kwargs)
  File "/Applications/renpy-7.4.10-sdk/renpy/display/behavior.py", line 329, in run
    return action(*args, **kwargs)
  File "renpy/common/00action_file.rpy", line 462, in __call__
    renpy.load(fn)
  File "/Applications/renpy-7.4.10-sdk/renpy/loadsave.py", line 771, in load
    log.unfreeze(roots, label="_after_load")
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2200, in unfreeze
    self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 2014, in rollback
    self.load_failed()
  File "/Applications/renpy-7.4.10-sdk/renpy/python.py", line 1932, in load_failed
    raise Exception("Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

Darwin-21.6.0-x86_64-i386-64bit
Ren'Py 7.4.10.2178
Projekt: Passion 0.11
Mon May 13 08:41:29 2024
I have done a full play through of S2 0.11 on Ren'Py 7.4.10.2178 and found no problems. I did play with QTEs disabled, though. So, my experience is not definitive.
So is downgrading to 7.4 a viable solution or no?
 
Last edited:
  • Thinking Face
Reactions: slick97

Classy Lemon

Active Member
Game Developer
Jun 4, 2021
958
6,527
Damn, I've been playing this game since last year and only now I realized that if you click the achievements, you get a bonus images or story XD ...dang it lmao

Anyway, damn, got a lot of background worthy images this update, top notch as always

View attachment 3627695
View attachment 3627697
View attachment 3628098
View attachment 3628091
View attachment 3627701
View attachment 3627711
View attachment 3627884
View attachment 3628064
View attachment 3628066
View attachment 3628069
View attachment 3628089
View attachment 3628071
View attachment 3628087
View attachment 3628073
View attachment 3628086
Bro that's like every render from the update. Glad you liked it so much!
Also, this is how I imagine Emily would do after developing those photos.

View attachment 3628101
This is so sweet :giggle:
 

608xperience

Newbie
Game Developer
Apr 18, 2023
64
75
So is downgrading to 7.4 a viable solution or no?
It appears to be so. There does not appear to be any problem with also going back to PP 0.7 and getting new achievements. With both 0.7 and 0.11 on 7.4.10, persistence and saves seem fine.

Which then leaves the question of which is better for the players:

Upgrade S1 Ren'Py:
This mostly just affects new players who are currently working through S1 because they still have persistence.​
Loses S1 progress/persistence/achievements, but all saves will work for both S1 and S2.​
All new play throughs of S1/S2 after upgrade will build persistence, achievements, etc. and be stable for both S1 and S2.​
Downgrade S2 Ren'Py:
If player has already played both S1 & S2, S1 persistence is already likely to be broken.​
Downgrade will break any S2 saves/persistence and force player to replay from 0.8.​
All new play throughs of S1/S2 will build persistence, achievements, etc. and be stable for both S1 and S2.​

From a stability perspective, I think either way is fine.

From a user cost perspective? It probably hurts the user more if we roll back S2 to 7.4.10 because it breaks the user's 0.11 saves. If you upgrade the 0.7 full release to 7.6.1 no saves are broken. Only persistence and achievements are lost, and that happens in both the upgrade and downgrade scenarios.

I wish there were good news. Either way, there is a cost to the end user. It's a very difficult decision. It takes a long time to find all the achievements in 0.7 (I still haven't found Mortis II and III, you sly dawg). The 0.11 S2 season has fewer achievements and "only" four chapters to replay to recover saves.

I wish I could say which is objectively the best, but I think players will have various opinions. Maybe put up a poll on the Discord server and give people an explanation of the cost (feel free to copy/pasta this post).
 

Ancandune

Newbie
Sep 3, 2022
23
18
:ROFLMAO:

Every time I see the MC I remember this kid I knew when I was twelve and laugh. He loved playing cops and robbers. He always had his shirt pulled up over his face and carried a cap gun. It looks so goofy.

That was back in the days when no one freaked out about a kid with a toy gun. Yes, I am that old. ;)
 

ThorinKing

Engaged Member
Feb 16, 2023
2,187
5,680
:ROFLMAO:

Every time I see the MC I remember this kid I knew when I was twelve and laugh. He loved playing cops and robbers. He always had his shirt pulled up over his face and carried a cap gun. It looks so goofy.

That was back in the days when no one freaked out about a kid with a toy gun. Yes, I am that old. ;)
We could still go around the neighborhood with a pellet rifle and nobody gave us grief - mid 70s.
 
4.80 star(s) 237 Votes