Forks: A Weight Gain Visual Novel (Cancelled, all assets posted for everyone)

‘IT’S MORGAN’

Just kidding but I do have a actual guess on which person is gonna kick off this route

HAPPY NEW YEAR. The hell of 2020 is over. 2021 is gonna be somewhat better.

It be funny if Morgan was the harem route option.

My money’s on Grace. She seemed very interested in everyone’s gains.

1 Like

I’ll look into it. Without going into too much detail, Aria will be much more free-flowing than Forks, and game state in Aria is much more complex. As far as gameplay/player interactions go, I’m drawing inspiration from MOBAs, and a certain block-based 3D sandbox game.

You’d be surprised what Ren’py can really do. The whole Ren’py tutorial (and most of the docs) assume you’re making your game based on the template project provided by the SDK. When you really learn Ren’py, i.e. learn how to use it without the template project, you can do anything with it that any other 2D engine can do.

@Schattenjaeger If you’d like, please DM me with what you found. I didn’t have a chance to do a thorough review before we released, due to a worldwide shortage of IKEA table legs.

1 Like

Plenty.

Stay tuned. Release cycles for Forks are never going to be fast. The creative process moves at whatever rate it pleases, but rest assured the plot will thicken. The art and game logic are pretty much done, it’s just a matter of writing the scenes.

@anon16383054 bugs noted.

@PlusParsnips yes, unfortunately Soulcrusher is not possible after some last-minute changes before release. A lot of issues like that cropped up in my absence, and will be resolved for next release.

6 Likes

The person who made it agrees. I started writing the phone with zero prior knowledge of ren’py, and it shows.

Since I’ve already triple-posted, I’ll just edit this post as I continue to work on the phone’s Progress app bug. Normally, this kind of thing would remain private between me and Tron. This is a special situation, since it’s a huge bug and it’s already in players’ hands.

The Bug: Opening the phone’s “progress” app causes the game to crash.

Investigation:

  • The bug is related to the line graph showing Alex’s weight gain progress in the app.
  • Bug cannot be reproduced on my machine unless I run the Ren’py release build, then execute the game from that build. This is why I didn’t find the bug before release. Note to self: playtest on the release build instead of the development build.
  • The line graph is implemented as a custom Ren’py displayable, which uses pygame_sdl2 and pygame_sdl2.ttf to perform some rendering of 2D shapes and text.
  • The bug is related to the font loading.
  • On Ren’py 7.3.5 SDK (the version Forks was developed on over the last 12 months) there is no exception, and the app works.
  • On Ren’py 7.4.0 SDK (the latest version) the exception is: Could not import pygame_sdl2.font: No module named font
  • In the release build, built on Ren’py 7.3.5, the exception is a file-not-found error related to the TTF file path renpy/common/DejaVuSans.ttf.
  • In the release build, built on Ren’py 7.4.0, the exception is the same as it was in the SDK 7.4.0 dev build.
  • This GitHub issue thread may be related to the 7.4.0 problems.

Conclusions:

  • I’m a moron and neglected to check if the Ren’Py SDK carries its font resources with it into the release builds. Apparently, it does not.
  • As far as I can tell, there is no tenable solution for the problems we’re having with Ren’py 7.4.0. 7.4 brought numerous changes to Ren’py’s graphical backend, and it seems like there are some bugs that haven’t been smoothed out yet. Fair play to them, bugs like this are normal for a x.y.0 release.
  • While Forks could benefit from the new features in Ren’py 7.4.x, it isn’t worth battling with the bugs in 7.4.0.

The Fix:

  • Copy the necessary TTF files into the game’s source tree.
  • Instead of supplying paths directly to pygame.font.Font, call into renpy.file() to get an unqualified path.
  • Continue using Ren’py 7.3.5 to develop and build Forks.
6 Likes

@Tron, its perfectly ok to advertise non-fetish games here. While its not the sites focus we still wish to support the community in any way we can and the includes helping devs promote projects that may be meant for a wider audience (no pun intended).

4 Likes

Does the harem route involve everyone of the girls yes or no?

The holidays are winding down, but here’s one last puff of Forks goodness before we all go back to work!

@e123b has already put his nose to the grindstone to fix some of the current bigger issues, as detailed above. Thanks to his fixes (and detailed explanation, this guy’s awesome :grin:), every major reported issue should be dealt with. We’ll continue developing Forks in 7.3.5, which means nothing will change for players.

Get it either in the first post or right here:

Forks 014d Changelog:

