Mod RPGM Sana Revamped [v0.1 Test, v0.1 Light Version] [WIP] [DevLog Thread]

5.00 star(s) 4 Votes

tygct

Member
Jun 6, 2017
176
1,041
447
These modifiers are pretty interesting too.
I wonder if there will be those that are relevant to tittyfucks (as I'll be, without a doubt, making Sana into a paizuri and nipplefuck only obsessed woman).
And sex stats, i.e how many times her tits've got inseminated is also an addition I'm very happy to hear about. All in all, nicely going, kind sir!
I definitely want to include as many traits as possible, I already have like 40 traits planned, most of them are simple traits like: sensitive ass, sensitive boobs, etc... which affects pleasure points if the sensitive body part is affected.

There are other traits related to game progression and shaping up the character (roleplay related), like the cheater trait, infertile, exhibitionist... some of them are unique traits unlocked by certain quests or items.

I've planned traits like: "loves anal sex" and "loves vaginal sex", I could include tittyfucks in here too, no promises though since this part of the game will be developed in v0.3.
 

Ryuna_the_2nd

Newbie
Aug 16, 2024
39
250
182
These modifiers are pretty interesting too.
I wonder if there will be those that are relevant to tittyfucks (as I'll be, without a doubt, making Sana into a paizuri and nipplefuck only obsessed woman).
And sex stats, i.e how many times her tits've got inseminated is also an addition I'm very happy to hear about. All in all, nicely going, kind sir!
Nipple fuck...
Hm yes i need to add that for the list of CGs to make
 

AntiVeraX

Member
Mar 17, 2018
388
886
348
This was asked before and if I recall correctly they said that we should 'better' wait for a release (guessing 0.2 but it was YEARS ago now lol). Dunno if that statement changed... :D
 

tygct

Member
Jun 6, 2017
176
1,041
447
I was just reminded about this, but were the redone original sprites completed? I know there's also new art on the way, but since I haven't played the original in forever, could be fun with the buffed Sana
+1 to this, genuine question and it's been awhile since then.
pretty please Ryuna_the_2nd :4Head:
Ryuna is currently alternating between original CGs and new ones, redoing the original sprites which needed an urgent improvement and drawing new CGs, I'm getting spoiled in the DMs with new WIP art and I can tell you guys gonna love it, I already have written a few events for some of them, I believes he does not like to spoiler them so you guys will need to wait.

We are both working at our own pace, Ryuna goes AFK for some time and comes back with new art, thanks to the way I'm designing the sex scene framework, he does not need to wait for me to create/write new events, he can just draw any new CGs with Sana, whatever it might be: handjobs, blowjobs, vaginal, rimjobs, missionary, cowgirl, doggy, etc... Whatever he wants to do.

When I'm creating the events, I can just do a few function calls like:
- sex_tags("vaginal_sex")
- sex_actors("sana@1", "sana@2"); # Player and Sana
- sex_play
- *The rest of the event goes here*
- sex_stop
- sex_dispose # Frees the sex scene once done
And the sex framework will pick up the actors and tags and show the appropiate animation from a list of possible animations (could 5 anims, 10 anims, 40 anims, etc...).

There are some exceptions like the waitress minigame and other story-based events, where he needs to wait for me until I can reach that point in development.
 

tygct

Member
Jun 6, 2017
176
1,041
447
This was asked before and if I recall correctly they said that we should 'better' wait for a release (guessing 0.2 but it was YEARS ago now lol). Dunno if that statement changed... :D
Hey, long time no see! yeah... it is better to wait for the v1.0 which will be the completed game and the version I will share in the Games subforum here.

TLDR of everything until now: v0.2 will be the actual first test version of the game, v0.1 was just a proof-of-concept of me messing around with the engine, pretty much the 100% of the game's code has changed between v0.1 and v0.2 (like for real, I don't think I have left anything the same between these two versions).

This new version is more future-proof for the rest of the development and lays the foundation of the game (the mod system and the sex framework being the most complex), I expect shorter development time periods once v0.2 milestone is reached, except some features which will need a lot of attention from my part like the new battle system.

v0.2 won't have any events related to the actual game and won't feature anything story-related of what I have written in my documents where I'm writing the storylines and quests, it will just feature a small event (non-canon if you will) to test the current systems available, so none of the test versions will have real content, and saves won't be compatible of course.

v0.2 will have some content missing from the roadmap I've published some time ago, these will be the hooks, which is the part of the code that communicates other systems with the sex framework, like the pregnancy system, the sex diary, etc..., that's because I'd rather wait until I have a solid implementation of the sex scene addons before doing them.

Sex scene add-ons (hooks) situation (dramatized) with my paint skills:
state.png

As soon as v0.2 is released I'm starting with v0.3.

TLDR of the TLDR :p : Test versions won't have anything about the real game, I will use them to test the systems I've implemented and the game's mechanics, once I'm comfortable with what I have, I will start developing the v1.0 of the game, by that time I will release nightly versions of the game, if you are not familiar with this it is basically automatic builds of the latest source code some people I trust and wants to be a tester will be able to download and play, just for testing purposes before v1.0 is released.
 

wackop

Member
Feb 21, 2022
168
426
248
Hey, long time no see! yeah... it is better to wait for the v1.0 which will be the completed game and the version I will share in the Games subforum here.

TLDR of everything until now: v0.2 will be the actual first test version of the game, v0.1 was just a proof-of-concept of me messing around with the engine, pretty much the 100% of the game's code has changed between v0.1 and v0.2 (like for real, I don't think I have left anything the same between these two versions).

