Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I don't believe a software project is ever truly finished. Right now I'm just writing it against what packs are out there. If you or any others add additional tags to portraits then I'll filter on anything that's reasonable. Only preference would to never rely on position. I don't want to see "(Brown, Tan, Huge, Flat)", with there being some expectation that it's hair, skin, tits, ass.   I could handle it, but I think it's less intuitive for users and more restrictive in what each pack creator does.  "Brown, TanSkin, HugeTits, FlatAss"  would be much preferable. I can handle that in any sort of ordering, any sort of separators, could even be directory names instead of in the file. Can optionally be more specific too for hair, BrownHair.  Can also specify multiple if it's kind of in between.

After that there is still always room for improvement. Could add an in-game UI to customize the priority of the filters.

Had thought about a weighted system, where it wasn't a hard filter, but instead a preference for a match. Probably still best to do hard filter on race and sex, and probably age, but if it also starts trying to match on everything else, then determining priority probably be personal preference.  If instead it gave a score based on how much each feature matched, with optionally priority for each, so that way if one pic matches skin and hair, while another matches skin and tits, and another matches hair and ass, those 3 could maybe have equal footing. Rather than it filtering on hair, and removing the one that matched skin and tits.  Also with user preferences, someone could say they want the tits to match more than anything else. Then even if it can't match the ones they consider less important, it'd always match the tit size.

As mentioned, I'd also like an option to re-scan for portrait.  Helpful if you add more packs, or have modified the character, or just didn't like what it rolled and still too lazy to manually select one.

roadmap wise, I'll probably add things in roughly this order:

  1. Rudimentary tits and ass filtering.
  2. Weighted system for hair, skin, tits, and ass matching. Weights hard coded in the code, but could edit them before applying the mod.
  3. Re-scan button on Customization page.
  4. Edit weights/priority from UI.

#1 probably be done tonight/tomorrow.  #2 maybe also be done tomorrow, but probably later.  #3 means figuring out how to use modding system to modify UI and instead of wholesale replacing something,  inserting into it.  Probably tackle it more on the weekend.  #4 might never happen, depending on how hard #3 is, and how painful I find GDScript plus the rest of the code base.

Ambitious doesn't quite do that last post justice! A weighted system for hair/skin tone etc would be fantastic.

Seeing as you seem up for a challenge. There's been something bothering me a little. Once the portrait packs are all fully 'tagged' with colors/asssize etc , some beautiful portraits will never be chosen by the script. For example, there are Dryad pictures with fair skin and blue hair, while in game Dryads only ever spawn with green skin and green/purple hair. All it takes is a couple of pictures labeled with greenskin to make sure the others never get picked.

You can still manually select any portrait, so it's not a big deal.

There are several possible solutions to give every portrait a chance to appear on random slaves.

  • Create a separate mod that only factors in race, gender and age
  • Modify the other game scripts so that slaves spawn with a wider variety of pre existing skin and hair colors.
  • Create a single brand new ambiguous skin and hair color (eg "Unnaturally colored", "Hybrid") That can be added to the scripts that generate slaves. Then put that in the names of the 'unlucky' portraits so that they have a chance to appear.
  • Something incredibly complex whereby if a portrait name doesn't have a fitting racial hair/skin color, it is temporarily given one that would naturally fit its race.
  • Make it so there is a low % chance to disregard the color checks each time a slave is generated.

I quite like the "brand new skin and hair color" one, as it allows the generated slave's matched portrait to be accurate. Without limiting available portraits and without creating endless color combinations to find portraits for.

As I said, it's not a big deal. Just throwing out ideas :)

"Make it so there is a low % chance to disregard the color checks each time a slave is generated.."

That is what I was thinking of doing with the weighted system. Start every portrait with a weight of say 1,  for every matching attribute add 5.  A portrait that matches all 4 attributes would have a weight of 21, and thus be 21 times more likely to be chosen than one that matches nothing.  Make it so you can adjust those weights, both starting and per attribute, even if it's just modifying the script file in the mod before applying it. You could thus then set a weight to 0 and it would no longer have an effect on selection at all.

"Create a single brand new ambiguous skin and hair color (eg "Unnaturally colored", "Hybrid") That can be added to the scripts that generate slaves. Then put that in the names of the 'unlucky' portraits so that they have a chance to appear.

Something incredibly complex whereby if a portrait name doesn't have a fitting racial hair/skin color, it is temporarily given one that would naturally fit its race."

Those could be combined.  Could go through possible skin colors and check if any match the portrait, recording that. If none do then list of matching colors would be empty.  When filtering, could consider an empty list of colors to match all possibilities.  Tie that in to weighted system, but consider a "no-color-found" situation to be a lower weight, like wrong colors = 0 weight,  matching color = 5,  no color = 2?

It'd depend upon probably doing a cached read of portraits, as it might start having a performance impact if doing so many comparisons against a large library of portraits every time a new slave is generated. In general though I like splitting up the code into "Generate portrait attributes" and "match portrait" chunks anyways though.

(1 edit)

Seems like you're on top of it :)

It a world with such a variety of interbreedable humanoids, it's no small wonder that many wild monster girls and bandits have crazy hair and skin colors.

With regards to "brand new ambiguous skin and hair color" it's pretty easy to check the default color ranges of a race while naming portraits. So adding one or two extra 'tags' (to those that deviate from racial norms) is not difficult on my end.

I'll leave the math that allows these hybrids a fair chance at appearing to you, and start looking at the race.gd and existing portraits packs to determine which races are the sluttiest have the most deviation from racial norms.

I've restructured it so it now only scans for possible default skin/fur/hair colors, and if it can't find any of those, it considers it to be unspecified.  Also realized existing code only considered hair color and ignored fur color, so all those colors assigned to beastkin/halfkin never got used. so updated it to use hair if set, otherwise use fur.  Also got structure in place to do weighted random selection, however there's a bug with the current mod loading code preventing me from doing this in a more efficient manner( I wanted to avoid re-scanning portraits on every new slave).  it's a simple single-line fix so hopefully Maverik can fix it soon, but means next version of mod will require latest version of the game.

(1 edit)

Maverik's updated and re-uploaded the current version of the game at least once today, if not more. Hopefully you won't have to wait long.

EDIT: Faith rewarded :)

I worked out how to make a line adjustment mod that adds ambiguous hair/skin colors, and which races need it. However, given how much work sexiestmanalive has put into naming portraits already, i'm going to stop working on it as of now.

I'm really glad you are working together :)

With your weighted system combined with the option to choose the weight each body part holds, it sounds like every portrait will now have a chance to be chosen. Thank you.