Status Update 2
Been dead silent since the last post but, as you guys already know, I've been working on the sex framework, which is the last puzzle piece left for the next test version, I have finished working on what I call the "skeleton" of the sex scene framework, I had to plan how to implement it into the game to be as seamless as possible and at the same time easy-to-use, since not only me but modders will use the module as an "API" to create and control sex scenes during events in the game, still as you can tell, there is nothing substantial to show yet since there's a key part which it is not finished yet (sex scene actors script), hence this "Status Update" instead of a "content" devlog post.
I really wanted this "skeleton" for sex scenes to fulfill two main requirements:
Be as fluid as possible: Avoid game freezes/fps drops as much as possible
Be as flexible as possible: Allow customizable and extensible logic for each sex scene through addons
In theory, I think that I've fulfilled these two points considering the way I've designed it, still not everything is bullet-proof, that's why I said "in theory", because it is like a balance between these two points: the more addons running at the same time the more risk for fps drops, heavily depending on your machine.
Sex scene frame update code snippet
The sex framework allows to create and run any number of sex scenes at the same time (we are only limited to the size of the screen, which is way too small since it is RPG Maker VX Ace game after-all

), every sex scene (which are created with an unique ID: like "waitress_sex_interaction"), as soon as it is created it will run the frame update method, which will run a thread to synchronize itself with its own state.
Small note I forgot to say: I also had to remove all the functionality of the sex framework that made it scene-independent to make it future-proof, now the sex scenes are not updated within the engine frame update, instead, I have modified the scene super class (the base scene which is the parent of all scenes in the game) to make it scene-dependent, so now the sex scenes will run depending on whether the current game scene allows sex scene to run, basically all scenes are prohibited to run sex scenes except the battle scene and the map scene (which is the gameplay scene), in the future, other scenes like minigames like the waitress one or other ones I have planned will implement their own scene and allow sex scenes to occur in them.
To understand what I said here, I should explain what a "sex scene state" is, every sex scene creates its own state, which is something like
a representation of the dynamic information that changes during the sex scene playback, this state is what I have designed to separate the internal logic that is very sensitive from the actual information that can change, either by the user (you), by myself/modders or by addons automatically.
What is this "dynamic information"? you may ask, this information is, for example, the active actors participating in the sex scene, the position/slot each actor is using, the sex scene context, the list of animations available, the current animation, the sex tags, even the sex scene opacity, the sex scene playback speed, etc... Separating the state from the sex scene allows you to use the same sex scene instance for several actors, several contexts and other dialogue choices or events.
Like I said, everytime a sex scene state is changed, a sync routine is spawned by the sex scene, this routine is prepared to generate a snapshot of the current sex scene state and synchronize the sex scene to that snapshot, this snapshot design is really useful because, as the sex scene is synchronizing a snapshot, the sex scene state could be changing, which will result in another synchronization routine with another snapshot later on.
If you are tech-savvy, you may notice that the thread is created and ran regardless whether the sex scene is playing or not, this little thread here allows sex scenes to synchronize automatically whenever a change in the sex scene state is detected, so the synchronization process could be ran at the same time the sex scene is playing! This part right here achieves what I call the fluidity/smoothness I talked about above,
the sex scene is designed to always play a sex animation, if a state change is detected, it will keep playing the same animation meanwhile the game in the background (using threads) will synchronize the state, once the thread is done, in the next iteration the sex scene will change its active animation and show the new one.
Within the sync process, there are two types of synchronization:
major and
minor
- Major Sync: Triggers when a major change is detected in the sex scene, for example: the list of actors has changed, the context has changed, the list of tags has changed like going from vaginal sex to anal sex, etc...
- Minor Sync: Represents a minor change that does not need to run the most complex logic, for example: the current animation has changed, the opacity has changed, the sex animation speed has increased/decreased, etc...
Inside this "major sync" occurs probably the most time-consuming logic that a sex scene executes, which is preloading animations into the RAM. To ensure smoothness I need to preload sex animation into the RAM so the pictures files aka the bitmaps are accessible, BUT I cannot simply load all of them at the beginning of the game, like some modern RPG Maker games do nowadays, this is because the game allows modders to add new animations, this could potentially make the game consume LOTS of memory if there are a lot of animations installed and everything is preloaded at the beginning of the game, so instead of preloading them all, I just made the sex scene preload the list of possible animations (like preloading chunks of animations), which is way smaller in comparison to the whole sex animation registry.
The "minor sync" is used to synchronize any other data that is not time-consuming, like changing the animation, changing the sex scene opacity (transparency), changing the animation frame rate (increase/decrease speed), etc...
Here's a small code snippet of the thread sync method, this loop here updates the sex scene animation to allocate enough animation players for all overlays available for the selected animation:
Sex scene sync method overlay syncing code snippet
To ensure that the game does not abuse your RAM sticks (which are more valuable than ever right now

) I have created a new functionality in the sex framework, the
cleanup task, this task (which is configurable in the settings menu btw) will keep track of all used sex animations and free their resources once a timer (in real-life seconds) has passed and there are not sex scenes currently running.
Game sex scene settings page
There are others settings in the screenshot which may change in the future but I could give a short explanation of what they are:
- Climax Duration: Sets the time (in seconds) that an actor's orgasm will last in the sex scene
- Setting it up to 5.0 makes a climax event last for 5 real-life seconds
- This is really useful for addons (like the dirty talk system) and other things like some visual effects (a white flash on the screen)
- During this period a flag will be activated (climaxing) for each actor that is climaxing allowing to tweak the dialogue
- Adjustable Speed: Allows the user (you) and sex scene addons to adjust the sex scene speed and actors speed (frame rate).
I said they may change in the future because that is actually the part I'm currently working on! Which is basically how to represent an actor inside a sex scene, so yeah, I don't much to say here, just a few things that I 100% wanted to include, which are:
- Ability to allow/disallow climaxing for an actor
- This flag allows to disable orgasming for a specific actor, when this flag is enabled, this actor won't be able to ever reach climax in this sex scene
- Definitely useful for some edging sex scenes
- Sex act history per actor
- Each actor will remember what action they have performed during a sex scene, even when changing animations or tags
- An actor history will look like this:
- Actor A performed {VAGINAL_SEX} to Actor B
- Actor A performed {KISSING} to Actor B
- Actor A performed {WHATEVER_SEX_TAG} to Actor B
- Possible but not implemented: Add the ability to track the play time per sex act, for example: 24 seconds in VAGINAL_SEX, 10 seconds in KISSING, etc...
- Sex actor play time
- Tracks how much time an actor has been participating in the sex scene (expressed in game frames and in real-life seconds), useful for other addons like the pregnancy system addon to determine how much sperm is generated, or the arousal system addon to determine how much arousal to substract if a climax was reached.
- Sex actor pleasure modifiers
- Actors participating in the sex scene will gain pleasure points per sex scene tick
- You can tweak the base pleasure gain amount of points in the game settings (check screenshot above)
- This modifiers feature allows to extend the pleasure per tick formula using modifiers
- These modifiers can be registered by addons
- Addons like the arousal addon and the traits will influence the pleasure that an actor gains per sex scene tick
- For example:
- You could get a buff of pleasure if you are aroused enough
- You could get a debuff of pleasure if you are not aroused
- You could get a debuff of pleasure if the sex scene is aggressive and the actor does not have the "Consensual non-consent" trait
- You could get a debuff of pleasure if the actor is a sizequeen and the other actor has the trait "small penis"
- You get the idea...
- These modifiers could make you even lose pleasure instead of gaining it!
- If an actor is not getting aroused enough in a sex scene they won't ever reach climax as their pleasure will go down.
- Easily add/remove modifiers using an unique ID
- Each pleasure modifier is saved with an unique ID so they are easily added/removed
There are a few more things to talk about, but I don't want to do it now because they are either more complex to understand than the ones I've mentioned here, or they may change A LOT during development, such as the sex scene add-ons, one thing that I could confirm is that I want to allow the user (and modders) enabling or disabling specific sex scene add-ons for a sex scene, for example, you could want to disable the dirty talk add-on module because you want a sex scene to be silent or you don't want too much talking, you could do that in two ways:
- Enable/disable locally: Enables/disables a sex scene add-on temporally for a sex scene (using an in-game menu I will create later on).
- Enable/disable globally: Enables/disables a sex scene add-on globally, this sex scene add-on won't ever be used again until enabled again in the settings menu.
Since I started developing the framework, I was aiming to release v0.2 this Christmas, but honestly, I don't think it's going to be possible, I could still get it to work but I don't want to work against the clock on it to be honest, if everything I have planned goes smoothly I could get it, no promises though.
Like I said, there's more things to talk about because the sex framework is far from done, there are lots of other things that I want to add, like a sex scene controller menu where you can tweak sex scene during gameplay, adding new features like sex actions during sex (won't talk much about this yet) etc, none of this planned for v0.2 though, only for versions in the future.
Hopefully the next devlog is about how the sex framework is finished and I could talk about the next release, see ya'll soon.