This new version is more future-proof for the rest of the development and lays the foundation of the game (the mod system and the sex framework being the most complex), I expect shorter development time periods once v0.2 milestone is reached, except some features which will need a lot of attention from my part like the new battle system.

v0.2 won't have any events related to the actual game and won't feature anything story-related of what I have written in my documents where I'm writing the storylines and quests, it will just feature a small event (non-canon if you will) to test the current systems available, so none of the test versions will have real content, and saves won't be compatible of course.

v0.2 will have some content missing from the roadmap I've published some time ago, these will be the hooks, which is the part of the code that communicates other systems with the sex framework, like the pregnancy system, the sex diary, etc..., that's because I'd rather wait until I have a solid implementation of the sex scene addons before doing them.

Sex scene add-ons (hooks) situation (dramatized) with my paint skills:
View attachment 5511648

As soon as v0.2 is released I'm starting with v0.3.

TLDR of the TLDR :p : Test versions won't have anything about the real game, I will use them to test the systems I've implemented and the game's mechanics, once I'm comfortable with what I have, I will start developing the v1.0 of the game, by that time I will release nightly versions of the game, if you are not familiar with this it is basically automatic builds of the latest source code some people I trust and wants to be a tester will be able to download and play, just for testing purposes before v1.0 is released.
Yes this post was very much needed to clear alot of things up. Thank you! ❤
 
  • Like
Reactions: tygct

Ryuna_the_2nd

Newbie
Aug 16, 2024
39
250
182
+1 to this, genuine question and it's been awhile since then.
pretty please Ryuna_the_2nd :4Head:
Actually yea, i was thinking of doing this but as long as its good with tygct i can do it, maybe i will, but we're almost close to finally having a test run lol
Some of them werent fully redone since they looked fine
(Also i MIGHT retouch some CGs again cuz ive improved more than i have when i originally started helping)
 

tygct

Member
Jun 6, 2017
176
1,041
447
Actually yea, i was thinking of doing this but as long as its good with tygct i can do it, maybe i will, but we're almost close to finally having a test run lol
Some of them werent fully redone since they looked fine
(Also i MIGHT retouch some CGs again cuz ive improved more than i have when i originally started helping)
You can do anything you want sir, I don't like imposing things to other people, I've liked pretty much every new piece of art you sent me, if you feel like replacing old art completely do it, as long as you are sure you won't burn yourself in the process it is fine by me, I don't think I could replace them using my paint skills lol.

I'll talk to you later about the little event I want to do for the v0.2 test release, I may need a few CGs to properly test the system, maybe a blowjob and a vaginal sex CGs.
 

