Where’s the Update? or: Captaincaption Bit off a Lot More Than He Can Chew at Once (Patreon)
Videos
-
zotz2 example.mp4
Downloads
Content
If you've been paying attention, the last update re:Dreamer saw was 0.9.2 on November 16, 2021. It's been 47 days since then, making it over a month late. While there are a lot of reasons 0.9.3 hasn't come out yet, the summary is that I've been swallowed by an intricately complicated monster of my own creation. I've been explaining how and why things got so complicated in the game's Discord server, but I've neglectfully failed to do the same thing here.
To contextualize, 0.9.2 (which I've made public as of the time of this post) was an update that added to the ongoing mall date in Britney's route. Keeping spoilers brief, Zach isn't exactly the most artful person when it comes to date etiquette, causing Britney to feel rather languid about her first date with a woman, something's she's been romanticizing about and hyping herself up for ever since she realized she was a lesbian. To try and salvage their date, Britney suggests Zach try presenting more as a woman around her and to leave the rest of the date activities to her.
0.9.3 covers Britney's big date idea:
Not only is Britney taking Zach on an arcade, but the games they play are going to be playable by the reader.
Zone of the Zombies 2 is a late 90's rail shooter light gun game very much in the same vein as The House of the Dead 2. It's fast-paced and addicting with its action, graphically impressive enough to avoid looking hopelessly dated, and so incredibly cheesy with its awful voice acting that you can't help but be captivated by the performances, particularly the antagonist's. Britney has never played a light gun shooter in her life, but she's a complete crack shot whose only weakness is a lack of familiarity with the genre and that she has to aim using a crosshair on the screen rather than sights on the gun.
Mrs. Puck Man is akin to Ms. Pac-Man. I don't think a game this iconic particularly needs to be introduced, but a Sustainer patron requested it as one of the games, and the titular character's fame as a femme fatale video game in her marketing material and her legacy makes her a natural choice as a game someone like Britney would be interested in playing. One important difference to note is that I am striving for accuracy of the 1982 arcade cabinet and its alternating turns for the multiplayer mode, but the simultaneous multiplayer of the rare bootleg Ms. Pac-Man Twin hack that was made without either Namco or General Computer Corporation's permission and released only in Argentinian. Yes, I know that the Genesis and SNES versions had a simultaneous multiplayer mode, but this is meant to be the experience from an arcade cabinet, and an arcade experience it shall be.
Tower Topper is Stacker, a skill with prize game akin to a crane game. As the linked video explains, Stacker machines are rigged much in the same way crane games are to only allow a prize to be won after a certain number of attempts, although Stacker is much more transparent with its rigging while crane games obfuscates their rigging by unobservable claw tension and other factors. As a committed free to play gacha gamer, Zach is fully aware of the scummy things game companies do to rig things in their favor when money is on the line, but Britney doesn't, and she won't take Zach's explanation of how these games are rigged as an acceptable excuse for losing. Luckily for both their wallets, Ai is around, and the Tower Topper machine's win rates are controlled by a computer in the management office in the arcade.
Dance Uprising is a Dance Dance Revolution cabinet with some strong USSR branding (сестры из Американские вассалы, гопак!) The particular cabinet in this is styled after the 2008 Dance Dance Revolution X cabinet, and the songs for it have to be conform to a few criteria:
- Each song must be something I personally really like and would listen to outside of this game.
- They must not sound quite as dated as the 1st-5th Mix era but can't be as modern as the Ace era songs (in other words, it sounds like something that would have current in the late 2000's music scene).
- They should all have seemingly iconic vocals, samples, or instrumentations that aren't overpoweringly distracting or truly distinct enough to be instantly recognized (this means no heavy vocal samples or truly iconic songs like SMiLE.dk's Butterfly).
Ideally, they should also be possible to loop, be long enough that any loop isn't as noticeable, and be mellow enough to vibe out to. I shouldn't be forcing touchscreen Android users or anyone else play what is essentially a StepMania minigame if they don't want to, so these conditions are because I can't control the rate at what someone reads if they decide to read these scenes instead of playing them.
So far, the tracklist has been narrowed down Shinichi Osawa's Star Guitar (Brookes Brothers Remix), Machine Girl's Ice Beam, kors k's Monkey Business, Kohta Takahashi's Move Me (from R4: Ridge Racer Type 4), and Captain Jack's Captain Jack (Grandale Mix), but I am always willing to take further suggestions from Patrons if there's something you really want to see in the game.
The context for these four games is that Zach, in his usual smart-ass gamer way, says something to imply that he'll need to hold Britney's hand through whatever game they play. Britney is having none of this and suggests they make things more interesting by raising the stakes in whatever they play by placing a wager to make the loser do whatever they want. Zach, not knowing what to wager, suggest that he might make Britney pay for his lunch. Britney candidly tells Zach that he should wager something higher to match her wage; if Britney wins, she's going to make her boyfriend (female) wear a skirt. Zach, after being pushed into a corner by Britney conceit, tells her that if he wins, he's going to demand sex with her wearing cosplay of a character of his choice, which instantly makes Britney furious because she didn't think of that.
Their game is either decided through player skill, C.H.E.A.T.S. stats, or Ai fucking with Zach, prompting the loser to demand a rematch with one of the three remaining games.
Now as you might suspect, all of this is insanely complicated and completely unrealistic to implement for a single update with what is supposed to be a two-week development period, but I went ahead with it anyways, and before I knew it, the update was a month overdue.
I think my shortcomings as a programmer are well documented by this point, but let's just say re:Dreamer as a game is basically always just one stray if/else away from breaking in a horrible way. Thankfully, a lot of the coding work for the minigames I need has already been done by other people from the Ren'Py cookbook. In particular, r3dhummingbird's renpy-rhythm project has greatly simplified the work required for the dance minigame from an absolute nightmare to merely confusing, but I still have to do a lot of work adapting all of this various code into re:Dreamer, to say nothing of the extremely detailed audio design, graphic design, and actually writing the visual novel part that are required to make this all work.
Seriously, fuck the sound design. The special 'audio' channel for Ren'Py's sound engine doesn't work properly when you ask it to play the same audio file multiple times, which lead to me having to make 30 new audio channels for the arcade games, which lead to me making some of those channels have a partial bias to left or right side so that it's easier to differentiate between players, which lead to me reproducing sound effects largely faithful to their arcade cabinets, which lead to me making complicated rules for the audio design based on my own measurements and story needs:
Zach shoots at an overall average of 6.25 shots a second (0.160s per shot) and an accuracy of 90% (1/10 shots is missed).
Britney shoots at overall average of 8.0 shots a second (0.125s per shot) and an accuracy of 95% (1/20 shots is missed).
A reload must happen AT LEAST once every 6 shots. The reload VO will play 0.02 seconds after the last shot is fired. Each player reloads at 2.5 times slower than their shooting speed and takes 1.5 times longer to make their next shot after a reload.
Swapping a target takes between 1.0 and 3.0 longer than the player's shooting speed to do.
A basic zombie takes 3 body shots to die and plays their death SFX 0.01s after the shot that kills them.
Head shots deal twice as much damage as body shots.
Only 20% (1/5) of Zach's shots are attempted head shots, of which he has an accuracy of 70% (3/10 shots is missed), meaning that his body shot accuracy is 95% (1/20 shots is missed) (0.95 = ((5 * 0.9) - (1 * 0.7)) / 4).
Meanwhile, 33% (1/3) of Britney's shots are attempted head shots, of which she has an accuracy of 85% (3/20 shots is missed) accurate for, meaning that his body shot accuracy is 97.5% (1/40 shots is missed) (0.95 = ((3 * 0.95) - (1 * 0.90)) / 2).
Hits on bosses require equivalent accuracy of a head shot, and each player will only be going for those types of shots.
Which lead to complicated implementation:
"As soon as the short cutscene ended, Britney and I lined up our shots against the next group of three zombies,{nw}"
stop gsound26
play gsound20 [ "<silence 0.13>", hotd2sfx_vo_reload_16 ]
extend " but Britney had forgotten to reload,{nw}"
play gsound17 [ "<silence 0.6>", hotd2sfx_reload1_44 ] # Zach is surprised at Britney's failure to reload, meaning that his reaction time to reload takes 1.5 times as long and throws his aim off for his next six shots.
play gsound02 [ "<silence 0.48>", hotd2sfx_bullet_met2_16 ]
play gsound03 [ "<silence 0.65>", hotd2sfx_bullet_wod1_16 ]
play gsound18 [ "<silence 0.81>", hotd2sfx_gun5_22 ]
play gsound04 [ "<silence 0.97>", hotd2sfx_bullet_met1_16 ]
play gsound19 [ "<silence 1.12>", hotd2sfx_gun5_22 ]
play gsound10 [ "<silence 1.28>", hotd2sfx_gun5_22 ]
play gsound05 [ "<silence 1.29>", hotd2sfx_zombie_018_16 ]
play gsound11 [ "<silence 1.30>", hotd2sfx_vo_reload_16 ]
play gsound12 [ "<silence 1.75>", hotd2sfx_reload1_44 ] # A slightly longer reload.
extend " which unexpectedly meant that it was left up to me to clear the screen by myself."
zach "Watch it, Britney! We almost got hit there!"
play gsound20 hotd2sfx_vo_shoot_16
britney "It's not my fault!"
play gsound21 hotd2sfx_reload1_44
"Britney reloaded as she geared up for another rant."
The attached zotz2 example.mp4 shows how complicated the audio is just for this static scene without gameplay.
Like I said, I've been swallowed by an intricately complicated monster of my own creation, so please be patient as I try to claw my way out of it like Jonah. CaptainCaption, or rather, Captain Ahab, is either killing this beast, or it is killing him.
I'll leave you with the ongoing changelog of things I have fully done for the 0.9.3 release:
- Thanks to ethylene in the re:Dreamer Discord server's proofreading prowess, several spelling and grammar mistakes in the game text have been corrected.
- Zach is now called either "Zach," "Zoey," or "Z" by Britney based on an internal variable that should be easier to deal with than a bunch of if/else statements.
- I got around to un-commenting as many of my inline comments as I can that aren't major spoilers and making them show up as an Author's Note aside if Awkwardness is set to 5. This might need to be a separate menu option at some point and the code can easily be changed to allow that, but I figure that since Awkwardness being set to 5 is already kind of the reader accepting additional verbosity and weird things, this fits in with that.
- There's now a route jump menu to the Keisuke Day 1 Mirror Self-Voyeurism scene. I kind of forgot how much I liked the writing there.
- The end of the shorter Britney stub (Just ask her to come to your room) not only tells you that you're on a short stub, but gives you a hyperlink to click to instantly go back to the start of the longer path.
- I included some test Zoey sprites with alternative breast sizes inside the Fan Art folder. The results were achieved from editing the existing breasts with Clip Studio Paint's curved surface distortion tool. While the results aren't as good as properly drawn sprites, please let me know which one is your favorite because some of these alternative breast sizes might be showing up in a future story event.
- Standardized the trembling animations.
- Polished up some of the Zoey sprite expressions in Keisuke's route. Pretty much everything needs proper attention to get to the expressions to the level of quality they have in Britney's route, but for now, only a few of the shower scene expressions and party expressions have been spruced up.
- Fixed the loose arm of the A pose lifted shirt sometimes not showing up.
I can't show you those alternative breast sizes here on Patreon because of the Terms of Service, but I can show you two new Zoey sprite outfits from Myumi, a women's tracksuit and Keisuke's borrowed men's XL hoodie:
"I don't see why Keisuke was making such a big deal about how I need to work out, but I'll humor him."
"Oh my fucking god, my breasts won't stop bouncing, and they feel like they're in a sauna!"
"If I'm going to survive this forced exercise, I've got to ditch the top."
"Wow, that's so much better!"
"But shit, now people won't stop staring at my tits!"
Seriously, when Zoey's wearing this oversized hoodie, her snarky gremlin levels are off the fucking charts in the best possible way.
I've also got red variants, which I'm thinking of offering as a player option for Zach's school colors. I spent over 12 hours polishing these sprites up to look as good as they do now, so I might as well let you folks choose the colors.
Please be patient as I keep working on 0.9.3. It's still going to need a decent bit more work, but hopefully it won't take too much longer.
Until next time!