Progress Update- stretching our orifices~ (Patreon)
Content
Getting into the squishy bits!
Also I have a coding stream starting in one hour!
To new patrons: We’re in the middle of an absurdly-long update cycle. Here’s the summary and how to access content.
What's being worked on?
Elastic orifices
How does an orifice... stretch? It's a weird question. Most times when there's a hole in something, it stays one size. Bodies are weird though. If you stretch open an orifice to fit something inside, that orifice doesn't usually gape open when that thing is removed. It's elastic. Except you can clench down to tighten it. And you can clench down tighter, even when it's already as closed as it can be.
So this was the subject of last stream and a good amount of thinking and brainstorming. There are a lot of elements at play: short-term elasticity vs long term plasticity (a word I'm using incorrectly), squeezing force, various thresholds of girth allowance, etc.
Luckily I ended up at the decision that most of the old stretching mechanics were pretty close to successful, and that I just needed to give them an upgrade with my new understanding rather than completely re-conceptualizing them. Thank goodness.
Still, looking at even a small chunk of the current elasticity classes gives me a bit of an existential crisis to remember that all I really wanted was to make a pretty pony game where you do fun squishy things ;-;
(values are hardcoded for testing)
How it's getting made
Everything right now is based around developing the tools to make penetration work properly. So there's all these little pieces of wisdom I've learned over the course of making this game that are now coming into play:
Wisdom #1: Build the debugger alongside the feature.
It sounds like an obviously good idea. It's also harder than it sounds. AND it's a good idea for more reasons than might be obvious.
I'm starting one of the most tricky parts of penetration- tracking the size of the toy/body part that's inside the orifice. Specifically, its size at the entrance of the orifice. So this involves a lots of pieces:
- the overall size/shape of the toy,
- the size of the orifice,
- the current depth of the toy in the orifice,
- what the game does to display that size. In this case, playing the stretching animation to widen the orifice to the correct size at its entrance.
- the orifice stretching and loosening up to accommodate the toy
- possibly the orifice resisting allowing the toy further in
What's insane is that in previous versions I never had the firmest handle on debugging this one, extremely important variable: the girth of an object at the entrance of an orifice.
Wisdom #2: Build a feature capable of being debugged.
Each part of the mechanic needs to be able to be displayed for me to see it's working properly, and allow me to use the dev tools to change and play around with it whenever. I can't succumb to the laziness of saying "I don't care how A-C happens, cause I'm just trying to make D work".
Nope. Doing it properly has forced me to do a bunch of great things:
- Put each piece of data about orifices into the database, so now the "orifice" mechanic it can be dynamically added to any item or body part and changed without code.
- Create it in the same way that my other well-built code is made. Following the project's patterns instead of just doing it whichever way seems to fit at the time.
- In following the patterns, this mechanic is exposed to all the previously-built utilities and debugging features I already made. So just... hook em up.
Wisdom #3: Build a debugger capable of growing with the feature.
I want to debug every little variable that I'm using, since orifice stretching is one the most complex and most used features in the game.
But... whoops, that means the debugger needs to be very simple and flexible or I'm gonna spend forever making and remaking things in it. I wanna shift around how things behave constantly. I can't be doing a ton of work to make this debugger each time I experiment with something. So it's gotta allow some quick and dirty code to slap together a fully functioning set of controls.
Not too hard. It took a day and now the previously stable-but-involved debugger components can now be used in a really hacky quick way. I can essentially scribble things down on a napkin in the debugger code and it'll work just fine. If it gets unwieldy, or I'm sure it's working the way I want, it can then be solidified into proper code in a minute or two.
Balance.
The results
So after all that, this one value has become a ton of pieces:
- A debugger capable of being easily built up/changed to shift any value around.
- Easily editable data in the database that allows freely changing how that value works for each character.
- Tying that one number to animations, actions, etc.
- Creating a completely separate set of systems to handle the "action" that creates this number.
We're coming along well. This'll boost the speed of the next steps. I can't wait to hook it up to the orifice animations and show off :3
Q&A
Will we be able to block certain emotions/sensations? An interesting question. I didn't consider tinkering with emotions to be a high priority, but technically that's already possible with the debugger. So, well, yeah! I'll try to expose all the dev tools to the players as well, so stuff like this is possible.
Can we induce body changes in characters? I very much plan to add this, yes. Maybe not immediately but I want it in. So this is separate from character customization. This is in-world body changes. It's not implemented yet, but this engine is built with the idea of doing stuff like this in mind. Changing bodies leads to all sorts of delicious fun!
As a reminder, here's the release checklist to track my progress!
... and that's all for now!
I continuously feel behind, and also like I'm plowing through the work super fast. It's hard not to despair a little when a week ends with nothing visual to show off. While many of you are incredibly supportive about the realities of a long dev cycle, it never leaves my head. I'm a content creator at heart. I want to show off content.
This week's stuff is actually finally gonna result in consistent visual progress though, once I'm fully past the foundations of it.
Thank you for supporting me throughout all this! I'm blown away at your continued excitement and support. I never would have dreamed that taking the time to do a game like this right would actually be viable. I can't thank you enough.
<3