tygct

Member
Jun 6, 2017
176
1,041
447
is trello page dead?
You could say that, yes lol. I did not have time to keep updating it as I progress in development, but don't pay attention to the "In Progress" tab, since most of them are already finished, some pushed for later updates and some discarded since they are not needed anymore, I guess laziness got the better of me and I stopped updating it.

Anyways, as good and complete as it looks now, the trello board is due to an overhaul, I will resume using it once v0.2 is released but I'll make it easier to maintain, like smaller cards with short descriptions, and remove the changelog part from it (New Features, New Changes, Game and Test releases tabs), I'll probably keep the bugs tab, all of the planned ideas and the "in progress" features tabs, I'll add a new "Done" tab to move tasks from "In Progress" to "Done", I think this will make the Trello board easy to understand and maintain.
 

tygct

Member
Jun 6, 2017
176
1,041
447
End of Year Update

Hey people! So... good news and bad news, first, the bad ones.

Bad news

As you can probably tell, the v0.2 won't release by the end of the year like I have planned, obviously I found some problems which I still need to deal with before releasing the next test version, these problems ain't got nothing to do with the sex scene framework (thankfully), it is something else and it was bad enough to take my attention.

I've investigating this issue for the past week and the root of the problem was that, injecting scripts into the game was causing lots of unexpected problems when starting a new game (or loading a save) and going back to the menu to start a new one, at first I thought that the problem was with the mods I was using to test the mod system and not with the engine itself, but then, I discovered a "rabbit hole" that I did not "notice" earlier.

This "rabbit hole" causes what it is called "undefined behavior" in the game, this problem occurs for two reasons:

  • Script injection
I saw this problem coming back when I made the mod system, I designed the mod system to allow the user not to reload the game when a mod with scripts is disabled (event-based mods), but that requires a lot of effort, not only in my part but on the modders' too, certain mods may inject scripts into the game that requires a full restart, because they might add a lot of new things (or touch parts of the code that should not be modified) and break the game.

So I have decided to change this to make the game mod system more robust, I gave up on this idea and I'll force a reload if one or more mods with scripts are loaded, I still need to add a window about this in the menu where you manage the mods but it will be done, eventually.

  • Non-standardized lifecycle
Mods that injects scripts into the game has an undefined lifecycle, this is not bad per-se, because it requires the modder to decide how to handle whatever they are adding to the game (I dunno, like a reputation system, a fame system, whatever....), but when it comes to interact with certain parts of my code (like the game map, or the player) it provokes lots of synchronization issues, because, since they don't have the same lifecycle, they don't "behave the same" in a orderly manner, for example:

> Modder A creates a mod that adds visual effects on the current map.
> Modder B creates a mod that zooms into the current map.
> Both modder A and B needs to know when the game is started, either by loading a save or starting a new game to create their effects.
> The user starts a new game.
> Modder A fights with Modder B to decide who is the first that modifies the current map instance.

See the problem? Some times Modder A will win this race and update the map before Modder B does it, and this is not a problem because they don't really depend on each other, but what if Modder A requires that Modder B applies their changes before applying theirs?

That's why I decided to standardize the way game objects are created into the game and control their life during important events in the game, check out below.

Good news

I have made some important changes into the game, first of all, game objects in the game must follow a standard, this standard is called "Entity".

An entity is something like an object in the game, something that must exist during the whole game runtime and perform whatever they are doing in a ordered manner.

The entities will use hooks to run critical parts of their code when something important happens in the game, for example: starting a new game.

I also dealt with code priorities using a method #hook_dependencies(...), which will determine the order to run the hooks based on the dependencies each entity defines, so for example, if I need the game player to execute some code when a game starts BUT I need the game map to do it before the game player does it, the game player will define that their game start hook depends on the game map game start hook, so the game will run the game map hook before the players'.
entity.png
Entity interface

entity-hooks.png
Entity hooks

I also separated the capability to be serialized (saved into a savefile) from the entity, because not all entities must persist in the game, modders will decide whether their entities are saved into the savefile or not.

