Animation Victory!
Added 2020-01-19 10:14:20 +0000 UTCIt took longer than I thought it would to get shader animations working in Lab Rats 2, but at long last (and with a few concessions) I have it working! No .gif previews today because I still have a lot of polishing to do before it's pretty, but all of the technical problems have been solved or sidestepped.
Let's start by following up on my most promising lead from my last post: the software renderer. If Ren'py can't get hardware rendering working it falls back to software rendering, which uses your CPU to do all of the calculations for what and how to draw to your screen. This is a lot slower, but for my purposes it gave me direct access to the image data I needed to turn a character displayable into a static image that could then have shaders applied. I technically got a system using the software renderer working, but doing so involved two complete render resets (resulting in black screens for half a second each), took a couple of seconds to complete, and (at least on my machine) broke the game if used in full screen mode. This was, obviously, not going to form the basis for any seamless interaction system.
The next possible path was to rewrite some of the core Ren'py code to give me access to the functionality I needed to produce an image from a complex displayable. For most files (any of the pure python ones) this is easy, any changes made to the source code were immediately reflected when I started the game up. Unfortunately for me, much of the rendering based code was "Cython", which is Python code that has been compiled into C code so that it runs much faster. Because the code must be compiled changes weren't as simple as updating the source. Compiling new code meant tracking down and properly setting up a rats nest of poorly documented dependencies, most of which were meant to be set up on a Linux system rather than Windows. I took a crack at this, and I might one day return to it, but I decided it would take more time than I could reasonably devote to figure it out and get things set up.
This left me at my previous functionality milestone: I could produce a displayable properly, but the background was a solid colour instead of transparent. Rather than continue to bash my head against a figurative wall and have nothing to show for v0.25 I've decided to sidestep the problem by updating the style girls in LR2 are displayed. Girls will now appear in a side box instead of being placed directly over the background. This section of the UI will have a solid background to match the background colour of the animation image. The animation image is clipped to this region of the screen, and otherwise appears identical to the current output.
Something I can now start to explore is how compatible this animation system is going to end up being. It relies on the platform being able to run openGL as well as use some basic OS functions, but this might be a problem on android devices. If so, these devices will instead use the current static image system. I also need to somehow replicate the current clothing fadeout when an item is removed. I may be able to render the character twice, once with the item on and once with it off, then blend between the two, but I will need to do some performance tests to make sure that doesn't take too long.
Whew, that was a long update for today! Now I'm going to get the new display port polished up and start working on the shaders that will actually get people moving (mostly jiggling, actually)!
Comments
Dear Vren, can't you make a type of women's breasts more in line with the girl in the middle of this blogs top picture :) https://thaumx.blogspot.com/2020/01/something-naked-this-way-cums.html?zx=5f2f772e6c3b3d2f
waffel
2020-01-22 18:15:52 +0000 UTCNot as exciting as the animation work you're trailblazing, but: in game/screens.rpy, line 436 'action Return(i)' I'm pretty sure this should be 'action Return(j)' Otherwise you're getting the corresponding person from the left column when you select a person from the right column There's also a problem I can't give a one liner fix to. The above issue appears in screen person_choice which is called by the 'horny at work' crisis (possibly elsewhere). On line 2866 you define a special exit option (basically choosing to jerk off in front of the girls instead of picking one). The issue is that special exit option doesn't seem to be passed to person_choice (and person_choice doesn't appear to have any way to receive a special case exit option, or even any normal exit option). As a result the option won't come up in the menu.
2020-01-20 19:51:53 +0000 UTCYes, the update today is really big, but most importantly, we learned what problems you encountered and it’s good that you solved all of them!
VitAnyaNaked
2020-01-20 00:37:56 +0000 UTCI always get the sense that Vren enjoys solving these programming challenges instead of banging his head against them in frustration, which is a good indicator of longevity in an industry with very high burnout rates. He doesn't always focus on the areas I'd prefer to see improved, but there's consistent, steady progress.
Scott S.
2020-01-19 23:50:32 +0000 UTCI don't think the "box" is going to be a problem, so long as it's not overlapping with anything. Currently, expanding the log so you can see more than 2 lines of history is necessary in any sexual encounter, but if you do so you are covering up the girl at the exact time you'd rather not cover up the girl. I'll be happy if the new layout does not have a problem like that.
Dubsington
2020-01-19 20:27:11 +0000 UTCI've been impressed by your programming chops. All lone developer games are impressive and the versatility demanded of such individuals is intimidating, but it seems relatively rare for devs in this genre to have the technical proficiency to really exploit RenPy's open source. Looking forward to seeing what you achieve that no-one else yet has.
Guileless
2020-01-19 16:31:07 +0000 UTCI swear that when reading the title I saw "Animal victory", and I was like "WTF!?"
Shalashaska
2020-01-19 10:44:39 +0000 UTC