Guest User

Untitled

a guest
Mar 24th, 2019
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.88 KB | None | 0 0
  1. [Unless marked otherwise, speaker is "Masked Lexy". Notes marked with "--" are the actual comments from the code. Bracketed text like this is additional notes if something besides plain text happens.]
  2.  
  3. -- Game concept and design and development
  4. Oh! So, the concept was... hmm, lemme back up here.
  5. A whole lot of sex-themed video games are visual novels. And that's fine! They're a great art form, and we've made several.
  6. But the most interaction you get in a visual novel — the most decision-making power afforded to you — is the humble menu.
  7. [A menu is shown, with the "options" being "Like this, see?", "Continue", "Resume", "Advance", "Progress"]
  8. And the problem I have with VN menus is that they interrupt the "game loop", the basic thing that you spend most of your time doing.
  9. In a VN, that's reading text and pressing a button to get more text. A menu forces you to STOP doing that and suddenly make a decision.
  10. That's always bugged me a little. Most games are, by and large, reactive: interruptions only happen in response to the player's actions.
  11. In a VN, that's still technically true, but since the only action you can usually take is "move forward", the interruption is inevitable.
  12. It just doesn't feel interactive in the same way. You don't decide when to make a choice; the game stops at fixed points and demands one of you.
  13. I tried some experiments in Ren'Py, like a menu that doesn't block the story... so you can ignore it, or wait a bit before making a choice, for different outcomes.
  14. But it's also potentially confusing since it subtly breaks the format, and it would probably work better in a dedicated game, where every choice is like that.
  15. Making a full 3D game or something avoids this problem, but VNs are an attractive format for narrative sex games because they're easy to make!
  16. So what might an accessible middle ground look like? Well, you're playing it!
  17. The game loop is in an RPG style. The game doesn't progress until you interact with something, but that's exactly how the genre works anyway.
  18. You only have a few actions you can really take at any point, and then it continues in a VN fashion.
  19. Cerise walking around the shop is a menu in disguise! But it feels more like a game and less like an... error dialogue, with indistinguishable mystery choices.
  20. I also tried to make the game feel satisfying to play, even if you don't get the max score.
  21. That's another problem with VN menus: they often have only one "correct" choice and no real hints as to which it is, leaving you with trial and error...
  22. So here, to get away from the VN menu feeling all the more, I tried to make every choice feel reasonable and valid, even if the sex didn't happen.
  23. You should be able to play through once, choose anything, and still come away satisfied that you played through a little story — no matter how it ends.
  24. But you should also be able to spot the big narrative puzzle, if that's a thing that interests you, and spend a few hours fiddling with it. The max route is unique!
  25. There are worthwhile conversations and scenes that CAN'T happen on the max route, too! So there's a decent amount of stuff to find.
  26. For example, I think there are... maybe... nine distinct endings to the Krypto saga? Including this one? See if you can find them all!
  27. Oh, another thing that bugs me about VNs is when you play through a long one and realize you made the wrong choice early on...
  28. So you have to play through again on "skip" mode, and it becomes less of a story and more a game about JUST the menus. Oof!
  29. Masked Papaya: God, remember the bullshit in—
  30. MAYBE let's not name names here.
  31. But that's why the main menu gradually unlocks the ability to start from a later day: so you're not just flipping past the same dialogue over and over.
  32. It also gives you some indication of how close you are to the max score, which you don't generally get from a tangly branching story! I hope it helps.
  33. Let's see. I guess the scheduling and the passage of time was the other experiment here. It was actually inspired by dating VNs!
  34. I've only played a couple, but they had a common structure: you have X days, and you can spend each day with one of several potential suitors.
  35. But often, the only interesting choice is to pick the same person every day, meaning each person has an independent story and the scheduling is pointless...
  36. So I decided I wanted a freeform schedule, with lots of characters who come in and out and might affect each other, like how a shop with regulars might be!
  37. That said, this was surprisingly complicated to get right, even for how relatively short it is...
  38. I tried writing some code to analyze every possible path through the game, but it found over a million possibilities by mid-Friday and then choked...
  39. So I'm not sure how practical this approach is for a larger experience, especially for one writer. This game feels about the perfect size, honestly.
  40. My favorite part is how there are only a couple distinct plot threads, but the time mechanic makes it feel much more complicated.
  41. If you advance one thread, then later you might have more characters present at once, and you won't have time for all of them!
  42. Or maybe a character will only do something if someone else is present, or not? This happens with Krypto a lot, but with a few others, too.
  43. I hope someone makes a walkthrough, just so I can see how they chart out the schedule. I've never seen spoilers for my own puzzles before.
  44. Anyway, I hope you enjoyed how this came out! I'd love to do more experiments with choice and player agency in the future.
  45.  
  46. -- Artwork, and my contributions to it anyway
  47. Oh, geez, I don't know what all I can say about the art. Hopefully the ARTIST will write their OWN commentary.
  48. Masked Papaya: ...
  49. ahem, ahem
  50. Masked Papaya: Shh. I'm drawing a picture of me giving you a wedgie.
  51. But I'm not wearing underwear? Or anything else?
  52. Um. Okay. Well,
  53. They did basically all of the sprite work: all the NPC sprites, plus the tiles used for the shop interior.
  54. I really love the pastel color scheme they used! It's so pretty. It makes me want to totally redo the fox flux palette to be softer like this.
  55. It's a shame the table stops anyone from sitting on the couch. That's why I'm here now. Get some use out of it.
  56. Also it's hilarious to me that because Cerise is so tall, when they're toe to toe, Lexy just stares at her boobs.
  57. Oh, fun fact: Toyle doesn't have side or back sprites.
  58. Masked Papaya: That's because he's such a cool dude. He doesn't have time for turning, only for partying.
  59. As soon as someone invites him to a party, he'll be all ready to go.
  60. Also he DOES actually have a right-facing sprite, but it's blank. I just needed a placeholder because my engine always spawns sprites facing to the right.
  61. Let's see. Of course, Masked Papaya also did all the portraits and illustrations.
  62. Hey, did you know the expressions are made from pieces layered on top of the base portrait?
  63. Like this, see?
  64. They gave me some overlays, and I combined them however I wanted. It's kind of cool to just... get some art, and figure out what to do with it.
  65. Also, Masked Papaya has the most extra layers, despite having... not a whole lot of dialogue...
  66. Masked Papaya: Write more for me, then!
  67. I don't want to put more words in your mouth just because I wrote you telling me to...
  68. Um, so, illustrations!
  69. I asked for specific themes for a few illustrations, when it was important to some plot thread — like with Claude and Mellie.
  70. But for most of them, the sex just kinda happens and could be anything, so Masked Papaya drew whatever they felt like and I wrote around it.
  71. We could've done more than one pic per scene, but the game was SUPPOSED to be done three weeks earlier (oops), so we tried to restrain ourselves...
  72. And y'know, it's a bit fiddly to write porn with only one illustration per encounter! That means I can only write one big thing happening.
  73. If I spend more than a line or two on foreplay, it's a little conspicuous that there's no picture of it, right? Just two sprites standing there.
  74. So with, say, Bloom, it felt kinda silly to have her be this big dom who's hot for Cerise, and then Cerise eats her out and that's it.
  75. But I think that was magnified for me, because I wrote three versions of the Bloom encounter AND tested them, all in a row. I hope it reads okay!
  76. Hmm, but what art did I contribute? I arranged the shop itself, and made some light sprite edits.
  77. The rose-like plants in the middle of the shop? Those were a couple pixels too tall to fit my spritesheet grid, so I shaved them down a bit...
  78. I made all the dialogue boxes, the heart sprites, the clock in the top right, this background, and all the UI layout stuff.
  79. Did you know it's a huge pain in the butt to arrange UI by writing code from scratch? I have to calculate a bunch of pixel positions manually!
  80. Even drawing text with a shadow is slightly annoying. I have to draw it twice: once with the shadow color, then once with the text color, a pixel higher.
  81. The credits screen involved a lot of... nudging things around 16 pixels at a time, then checking to see if it looked okay.
  82. Oh! I also sprited Cerise's dick. I'm pretty happy with how that came out.
  83. Masked Papaya: I bet you are.
  84. Eheheh.
  85. And I arranged all the kittens for kitten mode. That was a little tedious.
  86. I moved them around with layer transforms in GIMP, but it only shows a transform as an affine matrix, which I had to decompose...
  87. Well, I guess I didn't HAVE to decompose, but I find separate rotations and scales to be much more readable than a matrix.
  88. I don't think I have much else to say about the art process, since I didn't... do most of it?
  89.  
  90. -- Writing process, wahoo
  91. Hoo, boy! You know, I first got an audience because of my writing — in the form of techie blogging — but even years later, I'm not too confident about it.
  92. It's always a struggle to get this big tangle of stuff out of my head in a way that's concise, but still conveys exactly what I'm trying to say.
  93. I really hate being misunderstood, but I also know I have a habit of glossing over details when they seem obvious to me. Lots of conflicting forces at play...
  94. Even writing this commentary is weird. It's basically a blog post, but I'm trying to cut it into chunks about one text box long, and then add emotions to it?
  95. Also I'm trying to avoid orphans, which are single words alone on their own line, and that's a bit tedious...
  96. I guess I have practice with this kind of constraint from Twitter, though a physical space limit is trickier than a character limit.
  97. I'm writing this in monospace, so I have to check the game itself to make sure I didn't overflow the text box. But I have to do that anyway to check the expressions.
  98. ...
  99. You know, fiction has always felt several times harder to write — ESPECIALLY conversation.
  100. How do you be sure you're writing characters with distinct voices, word choices, tones, motivations? How do you know you're not just writing your own voice?
  101. That's rhetorical. I don't actually know.
  102. Writing in VN style has always been much easier, though! Maybe because it feels like chatting, just in two different moods?
  103. The funny thing is, even this commentary, which is supposedly in my own voice, still comes out sounding like it's from a character.
  104. I don't quite understand why. Maybe it's the expressions? They force me to keep in mind that there's a mood, and that it can vary.
  105. When I write on Twitter or something, I naturally tend towards being very dry. But here, there's a little face next to what I wrote!
  106. Oh, funny story about that!
  107. The way I wrote the dialogue varied. Sometimes I'd have a big idea already, so I'd write out all the text, then add the expressions in later.
  108. But sometimes I wouldn't know what I wanted in advance, so I'd just let it come out, and I'd include expressions as I went.
  109. In those cases... you know how artists sometimes make the same expression they're drawing, without even realizing? I did that while writing!
  110. I first noticed it when writing Krypto ragging on Cerise. I'd been making Cerise's sad expression for so long that my eyebrows actually got tired.
  111. That made me feel really bad for her... and I poured that feeling into, um, more Krypto dialogue.", "...
  112. Oh, speaking of characterization, my favorite feedback from beta testers was TWO of them mentioning that they liked Ike's personality!
  113. I wasn't even sure I'd given him one. I've drawn a couple refs of him, but this is really his first public appearance DOING anything.
  114. Along similar lines, one of the hardest parts was writing the cameos — other people's characters, who also exist only as a ref and very brief description.
  115. Everyone was pretty happy with how they came out, which feels like a miracle? Apparently I nailed Bloom and Florbet?? How???
  116. Bloom got an awful lot of text, too. I'm not sure how that happened. Well, yes I am.
  117. There are three times you can have sex with her, and it seemed incredibly lazy to copy/paste a whole sex scene, so I ended up writing three separate ones.
  118. Which was a little goofy, seeing as they all play out in similar ways, with the same framing. I talk about that a bit more in "Art".
  119. I think it helped that I tried for a very low-narration writing style here, as a contrast to Alice's Day Off, which has a ton of raunchy narration.
  120. Though that came with its own challenges, like giving context without having someone spell out something that's common knowledge for them!
  121. Hmm, I don't think Bloom has the most text, though. Another concern I had was with... scenes getting more attention if they held my interest better.
  122. So the Lexy rubber stuff on Friday morning might be the longest text in the game...
  123. Masked Papaya: I'm pretty sure the longest text is the part where you show off.
  124. Haha! I actually had to edit that down to make it a bit less cheesy. I'm never sure where the line is between cool Mary Sue and, regular Mary Sue.
  125. Masked Papaya: My dude, no one cares. It's your character in your story in your game. It's okay to have her do a whole 1 cool thing.
  126. Masked Papaya: It's not even on the main path! It only happens if you've already missed the max score.
  127. Oh!
  128. Masked Papaya: What?
  129. While you were futilely trying to reassure me, I went and counted lines.
  130. The longest dialogue script is Papaya on Friday! Even all of Bloom put together isn't as long.
  131. Masked Papaya: ...
  132. Masked Papaya: Nice.
  133. Yeah, I remember writing this... a lot of different stuff can affect that conversation, and it was a mess to sort out and be sure I'd covered everything.
  134. Masked Papaya: "A lot of different stuff" or in other words "is Lexy a big fat cock or not?"
  135. Ummmmmmm that may have been one factor yes.
  136. But Friday was pretty hard in general! It's the most complex day by far, and then I kept having to, uh, take breaks from writing the scenes...
  137. Masked Papaya: Yeah, I remember you scurrying away to jerk off like three times.
  138. H—hey! Don't say that in the dev commentary!
  139. Masked Papaya: What, like it'd be terrible for people to know you got horny from your horny game?
  140. Obviously I only made this game for the, um, artistic merit. You know, the articles.
  141. Also it was four times.
  142. Masked Papaya: Bahaha. You should put that on the Itch page. "I whacked off four times just writing it!" Ringing endorsement.
  143. I, um, would rather not.
  144. ...
  145. ANYWAY
  146. Um what else have I got to say about the writing.
  147. I do like giving folks distinct speech quirks or accents! But that's specific to characters, so I'll save that for that conversation.
  148. It's fun to play with grammar for effect, though. Like going "ANYWAY" without punctuation. Sorta blends dialogue with typing styles.
  149. Oh, we did have a cameo back out at almost literally the last second. Basically all I had left to write was this stuff, and...
  150. Masked Papaya: They wussed out.
  151. Well, let's not go into it here. It's their choice, I guess. But it sucked. Felt like I'd been punched in the gut.
  152. Thankfully their cameo wasn't entangled with any delicate plot, and I think the replacement story is even better, so it worked out.
  153. That's who's in front of the counter, though. Obviously we removed the actual character, but no point in letting the writing go to waste?
  154. I think that's all I've got about general writing! Please enjoy the menu.
  155.  
  156. -- Engine, code, dev, etc
  157. Hey, this part is pretty long and technical, so if you're not into that, consider it a chance to try out your new fast-forward button! Left shift or trigger!
  158. Anyway, "engine" is a strong word...
  159. This game is built with LÖVE, which is less like an engine and more like a nice Lua API for SDL and OpenGL and some other stuff.
  160. But that's why I like it! I don't get along very well with opinionated things, because I'm also opinionated, and their opinions are usually wrong.
  161. That does mean I basically had to write my own little engine on top of LÖVE, which has been... pretty educational!
  162. I've been working on it for a few years now. I use the same engine for all my games, and add stuff to it and clean it up as I go.
  163. It was originally pretty entangled with the first LÖVE game I made, and untangling it has been... gradual.
  164. I think there's still code in here for the very specific way that first game handled death, even though most of my games don't have death at all.
  165. I wrote the physics engine from scratch, too! I've learned a lot from that, and I still have to go back and work on it at times.
  166. Physics is really hard to get right, but it's surprising how well even a "wrong" physics engine can work without anyone noticing.
  167. One thing I had to fix a few days ago was that Cerise couldn't fit between Papaya and the bottom edge of the shop.
  168. She could get in there, but moved at the speed of molasses. Turned out both Cerise and the gap are exactly 40 pixels tall.
  169. Masked Papaya: She was having trouble squeezing past me, eh? I don't see how that's a problem.
  170. The ACTUAL problem was a bunch of bugs in how I handled hitting several collision normals at once, but I won't go into it in this format.
  171. I'd known for a long time that my physics didn't do very well when moving a box through a gap exactly the same width, but...
  172. It hadn't really mattered until now, because this engine was originally for platformers, where the world is made of tiles, and the player is a bit smaller!
  173. So over the course of multiple games, I've never actually encountered a perfect gap like that, and never got around to fixing it.
  174. But this game is top-down, where NPCs block you, so there are odd-sized gaps! In platformers, of course, NPCs are usually "behind" you.
  175. That was actually the very first thing I did for this game, was figure out how to adapt platformer physics for a top-down world.
  176. Obviously I had to disable gravity, but there was also a fun puzzle with dealing with max walking speed when you can move freely in 2D.
  177. The way I wrote it puts "top-down mode" on actors rather than the map, so I can now better implement platformer enemies that ignore gravity!
  178. Top-down has a couple other quirks, like draw order; things need to be sorted from top to bottom, which isn't the case for a side view.
  179. I sorta hacked that. Not sure how I'll fix it for real later.
  180. That also affected the map in frustrating ways. The top of a shelf might be in front of you or behind you, depending on where you stand!
  181. I think fixing that would require breaking the map (other than the floor, of course) into rows and interleaving them with actors...
  182. But that's annoying, so I just made every shelf an actor. Which also let me give every object its own dialogue, so that worked out.
  183. Without actors, the shop is nothing but the floor, carpet, and back wall!
  184. Boy, though, figuring out collision boxes for top-down is weird. Like, Cerise can't actually walk all the way down against the bottom wall?
  185. But that seems correct, right? Her collision box is centered underneath her, and her belly would keep her from walking down all the way.
  186. It just looks weird because we can't actually see the wall she's colliding with. I think? I dunno, I haven't done this perspective before.
  187. ...
  188. Hmm. I added a lot of little niceties to the engine that I didn't have before, and I'm happy about them, but they're not super interesting.
  189. I guess one obvious stand-out is that dialogue backgrounds always used to be a fixed height, with the middle bit stretched to fit the screen.
  190. Now I can actually cut the background into a 3×3 grid and stretch it in both directions, which is how menus work. It'll help a lot in future games.
  191. Oh, speaking of. Have you wondered about the window size? It's 832 by 448.
  192. I know, right? Weird. It's actually the result of a lot of experiments with trying to find a good base size for pixel games.
  193. See, I can only scale the game by an integer: 1×, 2×, 3×, etc. Otherwise, the art gets fuzzy and ruins the clean outlined pixel aesthetic.
  194. A common suggestion is to use a fraction of 1080p, the most common screen size by far, so the game can scale perfectly to that size in fullscreen.
  195. But... until a few months ago, I had two monitors that were both 1680×1050, very slightly smaller than 1080p.
  196. If I used half of 1080p as the native size, then the game couldn't scale up by 2× in fullscreen! It would be just barely too big to fit.
  197. I'd end up with the game at the same size, surrounded by a huge empty border. On my own computer! Ugh.
  198. So I put far too much effort into getting a list of screen sizes and trying out approaches that would minimize letterboxing.
  199. What I found was that if you aim for half of 1080p, but allow the game to shrink by a few tiles on each edge when necessary, you can fit almost any screen!
  200. Of course, this game only has the one room, which doesn't scroll, so there was no reason to do the optional shrinking.
  201. Instead I just targeted that nice minimum size I'd found, which is 832×448 — half of 1080p, with a few 32×32 tiles trimmed off the edges.
  202. As a bonus for me, I now have new monitors that are 1440p — a third bigger than 1080p — and the game happens to fit pretty nicely at 3×!
  203. Boy, though, sizing got tricky. It's a pixel game, so drawing the world is easy: draw everything to a canvas at 1×, then scale it all up.
  204. But there are two little wrinkles. One is that this font isn't a pixel font, and just scaling it up blindly looks pretty ugly!
  205. LÖVE has no mechanism for handling this. It can't even change font size; if you want a different size, you have to load the font again.
  206. I ended up writing a font wrapper that renders text at 1×, but if the game is scaled up, it magically reloads the font at a bigger size...
  207. ...and it even re-renders all the prerendered text created with that font. I can draw text as though the game is 1×, and scaling is automatic!
  208. The other wrinkle is entirely self-imposed, and it's the art. See, all the illustrations were drawn at 2×, for art reasons. Good to draw big, then shrink down.
  209. I thought it would be interesting to give away the game with all that art scaled down to 1×, but sell a version with the originals.
  210. That led to some goofy hacks, like the dialogue code deciding whether the game is HD by checking if portraits.png is taller than 3000 pixels.
  211. I probably should've just modified the code to set a flag in HD mode, but for some reason I was determined to make it automatic.
  212. Saw some fun bugs come out of that, though, like everyone's portraits being half-sized.
  213. Hmm, let's see! I also rushed to cobbled together a save system, relatively late in development.
  214. Originally it only saved your progress and the current time, assuming all the right NPCs would spawn just like if time had advanced naturally...
  215. But I forgot that some NPCs hang around from an earlier time, and those didn't spawn. Oops. It's a bit smarter now.
  216. The downside to being smarter is that weirder things can now happen if people hack their saves, I guess, but they can just as well hack the code.
  217. Here's a fun fact: starting from later in the week works by playing back all the choices you had to make to unlock that day, behind the scenes!
  218. I did that because I wanted to be sure all the flags and happiness and everything were correct, even if I later went back and changed something.
  219. That's all that remains of all that code I wrote to map out every possible route. Oh well.
  220. Ah, and there was that bug where if you unlocked all the days, then went back and played Monday max, it would RE-LOCK everything after Tuesday...
  221. I think the parts I'm happiest with, though, are the heart wipe and the glitchy effect. Both of them were interesting to figure out.
  222. The heart wipe is based on a generic Ren'Py transition effect. It uses a grayscale image to figure out which order to reveal new pixels.
  223. Oh, here. Since it's an image, I can just show you.
  224. [shows heart transition image]
  225. See? Pixels that are black on this mask are shown first, then pixels that are almost black, in lightness order all the way up to white.
  226. Here, I'll play it again so you can watch.
  227. [plays transition animation]
  228. Making this actually work is pretty easy! It's a shader that's like three lines long. The hard part was generating the mask.
  229. The obvious thing is to make some tiny hearts, color them black, scale them up a bit, color them almost black, and so on.
  230. But that's incredibly imprecise, and it's hard to predict the timing. How do you know when, exactly, the whole image will be filled with hearts?
  231. I tried approaching it from the other direction. I imagined the mask as a grid of growing hearts and made a "stamp" the size of a cell.
  232. Then for each pixel of the cell, I figured out where the heart would first touch that pixel, and traced a ray into the heart image...
  233. ...until I found a solid pixel. That told me how big the heart would have to become to fill in that pixel!
  234. Since I knew this for every pixel, I also knew EXACTLY how big the heart would have to be to fill the whole stamp, which solved the timing problem!
  235. (Good thing I'd already written some raytracing code for Cerise herself, to figure out who's in front of you when you try to talk!)
  236. (...which I then replaced with a shape cast anyway...)
  237. Then all I had to do was copy the stamp into every cell of the grid, with some adjustments to stagger when the columns start.
  238. It's, um, a little hard to explain three lines at a time. But I'd like to release this as a Web tool soon, which should have some better explanation!
  239. One last strike of inspiration was the "halo" effect when showing or hiding illustrations. It's the dark pink heart rings you see here:
  240. [plays animation]
  241. Originally, the art transition was like the transition to pink when the time changes: it went straight from the shop to the art.
  242. But there are a couple places where the same scene has two illustrations, one a slight variant of the other.
  243. With the direct transition, it wasn't even obvious there WAS a transition, except that a few bits of the screen subtly changed.
  244. The halo effect adds a ring around the pixels that are currently appearing, so it's obvious something is changing, even if a lot of it ends up the same!
  245. As for the glitch effect, gosh! When I started out I had absolutely no idea how I was going to make that work.
  246. I knew of several simple glitch effects, like separating channels, shifting rows of pixels, and so on. But how could I animate them?
  247. At first I tried to define an animation by hand, but that looked really stodgy and I disliked it from the start.
  248. I feel like I stumbled on the current approach almost by accident, but maybe that's how art goes...
  249. What it does is randomize the strength of all the independent glitch effects, within some range. It repeats this every few frames.
  250. The only part that's really animated is the horizontal distortion, which slides up and down.
  251. The cool part is that the RANGE is multiplied by a number from 0 to 1, which I called "harshness".
  252. Harshness starts out at zero and grows very slowly, so the effects are minor, and even frequent rerolling doesn't make much difference.
  253. But as it starts to approach 1, the effects become more drastic, and so the differences when the effects reroll are also drastic.
  254. Once it passes 0.6, it also has a chance of briefly freezing the screen. That was inspired by my screen recorder lagging when recording an earlier attempt!
  255. The cherry on top was to do the same to the music: randomly change its pitch, and pause it completely during a freeze.
  256. I really like how it came out! And I'm thrilled that I got a mild version to work while you're here! That was a bit fiddly.
  257. Even the music here is just the normal Friday music, but pitched down and with a low-pass filter slapped on top. Small touches can have a big impact!
  258. Oh! One last thing. Let me tell you about the most frustrating bug I encountered.
  259. In case you don't remember: the game starts with the empty shop (to teach you about "lounging"), then the next hour is Dorothy at the counter.
  260. Several friends tested the game for me, and one of them said that he managed to skip Dorothy by mashing spacebar really fast.
  261. But that doesn't make any sense. Dorothy's at the counter; you can't skip her. And yet he was getting the "Lounge" prompt?
  262. I couldn't figure it out, and it didn't happen for me. Then several testers started getting crashes, that had similarly mysterious causes!
  263. It seemed impossible. There's a whole big transition and delay before Dorothy even shows up, yet the game seemed to "remember" the empty counter.
  264. Completely at a loss, I traced how the top-level update() call made its way down to Cerise, in case... I dunno, something jumped out.
  265. And then something did. I still had code from the old platformer roots, which would notice when the game was lagging and "split" updates.
  266. I'd originally added it because the lower the framerate got, the more imprecise the physics were. People with slow computers couldn't jump full height!
  267. So if it noticed you were running at 30 FPS, instead of a single 1/30s update, it would run two 1/60s updates in the same frame.
  268. (Later it turned out I was handling gravity in a subtly incorrect way, and fixing that fixed the jumping problem, but I left in the update splitting.)
  269. The problem with it was twofold. One, this splitting code existed as part of the game world. Nothing else knew about it.
  270. Two, I'd since introduced an input manager, which is only updated once per frame. It's outside the world, so its updates aren't split.
  271. So if the game detected a slow update on the same frame you pressed "use", the world would update once and you would use the counter...
  272. ...and of course, that would also signal the dialogue screen to come up on the next frame...
  273. ...but before that could happen, the world would update a SECOND time, still thinking you'd just pressed "use", and queue a second dialogue!
  274. My tester was skipping Dorothy because when he'd "used" the counter the first time, the "Lounge" dialogue had been queued twice!
  275. The end of the first dialogue triggered the transition and the passage of time, but then the second dialogue immediately showed up!
  276. The testers started getting crashes because I'd added some logging to dialogue, which errored if it detected nested dialogue...
  277. But since I didn't really need update splitting any more, I just disabled it. Problem solved, easy! Phew, though, what a mystery.
  278. I could never reproduce it myself, because I have a pretty powerful computer, so my framerate never dropped low enough. Oops.
  279. Glad I figured it out in the end!
  280. I love how this game came out, honestly. It took a while to build a lot of little things I'd been putting off, but it just feels really nice to play.
  281. I can't think of any other code stuff that isn't incredibly boring and hard to fit into a VN format. Maybe I'll write a postmortem for this game later?
  282. In the meantime...
  283.  
  284. -- World, lore, Flora
  285. Ah, yeah, so. This game is set in the world of Flora, which is full of magic and animal people. I hope it makes sense if you're not familiar?
  286. Designing a magical world is interesting, I say as not the one who did most of it. Most magical worlds seem to trace back to Lord of the Rings.
  287. But there, magic is this rare power, concentrated among a lucky few. Magical items might leak out to the masses, but that's about all.
  288. And that sucks. It makes for a world that's WORSE than the modern-day real world! Dark Ages tech plus like three wizards.
  289. Flora is a world where magic permeates everything, not just three dudes with beards. That's harder to design, but way more fun.
  290. For example, almost anyone can develop their own magical talent, even if they don't formally study magic. Like Cerise's ability to split.
  291. Cerise also makes potions from magical plants, without knowing anything about magic — like how a non-doctor can use lavender leaves for bug bites.
  292. The tech is modern, but I think of the economy as non-industrial, with a lot of individual crafters making and selling things on a small scale.
  293. I kinda touched on that with Bloom, who's looking for a specific magic sex toy. But there's no factory pumping them out, so they're kinda rare.
  294. I'm sure there's crafting magic to help mass-produce generic basics, like building materials, but that's all.
  295. And then there's the designed magic, which is the most interesting to me, but also the least explored.
  296. I LOVE magic that can go wrong in the kinds of naïve ways that software can, like the underage barrier Krypto got past.
  297. Fun fact: I wrote Lexy saying the barrier could be foiled three or four ways before realizing I had to make some up! So I did.
  298. And I love this idea that there's a huge barrier wall, cast by the city government, that ostensibly knows how to detect and repel minors...
  299. But actually that would be really hard, so it just checks your ID! Automating a boring task a person could do, the way a person would do it.
  300. Oh, I dunno if you noticed, but I never used "person" or "people" anywhere in the dialogue. Feels too much like it implies human?
  301. But that brings me to age, in a fantasy world. Species aging at different rates is an interesting concept to me, sociologically...
  302. ...but I definitely want to steer clear of like, "oh she looks like she's 8 but actually she's a 1000-year-old dragon." Or the reverse!
  303. Masked Papaya: Yeah, dude, that's why I never give explicit ages.
  304. I think that's a good call. Adulthood is the only relevant metric, even if it's different for fox people versus cat people or whatever.
  305. Gelbeasts are an interesting case, since they're technically plants, and "grow up" by shaping themselves in the image of an existing adult?
  306. So I didn't think they'd have a typical childhood and puberty. They don't even reproduce with genitals; those are just a fun part of the shape they copy.
  307. I came up with Ike's offhand comment about a short childhood while writing this game, so that's new canon, but it seems sensible to me.
  308. I didn't want anyone to think Cerise is actually toddler aged or something though, so there's a line where she says she's older than Krypto in real years.
  309. But... wait... that could mean she's been an adult for a decade or so longer than Lexy has? Is that a weird age gap? Oh noo...
  310. Masked Papaya: ...I think, you might be overthinking this.
  311. We've been yelled at for less!
  312. Masked Papaya: Okay, true.
  313. Then there's Krypto, who's the equivalent of a teenager. Again, no explicit ages, but Cerise notes that they're a couple years from adulthood.
  314. Which raises some questions that I tried very carefully to navigate.
  315. I didn't have much opportunity to go into it, but I hope it was clear that nudity is not unusual or uncommon in this world? Even outside fuck zones?
  316. Outside of horny contexts, Flora characters' genitals seem to vanish entirely. Like cartoon characters. No one knows why!
  317. And since boobs aren't as common, they aren't sexualized to such an extreme, so no one cares if they're covered or not.
  318. I hope that was clear enough and it doesn't seem like Cerise was flashing a minor all week. Especially since Alice, um, does sexualize them.
  319. But Alice sexualizes EVERYTHING, and I tried to make it clear (as always) that Alice is not someone whose behavior should be uncritically emulated.
  320. I also tried to make it seem like Alice is into boobs partly because they're uncommon and thus "exotic"? I dunno if that came across.
  321. I mean, ultimately, Krypto is a great game mechanic. The game is about scheduling to have the most sex, and you can't do it with Krypto there.
  322. And I thought Cerise's interactions with them were very... genuine? Like, what can you do? Physically force them out?
  323. I fully expect someone to get mad about them. But they're an existing character, they would totally act like this, and they make the game more interesting.
  324. Wow! I extremely don't want to talk about age any more. How about gender! Boy, there sure are a lotta girls, huh?
  325. Masked Papaya: Hey! There are four whole boys. That's, like... four many boys.
  326. Wow, that might be a new record.
  327. It's a shame that the usual "trans" icons didn't end up fitting the plot, but, there's a nice segue—
  328. I.. don't like referring to anyone as "trans" in a fantasy world like this, because it implies so much baggage?
  329. For example, Dorothy is a girl with a dick, but she's ALWAYS been a girl with a dick. Is she trans, despite never "crossing" anything?
  330. That feels like it reduces "trans" to being about genitals, which is unfortunate. It's not even accurate, since plenty of trans girls have vaginas!
  331. And I don't want people showing up to go, this isn't what being trans is ACTUALLY like, when that's not what we were trying to do anyway.
  332. I don't even like referring to myself as trans! I extremely don't want to deal with arguments over whether I'm doing it wrong or whatever.
  333. Christ, I've had people tell me I'm faking for attention, at a time when I had never once mentioned it publicly.
  334. People get so attached to labels, even though they're supposed to be descriptive, and then want to dictate what they "really" mean...
  335. Folks have called Masked Papaya transphobic for depicting a girl having sex without hating her dick? What a... bleak outlook to try to police creators into.
  336. I just want to play with shapes and pronouns and junk and see what happens. Play with our assumptions about bodies and what they "should" look like.
  337. And I don't think "trans" really captures that, since it's generally understood to refer to a lot of real-world culture and limitations.
  338. Like... Mellie shapeshifts a bit and ends up as a girl with boobs and a dick. That's what folks imagine "trans girl" to mean, and they describe porn that way.
  339. But Mellie gave herself the dick. It wasn't what she originally had. That's completely backwards from how a real-world girl transitions!
  340. Ike, too. It's only mentioned briefly during the game, but he can swap out basically any part of himself — including his junk.
  341. Or what about Lexy, who can outright turn herself into someone else's dick? How does that fit into real-world ideas about gender?
  342. Masked Papaya: Jaxi and Krypto are both non-binary, too.
  343. Oh, yeah, but we never see their junk. For all we know, they don't even have junk. Myre doesn't.
  344. ...
  345. I feel like if you pulled Krypto's pants down, you'd just find their smug-ass face a second time, and then it would laugh at you.
  346. Masked Papaya: They ARE a scrapgoat! They could make it happen.
  347. Hm.
  348. Well.
  349. What I'm trying to say basically is that gender is fake and it sucks when real-world people treat "trans" as just a new binary to enforce.
  350. ...
  351. Hey, how about them Lunekos? They're the "kittens" in kitten mode, which you should try out!
  352. They come from a moon, love to pest, and can show up anywhere. They're based on our cats and basically ignore all rules of the world, like we do.
  353. Also if you've seen Star Anise, please let me know, he stole my tablet pen.
  354.  
  355. -- Comments on some characters
  356. That's a pretty general question!
  357. I mention this when I talk about writing, but something I really worried about was giving every character a distinct voice, since there are so many of them?
  358. Cases like Claude are pretty easy, since he has a big obvious quirk of being shy and not very confident. What about everyone else?
  359. I was a little concerned that Ike wouldn't actually have a personality because I relied too heavily on his accent... I'm glad that didn't happen!
  360. I don't know how I'd describe him. I just wrote him how he seemed like he'd be. He's been in my head for a while and I guess he already knows what he's like.
  361. I love his rapport with Cerise. The two of them doing really corny sexy talk at each other and then laughing about it! Clearly they've been friends a while.
  362. He's a lot of fun! He's a hybrid of sea dragon and scrapgoat, and a detail I always loved about sea dragons was that their native language is "Shanty".
  363. I can't imagine what a whole distinct language like that might be like, but I've always imagined Ike sounding pirate-y because it's a Shanty accent!
  364. I tried to keep that sort of spirit in mind for everyone, since everyone would have their own cadence, dialect, word choices, or whatever.
  365. Even the laughs are pretty different, eheheh. And I consciously avoided a lot of my own typing quirks, like... well, you'll never unsee them if I tell you.
  366. Gosh, though, it was really fun to finally write Cerise doing something. She's always been a little tricky to get right in my head.
  367. I imagine her as a big sweetheart who just wants everyone to have a good time. Sex isn't even reproductive for her, it's purely for fun.
  368. How does that interact with someone who's into some extreme or serious thing? I think that's a really interesting setup.
  369. And I like how it came out! She does her best to play along, but she can't turn off being herself, and she knows it, and that's okay.
  370. God, though, Lexy's a huge pain in the ass.
  371. Masked Papaya: Oh, tell me about it.
  372. Hey, shush.
  373. Lexy wearing her collar is a dumping ground for all my kinks, or even passing interests, and a lot of those involve something... being done to her?
  374. A lot of my early art of her is very passive, where just, a thing is going on, and she has this "oh goodness, I'm in over my head this time!" face on.
  375. That became less satisfying over time, especially when Masked Papaya pointed it out. She wasn't ever DOING anything. What was SHE like?
  376. It took some Lexy smut from Masked Papaya to really show me what that looks like, and I guess all they really did was inject some of me into her.
  377. So now it's more like she very much knows what she wants and... tries to nudge it into happening. Like being bratty so someone will "get back" at her.
  378. I guess I'll touch on that more when I talk about kinks in particular!
  379. But writing her is so weird, because it's so easy to fall back onto "oh goodness". That doesn't make sense, isn't like her, and isn't like me.
  380. A couple times I ended up writing a scene where she acts all "oh goodness"... then going back and changing only HER dialogue.
  381. The exact same things still happen, the things she wanted in the first place, but she takes a more active role in ushering them along.
  382. And that makes more sense! A scene where someone does a big weird thing to her out of nowhere is kinda goofy, right? Who would do that?
  383. That's fine for one-off porn, but this is a story in a world. It's a lot more plausible if she sees it coming and helps it along.
  384. Which, I guess, exactly matches how I did the writing: I planned the scene, then went back and had her help cause it to happen. Hm.
  385. I did also worry a bit that I made her too much of a smartass when she deals with Krypto...
  386. Like, originally, she had a full box of dialogue for every single way past the barrier, explaining it. That seemed way overboard and I cut it out.
  387. Her entire personality is "likes to solve goofy problems in novel ways", though, and I hope I captured that. It, uh, is very familiar to me and all, so.
  388. Masked Papaya: ...
  389. Speaking of Krypto, oh goodness, they were quite something to write. It was like writing snark, but I turned off the snark filter and let them just be... mean.
  390. They were, ahem, based on some real experiences with some real people, some underage, some not. Might even have a couple direct quotes.
  391. I guess I might've also drawn from my own times as a snotty internet teen, way back in the day. How embarrassing...
  392. I think my favorite, um, mini-arc, is where they're explicitly hypocritical several times, then kind of own it against Lexy?
  393. They say something like, you care about the rules but I don't. And, wow! I played it for laughs up until that point, and suddenly, oh fuck.
  394. I think that line encapsulates something vital: they know EXACTLY what they're doing. Maybe being forced to admit it is a sign that Lexy knew, too.
  395. Wow, it's weird to be talking about characters and dialogue I wrote, as if their motivations were a mystery to me. Fiction is wild.
  396. Toyle was another tricky case. He's... well, he acts like a Bro, and he's really cocky and full of himself, but also completely harmless and knows it?
  397. That's quite a balancing act, to write him as kind of a douchebag, without making him a creep. I made sure he backed off instantly when told to, for example.
  398. I just hope he still came across as the comic relief he's supposed to be, and not as... I don't know, in any way threatening?
  399. Eheheh, it helps that his voice sounds like a clown sighing through a trumpet. It was designed for RPG Maker, which I guess plays voices differently!
  400. Masked Papaya: snrk
  401. Masked Papaya: Yeah, in the TTRPG demo he sounded more... not completely hilarious?
  402. I think I like him better this way.
  403. Oh, there's no sound commentary! I might as well touch on it here. I made a few of the voices!
  404. Lexy's and Cerise's were from fox flux. I made those with a variant of sfxr, which is meant for kinda 8-bit platformer effects, but makes for a nice tiny synth!
  405. It has several effects built in that would be slightly more tedious to attach separately, like pitch slide and an abrupt pitch shift.
  406. I used it for the heart and menu sounds, too. Even the overnight lullaby uses a sfxr sound as an instrument.
  407. But I figured I should branch out a bit, so I made some other voices with my favorite tracker, Sunvox.
  408. I made our removed guest, Bloom, Jaxi, and Vess in that order, mostly by plugging a basic synth into vibrato, reverb, and filter plugins.
  409. My favorite by far is Florbet, who I made last? She sounds like she has an actual trill to her voice, like a big lizard! It's super cool.
  410. I'm still fairly wet behind the ears with audio, but the handful of little things I did here came out pretty well.
  411. Okay, back to characters. Who else was really interesting to write... oh!
  412. Xenon! She's a blast! I don't get it at all, but her voice rolls out of my fingers. Just totally confident and shameless and interested in stuff.
  413. I love her speech quirk, which is exaggerated parallelism? Regular parallelism happens naturally anyway, and all I have to do is lean into it a bit.
  414. I wonder if it's even obvious! It feels very subtle, but is very much her.
  415. I'm a little sad that I had to cut her first line, where Cerise had forgotten her name, and she said: "I'm Xenon, and you're Cerise!"
  416. It was such a cute way of fitting the pattern, but for a legitimate purpose of letting Cerise know that she remembered her name.
  417. But then I wrote them as knowing each other, so it didn't make much sense. Oh well.
  418. Bloom was kind of hard to write, since she's a dom and I'm... uh... well, I've only dabbled.
  419. But her creator was delighted with how she came out, and then writing Florbet was really easy? Maybe having a handy sub to work with makes it easier.
  420. Like, Bloom trying to dom Cerise and Cerise mostly being "okay that sounds fun, sure!" is a hell of a dynamic. I'm not sure I've seen it before.
  421. Whereas Lexy's a huge slut who has no problem being owned so that all came really easily...
  422. Who else, who else. Jacklyn's always fun, the grumpy dog with a heart of gold. I got plenty of experience writing her with the Alice's Day Off demo.
  423. Alice, likewise. She's a blast to write. She just does absolutely whatever she wants. Any thought that comes to mind, I write down, and it's Alice.
  424. If you haven't, you should try talking to Alice while Krypto's around, both times Alice can show up. Her reaction is totally hilarious.
  425. Oh and I LOVE how Alice, Jacklyn, and Xenon all tell the story of Xenon's encounter with Alice a bit differently. Try to find all three!
  426. The goofiest character to write by far, though, is Masked Papaya.
  427. I mean, the whole point of these masked characters is to be explicit author stand-ins. But they aren't writing themselves! It's mostly me.
  428. That makes me think about how these ARE still characters, not actually us, so we can still use them as our own mouthpieces. Metafiction is also wild.
  429. I would write Masked Papaya saying something funny here, but I can't think of anything.
  430. Masked Papaya: Why... did... chicken... road.
  431. Sorry. I'll get that looked at.
  432.  
  433. -- Kinks and sex and whatnot
  434. Eheheh. Yeah we, uh, sure ended up with some stuff.
  435. I hope we didn't overdo it. I mean, the protagonist is basically a slime, half the cast compliments her belly, and then there's Friday.
  436. Masked Papaya: It's our game! It's fine to have our own kinks in it.
  437. I know! I just don't want to alienate people who are more looking for... cishet anime people sex.
  438. Masked Papaya: Why? Who gives a shit about them? I'm not pandering to someone else's vanilla ass.
  439. I don't want to either! Hmm, why DO I think about that.
  440. I guess it would feel bad if one of them played this game, which we poured ourselves into, and came away like "what was that weird garbage"?
  441. On the other hand, I LOVE weird garbage.
  442. Specifically, Lexy and her collar are my kink fuel, so all that stuff is... also my kink fuel.
  443. Having someone else physically alter your body to fit what they're horny for? Damn! That's just, endlessly fascinating.
  444. And then there's... permanence.
  445. See, a lot of people who draw or enjoy similar things are ALSO into making it explicitly permanent, often including having your mind wiped or something.
  446. I look at that and it just seems like death to me? If you aren't there in the moment, can't even reflect on it later... where's the fun in it?
  447. And yet, the THREAT of permanence is really interesting, because it plays on the helplessness, on being subject to someone else's whims.
  448. Now, troublesome kinks like that rely on a sort of implicit consent with the audience, who know that it's fiction and can just turn away.
  449. But when I go to write or draw something with Lexy, I'm putting myself in her shoes, so I don't like actual permanence even IN-universe.
  450. I've had to put a quirk in Lexy that I took a while to discover in myself: she also likes when it seems grave, but ONLY if she knows it's one big sham.
  451. I made her collar encapsulate that without even realizing it at the time. She's indestructible! Nothing can ever be permanent!
  452. So now everything involving her is this multi-layered fiction inside a fiction, where she likes if someone like Papaya threatens her with permanence...
  453. But only because she already knows that Papaya is messing with her, AND the collar would let her eject anytime anyway.
  454. It's such a strange line to be walking, but it results in porn with usually-dire themes, presented in a playful and lighthearted way.
  455. Especially when Cerise is involved, since she has a hard time even pretending to threaten anything!
  456. I stressed several times that she says things to Lexy purely because she knows Lexy likes to hear them. Lexy KNOWS it's a game, but Cerise ACTS like it is.
  457. Lexy is all horny for being told she'll be your dick forever, or whatever, and meanwhile Cerise sees right through her and thinks it's cute and charming.
  458. It's such a fascinating dynamic that I don't really see in a lot of porn that touches on stuff I like. I wish I did!
  459. So much of it is like, people being turned into brainwashed rubber drones against their will, or whatever. And it's so serious! Argh!
  460. It's so much more interesting to have someone turn their girlfriend into a "brainwashed" rubber drone, tease her about it all weekend, then let her go.
  461. Masked Papaya: Is it. I'll be sure to keep that in mind.
  462. Eheheh.
  463. I mean, Lexy's collar has the brainwashing built right in, right?
  464. I didn't get much room to explore that, but it's a lot of fun too. It doesn't just plain hypnotize her, just gently compels her to do particular things.
  465. And, again, that's so much more interesting to me, to have her still be meaningfully present while doing something she's embarrassed about.
  466. Um, but enough about me. Masked Papaya, what are your thoughts on your belly kink? Just DM them to me and I'll add them in.
  467. Masked Papaya: no eevee im not writing a paragraph about bellies for your game
  468. Wow! That's so interesting.
  469. Hey, I really like the tummy TF in the game. It's a great overlap between both of our interests, so we, ah, leaned into it. Twice!
  470. And it's really cute for Lexy to be used for somone else's actual kink.
  471. Masked Papaya: Used, huh?
  472. Ah, yes. Masked Papaya pointed out to me a while back that being "useful" is a big part of a lot of the stuff I like.
  473. So Friday is just a big celebration of the stuff we both enjoy. The "Adhere" route is superfluous; it's just there because I wanted it.
  474. Masked Papaya: She made a whole route just so she could get turned into Cerise's cock and stuffed up Papaya's ass.
  475. MAYBE it's time to talk about OTHER kinks in the game
  476. Consent was a low-key running theme, I suppose? Navigating it in this world where Cerise will fuck anyone who walks in, but some of them want power play.
  477. A lot of porn set in Flora has themes that are impossible in real life but common in fantasy porn... except this is a whole persistent world.
  478. So in a world where you CAN absorb someone, or eat part of them, or just walk around in public with a boner... how do you do it safely?
  479. I tried to give a glimpse of that. It leaks through a tiny bit with Lexy, who wants weird stuff done to her, but thinks asking will ruin it.
  480. So she has to get to know folks like Cerise pretty well and let them know the "rules" about when and what is okay to spring on her.
  481. But I think the best instance is when Papaya tries to get Cerise to do stuff to Quill.
  482. If Lexy isn't around, then Cerise will refuse! Because the stuff Quill likes would be awful to do to someone who DIDN'T like it. But she trusts Lexy.
  483. Geez, that sounds way heavier than when I actually wrote it. Let's... move on.
  484. I like applying light twists to otherwise vanilla stuff! I guess that's baseline normal for Cerise, since she's made of gel.
  485. But take like, Claude and Cerise? That's relatively mundane sex, but with a dash of sizeplay (if you squint a bit) and too-big insertion.
  486. The Mellie followup, too, is a vanilla topic but with lightly kinky framing. I love that kind of thing.
  487. And then... what the hell do you call the "correct" solution to Toyle? That's like a reverse kink. What a weird guy.
  488. That's about all I had to say! I hope the stuff you saw appealed to you.
  489. Or even better, I hope it didn't appeal to you, but now it does. That's my favorite kind of feedback on porn.
  490. Consider it, hm, real-life brainwashing.
  491.  
  492. [Talking to Papaya]
  493. Masked Papaya: Well, I guess that takes care of Krypto!
  494. And the fourth wall. And, like, the universe. Just because you couldn't get all up on Cerise's tummy...
  495. Masked Papaya: Hey, buddy, first of all—
  496. Masked Papaya: ...", "Isn't that just Lexy's voice? Didn't you make your own?
  497. I like this one! I'm still getting into sound, and I'm happy with how well this one came out.
  498. Masked Papaya: Hang on lemme just check something here.
  499. Masked Papaya: Ah, yes, "chatter-lexy-rubber.ogg". Of course.
  500. Hee hee. I did make it for fox flux, after all.
  501. Masked Papaya: And you're gonna rag on MY interests?
  502. Absolutely.
  503. Masked Papaya: Hey, maybe with all that time you saved not making yourself a voice, you could've let me use all the clips I sent you instead of just this one!!
  504. Eheheh. What does it say about you that you gave me nine voices for yourself, but one for everyone else?
  505. Masked Papaya: I... also gave you... two... for........... regular Papaya.
  506. Hey, you know what's funny? We have this whole side conversation because you heard my voice, but it only happens if they talk to you, not to me.
  507. If they talked to me first, you've already heard my voice, so this doesn't make any sense!
  508. Masked Papaya: You cracked the case, Veenix Wright. You figured out we're video game characters and this isn't actually a direct DM to both of us.
  509. I like the kinda liminal space you get when you write NPCs as though they were your real self.
  510. Masked Papaya: ...", "What the fuck was I even talking about?!
  511. Cerise's tummy?
  512. Masked Papaya: Oh, yeah. That's pretty good.
  513. Good enough to break the world for.
  514. Masked Papaya: Hey, buddy, I didn't do shit.
  515. There are only the two of us, and I didn't do it, which only leaves...
  516. Masked Papaya: My ass you didn't! You programmed the whole thing, even that glitch effect. You drew this background!
  517. Having us be here was your idea, though. And this only happens when you talk to Papaya.
  518. Masked Papaya: Yeah, and when you IGNORE LEXY. Now what does THAT say about YOU?
  519. Damn, I actually hadn't thought about that until right now, as I typed that line.
  520. But hey we sure did end up with a lot of characters who love Cerise's tum, huh!
  521. Masked Papaya: Hmmm I wonder how that happened.
  522. Your character designs are just irresistable, I guess. Even worth blowing the universe up for.
  523. You could say her tummy is... the bomb.
  524. Masked Papaya: ...", "Okay I'm deleting you next.
  525. No don't
  526. Masked Papaya: Oh, that reminds me. Player, I grant you the power to play through the whole game without Krypto!
  527. Masked Papaya: ...
  528. Masked Papaya: ahem
  529. ...
  530. Masked Papaya: AHEM
  531. What? Me?
  532. Masked Papaya: Yes, you! Who else? They can't talk to us!
  533. [A menu shows up. The options are "can too" and "..."]
  534. Masked Papaya: Oh, please, that doesn't count.
  535. Masked Papaya: Put no Krypto mode on the menu already!
  536. Okay. Beep, beep, boop, computer noises. I did it.
  537. Oh, I guess I'll let them come back here, too. Though we're not gonna have any new lines or anything.
  538. Masked Papaya: It's fine. Nowhere is timeless, so if they come back, it's the same as if they were here the first time.
  539. Yes, that makes sense and is consistent with ourselves as authors and thus cognizant of the passage of real world time.
  540. Masked Papaya: You have any better idea, smartass?
  541. Hmm. What if this really were a DM to us?
  542. Masked Papaya: no
  543. Masked Papaya: nope
  544. Masked Papaya: nuh-uh
  545. Masked Papaya: no way
  546. I'm kidding—
  547. Masked Papaya: not a chance
  548. Masked Papaya: nothing doing
  549. Masked Papaya: never happening
  550. Oh, by the way, I don't actually know what erasing Krypto does to the story. It was kind of a late addition.
  551. You definitely can't get a perfect score, since, well, Krypto doesn't exist, and they're part of the score.
  552. Masked Papaya: Who cares about score? I'm just sick of that little asshole getting in the way.
  553. You came up with them... and also drew all the illustrations, so it's not like you're missing much...
  554. In fact, here you go!
  555. [The art of Papaya grabbing Cerise's belly is shown, with a cat in the way.]
  556. Hey! Get outta the way!
  557. [The art stops being shown]
  558. Masked Papaya: No! I want to read the story!!! That's the whole point of the game!!!!!!!
  559. Aw...
  560. Masked Papaya: YES I LIKE YOUR WRITING I'VE SAID IT A THOUSAND TIMES ALREADY
  561. I dunno. Sounds fake.
  562. Masked Papaya: I thought "fake" was right up your alley, little miss rubber fox!
  563. Eheheh. I can't believe you've invented... Rubber Masked Lexy.
  564. Masked Papaya: It's for when you're in an authorial role, and also weird-horny.
  565. How convenient!
  566. So, wait, what happens if someone turns me into their dick or whatever now? Where does the mask go?
  567. Masked Papaya: How would I know? They get moon balls or three extra lives or something.
  568. What... are... moon balls?
  569. Masked Papaya: You wanna find out??
  570. Oh no please don't add more things to this game. I'm still trying to figure out what to do with Vess.
  571. In fact, how about we stop squabbling and you give some commentary!
  572. Masked Papaya: Okay.
  573. Really?
  574. Masked Papaya: You already made me write it, so you might as well put it in??
  575. Yeah! Okay, to be clear, this is the only part of any of this that Masked Papaya actually wrote.
  576. Masked Papaya: ...
  577. Masked Papaya: Oh... I guess it's my turn to come up with something to say. Or talk about. Or whatever.
  578. Masked Papaya: This is so hard. I just want to go back to making weird shit. Do you have any idea how much effort it took to just sit and draw porn for a few days?
  579. Masked Papaya: Totally not feeling it. I'd rather be wallowing in despair art. That's like, a way better time.
  580. Masked Papaya: Speaking of good times: I hope you appreciate my suggestion to remove Krypto from the game. I think it improves it vastly.
  581. Masked Papaya: You know, getting everyone to max happiness is kind of a waste of time. Why bother? Why bother, when you can just remove someone from existence? Perfect.
  582. Masked Papaya: Wow! Sorry. Just realized my comments are a lot less funny and endearing than Masked Lexy's over there.
  583. Masked Papaya: I'd probably have some hilarious japes if I weren't busy with my head stuck in nowhere.
  584. Masked Papaya: I've got a lot of problems to solve, and no time for obnoxious brats who revel in breaking the rules and subsequently punishing others for it.
  585. Masked Papaya: ...
  586. Masked Papaya: (I hope you like the extra effort I put into the Cerise sprites I made.)
  587. Aww... you think I'm endearing.
  588. Masked Papaya: Shut up.
  589. Oh, that's back to me putting words in their mouth.
  590. Masked Papaya: I think we can wrap this up now, right? They got what they came for.
  591. Yep! Come talk to me for some more funny and endearing comments.
Add Comment
Please, Sign In to add comment