I have made some other changes, now the module that handles the savefiles in the game won't allow overwriting entities that shares the same ID, I have decided to do this to prioritize the savefile health above everything else, avoiding possible corruption if a badly designed mod is installed.

I don't want to bore you guys with code updates, so lets skip to the better-better (more visually pleasing) news.

I have made a little modification in the mod manager menu to reflect which mods include scripts, nothing to mind-blowing but Quality-of-Life rules.

mod-menu.png
Notice the little "*" in the mod's name? That means that mod will inject scripts into the game (if it is enabled). Any other mod that does not have that will be safe to enable/disable as many times as you need, for example, mods that add static data like animations, events, or language packages, etc...

You may also have noticed that the window looks different, well, I have added new settings:
settings-menu.png
Nothing too crazy, something that 99% of games made in RPG Maker has, you can tweak the window's tone and you can have your dark-mode UI in the game now! Also you can tweak the game notification opacity, by default it is set to be transparent but if for some reason you want a background, there you have it.

I have finished integrating the animation system into the game, this is a key part not only because now you can play basic animations that are not sexual but also because the sex scene framework heavily depends on this, check out this video below:

The basics of the animation playback are implemented as you can see, you can tweak the position, visibility, playback frame rate, speed, etc...

One of the latest changes I've made is that I have separated the playback speed from the animation frame-rate, now the speed is determined by a factor that it is applied to the animation playback (0.5x makes the animation slower, 2.0x faster...), it allows me to slow down the animation to less than 1 frame (or speed it up a lot).

The sex scene framework uses this internally to play the sex animation, and not only does that but also it allows to insert any number of overlays dinamically sync'ed to the animation, also everything you saw in the video will be able to be tweaked by addons, some things like speed will affect the pleasure each actor gets during the sex scene, I already have some cool ideas for sex scene addons in the future, you'll see...

There are other things that I might implement eventually, like animation flashing, animation waving or changing the angle, but for a first version it is decent enough!

Other irrelevant information

In other news you might not care at all, I have wondered how big the sex scene framework currently is, so I have used a little tool to count the number of scripts I have done, and man, I did not expect the result to be honest.

lines-framework.png

It sits at 42 script files, still it is not finished, so it may increase or even decrease if I end up deprecating parts of the code for something better.

For reference, the mod system currently sits at 75 scripts, there are a lot of files compared to the lines of code because there is a lot of inheritance and polymorphism involved, there also some other scripts not counted because they are in the game-scope instead of the engine.

lines-mod-system.png

So yeah... That's all, Once v0.2 is released I'll update the Trello board and the roadmap I did to reflect the changes, for now, I wish you a happy new year and happy gaming!
 
Mar 6, 2022
29
59
188
End of Year Update

Hey people! So... good news and bad news, first, the bad ones.

Bad news

As you can probably tell, the v0.2 won't release by the end of the year like I have planned, obviously I found some problems which I still need to deal with before releasing the next test version, these problems ain't got nothing to do with the sex scene framework (thankfully), it is something else and it was bad enough to take my attention.

I've investigating this issue for the past week and the root of the problem was that, injecting scripts into the game was causing lots of unexpected problems when starting a new game (or loading a save) and going back to the menu to start a new one, at first I thought that the problem was with the mods I was using to test the mod system and not with the engine itself, but then, I discovered a "rabbit hole" that I did not "notice" earlier.

This "rabbit hole" causes what it is called "undefined behavior" in the game, this problem occurs for two reasons:

  • Script injection
I saw this problem coming back when I made the mod system, I designed the mod system to allow the user not to reload the game when a mod with scripts is disabled (event-based mods), but that requires a lot of effort, not only in my part but on the modders' too, certain mods may inject scripts into the game that requires a full restart, because they might add a lot of new things (or touch parts of the code that should not be modified) and break the game.

So I have decided to change this to make the game mod system more robust, I gave up on this idea and I'll force a reload if one or more mods with scripts are loaded, I still need to add a window about this in the menu where you manage the mods but it will be done, eventually.

  • Non-standardized lifecycle