Disabled the scrolling background for now, some people reported feeling nauseous when seeing it. 
Fixed Alex’s portrait showing up while she’s changing in her house bathroom.
Replaced sketch achievement icons with proper colored ones.
Hopefully fixed the DejaVuSans.ttf font crash.
Added 11 additional save slots to each save page, and made the page navigation tools easier to find. 
Added a scene transition effect to when time passes between Alex chatting with Ryan and her mom.
Weight diary graph should show metric units in the legend now, if using metric units.
Phone notes should show metric units now.
Fixed every incident of non-metric units in dialogue.
Fixed reported instances of repeating dialogue text.
Fixed Alex’s random outfit change on Hannah’s route.
Fixed several spelling errors.

As for what’s next, I’ll hopefully have new scenes ready this month! Thanks, everyone!

@Belldash
No, but that’s only because you wanted a yes/no :stuck_out_tongue:

@grotlover2
That’s great to know, thanks for letting me include Aria here :open_mouth:! I’ll look into creating a thread for it once we’ve got the first demo ready! Until then, anyone curious can follow development on our team Patreon.

8 Likes

Any more interesting behind the scenes tidbits?

Is there a better development platform for ren’py than notepad++ out there? and how are you guys effectively collaborating? git? some other version control system?

I tend to go back and forth between vim and VS Code. As for editors that “just work” out of the box with minimal BS, I suggest VS Code, and to a lesser extent Atom.

We’ve just kept Forks in Tron’s OneDrive, which is honestly the biggest mistake I’ve made since I started working on the project last year. Should have immediately moved it to git. Aria will use git.

2 Likes

Hate to be the bearer of bad new but… The history tab of the phone is bugging out ren’py with an error on my version shortly after the choice with the Brownie

Can confirm a history app bug, i also get one.

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 3593, in script
    h "Started off losing [print_weight] before graduating high school, and I've continued from there."
  File "game/screens.rpy", line 2384, in execute
    screen phone_history():
  File "game/screens.rpy", line 2384, in execute
    screen phone_history():
  File "game/screens.rpy", line 2387, in execute
    frame at phone_screen_change:
  File "game/screens.rpy", line 2390, in execute
    vbox:
  File "game/screens.rpy", line 2394, in execute
    viewport:
  File "game/screens.rpy", line 2399, in execute
    vbox:
  File "game/screens.rpy", line 2400, in execute
    for h in history_tracker:
  File "game/screens.rpy", line 2401, in execute
    hbox:
  File "game/screens.rpy", line 2403, in execute
    vbox:
  File "game/screens.rpy", line 2407, in execute
    if isinstance(h[2], str):
  File "game/screens.rpy", line 2410, in execute
    if h[2][0] == 'progress_gain':
IndexError: string index out of range

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

Full traceback:
  File "game/script.rpy", line 3593, in script
    h "Started off losing [print_weight] before graduating high school, and I've continued from there."
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\ast.py", line 708, in execute
    renpy.exports.say(who, what, *args, **kwargs)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\exports.py", line 1345, in say
    who(what, *args, **kwargs)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\character.py", line 1142, in __call__
    self.do_display(who, what, cb_args=self.cb_args, **display_args)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\character.py", line 842, in do_display
    **display_args)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\character.py", line 591, in display_say
    rv = renpy.ui.interact(mouse='say', type=type, roll_forward=roll_forward)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 3094, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\screen.py", line 430, in visit_all
    callback(self)
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\core.py", line 3094, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\screen.py", line 440, in per_interact
    self.update()
  File "D:\Users\~\Downloads\ForksTeaser014d-014d-win\renpy\display\screen.py", line 625, in update
    self.screen.function(**self.scope)
  File "game/screens.rpy", line 2384, in execute
    screen phone_history():
  File "game/screens.rpy", line 2384, in execute
    screen phone_history():
  File "game/screens.rpy", line 2387, in execute
    frame at phone_screen_change:
  File "game/screens.rpy", line 2390, in execute
    vbox:
  File "game/screens.rpy", line 2394, in execute
    viewport:
  File "game/screens.rpy", line 2399, in execute
    vbox:
  File "game/screens.rpy", line 2400, in execute
    for h in history_tracker:
  File "game/screens.rpy", line 2401, in execute
    hbox:
  File "game/screens.rpy", line 2403, in execute
    vbox:
  File "game/screens.rpy", line 2407, in execute
    if isinstance(h[2], str):
  File "game/screens.rpy", line 2410, in execute
    if h[2][0] == 'progress_gain':
  File "<screen language>", line 2410, in <module>
IndexError: string index out of range

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Forks Teaser 014d
Mon Jan 04 12:04:43 2021