Mods that injects scripts into the game has an undefined lifecycle, this is not bad per-se, because it requires the modder to decide how to handle whatever they are adding to the game (I dunno, like a reputation system, a fame system, whatever....), but when it comes to interact with certain parts of my code (like the game map, or the player) it provokes lots of synchronization issues, because, since they don't have the same lifecycle, they don't "behave the same" in a orderly manner, for example:

> Modder A creates a mod that adds visual effects on the current map.
> Modder B creates a mod that zooms into the current map.
> Both modder A and B needs to know when the game is started, either by loading a save or starting a new game to create their effects.
> The user starts a new game.
> Modder A fights with Modder B to decide who is the first that modifies the current map instance.

See the problem? Some times Modder A will win this race and update the map before Modder B does it, and this is not a problem because they don't really depend on each other, but what if Modder A requires that Modder B applies their changes before applying theirs?

That's why I decided to standardize the way game objects are created into the game and control their life during important events in the game, check out below.

Good news

I have made some important changes into the game, first of all, game objects in the game must follow a standard, this standard is called "Entity".

An entity is something like an object in the game, something that must exist during the whole game runtime and perform whatever they are doing in a ordered manner.

The entities will use hooks to run critical parts of their code when something important happens in the game, for example: starting a new game.

I also dealt with code priorities using a method #hook_dependencies(...), which will determine the order to run the hooks based on the dependencies each entity defines, so for example, if I need the game player to execute some code when a game starts BUT I need the game map to do it before the game player does it, the game player will define that their game start hook depends on the game map game start hook, so the game will run the game map hook before the players'.
View attachment 5577090
Entity interface

View attachment 5577091
Entity hooks

I also separated the capability to be serialized (saved into a savefile) from the entity, because not all entities must persist in the game, modders will decide whether their entities are saved into the savefile or not.

I have made some other changes, now the module that handles the savefiles in the game won't allow overwriting entities that shares the same ID, I have decided to do this to prioritize the savefile health above everything else, avoiding possible corruption if a badly designed mod is installed.

I don't want to bore you guys with code updates, so lets skip to the better-better (more visually pleasing) news.

I have made a little modification in the mod manager menu to reflect which mods include scripts, nothing to mind-blowing but Quality-of-Life rules.
Notice the little "*" in the mod's name? That means that mod will inject scripts into the game (if it is enabled). Any other mod that does not have that will be safe to enable/disable as many times as you need, for example, mods that add static data like animations, events, or language packages, etc...

You may also have noticed that the window looks different, well, I have added new settings:
Nothing too crazy, something that 99% of games made in RPG Maker has, you can tweak the window's tone and you can have your dark-mode UI in the game now! Also you can tweak the game notification opacity, by default it is set to be transparent but if for some reason you want a background, there you have it.

I have finished integrating the animation system into the game, this is a key part not only because now you can play basic animations that are not sexual but also because the sex scene framework heavily depends on this, check out this video below:

The basics of the animation playback are implemented as you can see, you can tweak the position, visibility, playback frame rate, speed, etc...

One of the latest changes I've made is that I have separated the playback speed from the animation frame-rate, now the speed is determined by a factor that it is applied to the animation playback (0.5x makes the animation slower, 2.0x faster...), it allows me to slow down the animation to less than 1 frame (or speed it up a lot).

The sex scene framework uses this internally to play the sex animation, and not only does that but also it allows to insert any number of overlays dinamically sync'ed to the animation, also everything you saw in the video will be able to be tweaked by addons, some things like speed will affect the pleasure each actor gets during the sex scene, I already have some cool ideas for sex scene addons in the future, you'll see...

There are other things that I might implement eventually, like animation flashing, animation waving or changing the angle, but for a first version it is decent enough!

Other irrelevant information

In other news you might not care at all, I have wondered how big the sex scene framework currently is, so I have used a little tool to count the number of scripts I have done, and man, I did not expect the result to be honest.

It sits at 42 script files, still it is not finished, so it may increase or even decrease if I end up deprecating parts of the code for something better.

For reference, the mod system currently sits at 75 scripts, there are a lot of files compared to the lines of code because there is a lot of inheritance and polymorphism involved, there also some other scripts not counted because they are in the game-scope instead of the engine.


So yeah... That's all, Once v0.2 is released I'll update the Trello board and the roadmap I did to reflect the changes, for now, I wish you a happy new year and happy gaming!
Thank you for your hard work. Have great holidays, and Happy New Year!
 

DOOM9780

Newbie
Nov 5, 2019
48
20
69
End of Year Update

Hey people! So... good news and bad news, first, the bad ones.

Bad news

As you can probably tell, the v0.2 won't release by the end of the year like I have planned, obviously I found some problems which I still need to deal with before releasing the next test version, these problems ain't got nothing to do with the sex scene framework (thankfully), it is something else and it was bad enough to take my attention.

I've investigating this issue for the past week and the root of the problem was that, injecting scripts into the game was causing lots of unexpected problems when starting a new game (or loading a save) and going back to the menu to start a new one, at first I thought that the problem was with the mods I was using to test the mod system and not with the engine itself, but then, I discovered a "rabbit hole" that I did not "notice" earlier.

This "rabbit hole" causes what it is called "undefined behavior" in the game, this problem occurs for two reasons:

  • Script injection
I saw this problem coming back when I made the mod system, I designed the mod system to allow the user not to reload the game when a mod with scripts is disabled (event-based mods), but that requires a lot of effort, not only in my part but on the modders' too, certain mods may inject scripts into the game that requires a full restart, because they might add a lot of new things (or touch parts of the code that should not be modified) and break the game.

So I have decided to change this to make the game mod system more robust, I gave up on this idea and I'll force a reload if one or more mods with scripts are loaded, I still need to add a window about this in the menu where you manage the mods but it will be done, eventually.

  • Non-standardized lifecycle
Mods that injects scripts into the game has an undefined lifecycle, this is not bad per-se, because it requires the modder to decide how to handle whatever they are adding to the game (I dunno, like a reputation system, a fame system, whatever....), but when it comes to interact with certain parts of my code (like the game map, or the player) it provokes lots of synchronization issues, because, since they don't have the same lifecycle, they don't "behave the same" in a orderly manner, for example:

> Modder A creates a mod that adds visual effects on the current map.
> Modder B creates a mod that zooms into the current map.
> Both modder A and B needs to know when the game is started, either by loading a save or starting a new game to create their effects.
> The user starts a new game.
> Modder A fights with Modder B to decide who is the first that modifies the current map instance.

See the problem? Some times Modder A will win this race and update the map before Modder B does it, and this is not a problem because they don't really depend on each other, but what if Modder A requires that Modder B applies their changes before applying theirs?

That's why I decided to standardize the way game objects are created into the game and control their life during important events in the game, check out below.

Good news

I have made some important changes into the game, first of all, game objects in the game must follow a standard, this standard is called "Entity".

An entity is something like an object in the game, something that must exist during the whole game runtime and perform whatever they are doing in a ordered manner.

The entities will use hooks to run critical parts of their code when something important happens in the game, for example: starting a new game.

I also dealt with code priorities using a method #hook_dependencies(...), which will determine the order to run the hooks based on the dependencies each entity defines, so for example, if I need the game player to execute some code when a game starts BUT I need the game map to do it before the game player does it, the game player will define that their game start hook depends on the game map game start hook, so the game will run the game map hook before the players'.
View attachment 5577090
Entity interface

View attachment 5577091
Entity hooks

I also separated the capability to be serialized (saved into a savefile) from the entity, because not all entities must persist in the game, modders will decide whether their entities are saved into the savefile or not.

I have made some other changes, now the module that handles the savefiles in the game won't allow overwriting entities that shares the same ID, I have decided to do this to prioritize the savefile health above everything else, avoiding possible corruption if a badly designed mod is installed.

I don't want to bore you guys with code updates, so lets skip to the better-better (more visually pleasing) news.