Edit: Notes app notes are also not showing the text, you just get the color bar and date with nothing in the note. I double checked this against what shows for the same decisions in the previous build. I have no error or traceback for this.

Thank you, both you and @maldy for the bug report. I’m sorry this is occurring, and we can hopefully have a fix either as a new build or bundled with the next set of scenes. I should take care that everything is well and truly fixed.

Could you please post a screenshot of the notes bug? I can’t seem to replicate it in the current build.

1 Like

This is a screen shot of the notes for grace for forks 014 and forks 014d by the folder label, however it happens with all of the characters.

1 Like

i did try and upload a notepad traceback with the bug earlier but Weight gaming didn’t allow the file in question to be uploaded and only certain ones, but here’s the error itself

I’m sorry, but an uncaught exception occurred.

While running game code:
File “game/script.rpy”, line 3834, in script
a “Sure, I’ll take it.”
File “game/screens.rpy”, line 2384, in execute
screen phone_history():
File “game/screens.rpy”, line 2384, in execute
screen phone_history():
File “game/screens.rpy”, line 2387, in execute
frame at phone_screen_change:
File “game/screens.rpy”, line 2390, in execute
vbox:
File “game/screens.rpy”, line 2394, in execute
viewport:
File “game/screens.rpy”, line 2399, in execute
vbox:
File “game/screens.rpy”, line 2400, in execute
for h in history_tracker:
File “game/screens.rpy”, line 2401, in execute
hbox:
File “game/screens.rpy”, line 2403, in execute
vbox:
File “game/screens.rpy”, line 2407, in execute
if isinstance(h[2], str):
File “game/screens.rpy”, line 2410, in execute
if h[2][0] == ‘progress_gain’:
IndexError: string index out of range

– Full Traceback ------------------------------------------------------------

Full traceback:
File “game/script.rpy”, line 3834, in script
a “Sure, I’ll take it.”
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\ast.py”, line 708, in execute
renpy.exports.say(who, what, *args, **kwargs)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\exports.py”, line 1345, in say
who(what, *args, **kwargs)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\character.py”, line 1142, in call
self.do_display(who, what, cb_args=self.cb_args, **display_args)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\character.py”, line 842, in do_display
**display_args)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\character.py”, line 591, in display_say
rv = renpy.ui.interact(mouse=‘say’, type=type, roll_forward=roll_forward)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\ui.py”, line 297, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 2702, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 3094, in interact_core
root_widget.visit_all(lambda i : i.per_interact())
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 541, in visit_all
d.visit_all(callback, seen)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 541, in visit_all
d.visit_all(callback, seen)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 541, in visit_all
d.visit_all(callback, seen)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\screen.py”, line 430, in visit_all
callback(self)
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\core.py”, line 3094, in
root_widget.visit_all(lambda i : i.per_interact())
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\screen.py”, line 440, in per_interact
self.update()
File “C:\Users\maldarion\Downloads\Game\ForksTeaser014d-014d-win\renpy\display\screen.py”, line 625, in update
self.screen.function(**self.scope)
File “game/screens.rpy”, line 2384, in execute
screen phone_history():
File “game/screens.rpy”, line 2384, in execute
screen phone_history():
File “game/screens.rpy”, line 2387, in execute
frame at phone_screen_change:
File “game/screens.rpy”, line 2390, in execute
vbox:
File “game/screens.rpy”, line 2394, in execute
viewport:
File “game/screens.rpy”, line 2399, in execute
vbox:
File “game/screens.rpy”, line 2400, in execute
for h in history_tracker:
File “game/screens.rpy”, line 2401, in execute
hbox:
File “game/screens.rpy”, line 2403, in execute
vbox:
File “game/screens.rpy”, line 2407, in execute
if isinstance(h[2], str):
File “game/screens.rpy”, line 2410, in execute
if h[2][0] == ‘progress_gain’:
File “”, line 2410, in
IndexError: string index out of range

Windows-8-6.2.9200
Ren’Py 7.3.5.606
Forks Teaser 014d
Mon Jan 04 23:13:38 2021

2 Likes

@maldy and @zdeerzzz

@e123b was able to push out a fix today and I’ve uploaded new builds to itch. Please let me know if either of you are having any more issues.

I hope not, I want to say I tested this more thoroughly :sweat_smile:

2 Likes

so far so good tron but i am going to check a certain scene in the demo i thought i saw a sprite error at the top end of the novel screen will update if i see it again.

In light of recent events, @Tron and I have decided that the pogchamp emote will be removed from Rea’s streaming scene. As such, if anyone has additional bugs to report, do it quickly. The next release will come within the next 24 hours.

10 Likes