I have made a little modification in the mod manager menu to reflect which mods include scripts, nothing to mind-blowing but Quality-of-Life rules.
Notice the little "*" in the mod's name? That means that mod will inject scripts into the game (if it is enabled). Any other mod that does not have that will be safe to enable/disable as many times as you need, for example, mods that add static data like animations, events, or language packages, etc...

You may also have noticed that the window looks different, well, I have added new settings:
Nothing too crazy, something that 99% of games made in RPG Maker has, you can tweak the window's tone and you can have your dark-mode UI in the game now! Also you can tweak the game notification opacity, by default it is set to be transparent but if for some reason you want a background, there you have it.

I have finished integrating the animation system into the game, this is a key part not only because now you can play basic animations that are not sexual but also because the sex scene framework heavily depends on this, check out this video below:

The basics of the animation playback are implemented as you can see, you can tweak the position, visibility, playback frame rate, speed, etc...

One of the latest changes I've made is that I have separated the playback speed from the animation frame-rate, now the speed is determined by a factor that it is applied to the animation playback (0.5x makes the animation slower, 2.0x faster...), it allows me to slow down the animation to less than 1 frame (or speed it up a lot).

The sex scene framework uses this internally to play the sex animation, and not only does that but also it allows to insert any number of overlays dinamically sync'ed to the animation, also everything you saw in the video will be able to be tweaked by addons, some things like speed will affect the pleasure each actor gets during the sex scene, I already have some cool ideas for sex scene addons in the future, you'll see...

There are other things that I might implement eventually, like animation flashing, animation waving or changing the angle, but for a first version it is decent enough!

Other irrelevant information

In other news you might not care at all, I have wondered how big the sex scene framework currently is, so I have used a little tool to count the number of scripts I have done, and man, I did not expect the result to be honest.

It sits at 42 script files, still it is not finished, so it may increase or even decrease if I end up deprecating parts of the code for something better.

For reference, the mod system currently sits at 75 scripts, there are a lot of files compared to the lines of code because there is a lot of inheritance and polymorphism involved, there also some other scripts not counted because they are in the game-scope instead of the engine.


So yeah... That's all, Once v0.2 is released I'll update the Trello board and the roadmap I did to reflect the changes, for now, I wish you a happy new year and happy gaming!
We're thankful as it is that someone is giving their all to give others a better experience of the game, So thanks for that, We'll be waiting.
 

Randomguy001

Newbie
Dec 30, 2022
36
15
159
End of Year Update

Hey people! So... good news and bad news, first, the bad ones.

Bad news

As you can probably tell, the v0.2 won't release by the end of the year like I have planned, obviously I found some problems which I still need to deal with before releasing the next test version, these problems ain't got nothing to do with the sex scene framework (thankfully), it is something else and it was bad enough to take my attention.

I've investigating this issue for the past week and the root of the problem was that, injecting scripts into the game was causing lots of unexpected problems when starting a new game (or loading a save) and going back to the menu to start a new one, at first I thought that the problem was with the mods I was using to test the mod system and not with the engine itself, but then, I discovered a "rabbit hole" that I did not "notice" earlier.

This "rabbit hole" causes what it is called "undefined behavior" in the game, this problem occurs for two reasons:

  • Script injection
I saw this problem coming back when I made the mod system, I designed the mod system to allow the user not to reload the game when a mod with scripts is disabled (event-based mods), but that requires a lot of effort, not only in my part but on the modders' too, certain mods may inject scripts into the game that requires a full restart, because they might add a lot of new things (or touch parts of the code that should not be modified) and break the game.

So I have decided to change this to make the game mod system more robust, I gave up on this idea and I'll force a reload if one or more mods with scripts are loaded, I still need to add a window about this in the menu where you manage the mods but it will be done, eventually.

  • Non-standardized lifecycle
Mods that injects scripts into the game has an undefined lifecycle, this is not bad per-se, because it requires the modder to decide how to handle whatever they are adding to the game (I dunno, like a reputation system, a fame system, whatever....), but when it comes to interact with certain parts of my code (like the game map, or the player) it provokes lots of synchronization issues, because, since they don't have the same lifecycle, they don't "behave the same" in a orderly manner, for example:

> Modder A creates a mod that adds visual effects on the current map.
> Modder B creates a mod that zooms into the current map.
> Both modder A and B needs to know when the game is started, either by loading a save or starting a new game to create their effects.
> The user starts a new game.
> Modder A fights with Modder B to decide who is the first that modifies the current map instance.

See the problem? Some times Modder A will win this race and update the map before Modder B does it, and this is not a problem because they don't really depend on each other, but what if Modder A requires that Modder B applies their changes before applying theirs?

That's why I decided to standardize the way game objects are created into the game and control their life during important events in the game, check out below.

Good news

I have made some important changes into the game, first of all, game objects in the game must follow a standard, this standard is called "Entity".

An entity is something like an object in the game, something that must exist during the whole game runtime and perform whatever they are doing in a ordered manner.

The entities will use hooks to run critical parts of their code when something important happens in the game, for example: starting a new game.

I also dealt with code priorities using a method #hook_dependencies(...), which will determine the order to run the hooks based on the dependencies each entity defines, so for example, if I need the game player to execute some code when a game starts BUT I need the game map to do it before the game player does it, the game player will define that their game start hook depends on the game map game start hook, so the game will run the game map hook before the players'.
View attachment 5577090
Entity interface

View attachment 5577091
Entity hooks

I also separated the capability to be serialized (saved into a savefile) from the entity, because not all entities must persist in the game, modders will decide whether their entities are saved into the savefile or not.

I have made some other changes, now the module that handles the savefiles in the game won't allow overwriting entities that shares the same ID, I have decided to do this to prioritize the savefile health above everything else, avoiding possible corruption if a badly designed mod is installed.

I don't want to bore you guys with code updates, so lets skip to the better-better (more visually pleasing) news.

I have made a little modification in the mod manager menu to reflect which mods include scripts, nothing to mind-blowing but Quality-of-Life rules.
Notice the little "*" in the mod's name? That means that mod will inject scripts into the game (if it is enabled). Any other mod that does not have that will be safe to enable/disable as many times as you need, for example, mods that add static data like animations, events, or language packages, etc...

You may also have noticed that the window looks different, well, I have added new settings:
Nothing too crazy, something that 99% of games made in RPG Maker has, you can tweak the window's tone and you can have your dark-mode UI in the game now! Also you can tweak the game notification opacity, by default it is set to be transparent but if for some reason you want a background, there you have it.

I have finished integrating the animation system into the game, this is a key part not only because now you can play basic animations that are not sexual but also because the sex scene framework heavily depends on this, check out this video below:

The basics of the animation playback are implemented as you can see, you can tweak the position, visibility, playback frame rate, speed, etc...

One of the latest changes I've made is that I have separated the playback speed from the animation frame-rate, now the speed is determined by a factor that it is applied to the animation playback (0.5x makes the animation slower, 2.0x faster...), it allows me to slow down the animation to less than 1 frame (or speed it up a lot).

The sex scene framework uses this internally to play the sex animation, and not only does that but also it allows to insert any number of overlays dinamically sync'ed to the animation, also everything you saw in the video will be able to be tweaked by addons, some things like speed will affect the pleasure each actor gets during the sex scene, I already have some cool ideas for sex scene addons in the future, you'll see...

There are other things that I might implement eventually, like animation flashing, animation waving or changing the angle, but for a first version it is decent enough!

Other irrelevant information

In other news you might not care at all, I have wondered how big the sex scene framework currently is, so I have used a little tool to count the number of scripts I have done, and man, I did not expect the result to be honest.

It sits at 42 script files, still it is not finished, so it may increase or even decrease if I end up deprecating parts of the code for something better.

For reference, the mod system currently sits at 75 scripts, there are a lot of files compared to the lines of code because there is a lot of inheritance and polymorphism involved, there also some other scripts not counted because they are in the game-scope instead of the engine.


So yeah... That's all, Once v0.2 is released I'll update the Trello board and the roadmap I did to reflect the changes, for now, I wish you a happy new year and happy gaming!
Happy New Year, man!
 
  • Like
Reactions: tygct
5.00 star(s) 4 Votes