Ren'Py [Development Thread] Brothelmania: Brothel Management Sim

Quintillian

Newbie
Apr 15, 2019
94
196
Overview

Brothelmania is another take on the slave-trainer brothel management genre where you play as the new owner of a failing brothel and tasked with bringing it back to its former glory. It is inspired by other games like Free Cities, Brothel King, Strive for Power, and other similar titles. The goal of the project is to create an experience with clean UI and UX, deep social simulation elements, and overall live up to the inherent power fantasy of the genre. At the moment, there’s no overarching narrative planned, but there might be at some point. The game is still in a very early concept phase, and there won’t be any initial release for quite a while. I am making this post to gather feedback and start putting these ideas on the page, sort of speaking. Going forward it will serve simultaneously as a DEVLOG, and design document for the game.

Setting.

Vague for the moment, since there hasn’t been much worldbuilding thought out.

Art.
None (ish). Since I can’t draw for shit, but the goal is to support players adding their own imagepacks for girls they like to see in the game. The plan is to support imagepacks made for Goldo’s Brothel King in “out of the box” integration, meaning minimal or no modification required to work.

Planned Features.
Feature
DescriptionPriority.
Character CreationAllow the Player to create a character at the start of the game. Allocate attributes . Chose background, personality, and portrait.High
BuildingsBuild, upgrade, and manage rooms for your brothel.High
Map TraversalExplore the city map, visit locations around the city.Medium
Slave trainingSpend a section of the day/actions training a Slave.High
Social SimulatorSimulate the Slaves behaviors and developing relationship with the Player and each other.High
EventsEvents that trigger if the requirements are met.Medium
QuestsRepeatable requests for the Player to complete.Medium
StoryInclude a storyline for the gameLow
Slave's RolesSlaves can have different roles withing the brothel. ie: Headgirl, Nurse, Trainer, Warden, etc.Medium
 
Last edited:
  • Like
Reactions: TheExordick

Quintillian

Newbie
Apr 15, 2019
94
196
So, here we go.

Devlog Week 1.

Let’s talk Mocks! Well, just two mocks for now.

1) Brothel Management Screen. This will be the first thing the Player sees at the start of each day. From this screen, the Player will have an overview of their current resources, Gold, Food, Medicine, Supplies, and Mana (more on them in future devlogs). The Player will have access to a widget indicating the current day, the period of the day, and options to end the period or the day. At last, there will be another widget offering navigation to the other management screens: Girls, Rooms, Requests, Character, Inventory, Travel (again more on them in future devlogs, but for now let’s focus on the Girls screen).

1.png

2) Girls Management Screen. This screen is where arguably the Player will spend most of their time, reviewing their Girls, interacting with them, setting schedules, viewing and managing relationships, etc. This screen is meant to show a general description of a Girl’s condition, their Stats (bars on the left) and Attributes (icons on the right), as well as offer access to several submenus (whole right side of the screen).

2.png

These mockups are not final, of course, and most certainly will be subject to change, however, for the next weeks or months, my approach to development will focus on replacing these hardcoded mocked values that are there for presentation's sake with actual actual code implementation that supports all the content shown above.

And that’s all. Until next week.
 

__neronero

Member
Jan 23, 2021
275
379
It sounds right up my alley! I hope you'll stick with it.

I don't know if this aligns with your plans at all, but the idea behind Brothel King's image packs has always been to make them flexible enough so that they could be used by other games as well. Sadly we haven't seen it happen yet.
Give it some thought, and let us know at if new image tags would have to be introduced to make that work.
 

Quintillian

Newbie
Apr 15, 2019
94
196
It sounds right up my alley! I hope you'll stick with it.

I don't know if this aligns with your plans at all, but the idea behind Brothel King's image packs has always been to make them flexible enough so that they could be used by other games as well. Sadly we haven't seen it happen yet.
Give it some thought, and let us know at if new image tags would have to be introduced to make that work.
Thanks for stopping by!

I have great appreciation for the people that compile imagepacks as I’ll never have the patience to do that.

In any case, regarding integration with Brothel King tags, honestly I could not give you a proper answer at this stage, but yes, I have given imagepacks some thought. For now, I think that to fully address how imagepacks will be introduced into the game, first I will need to sit and finally decide what the overall purpose of images in the game will be. For simplicity sake, I can see the images going one of two ways.

Sandbox First Approach: Softly tagged.

In this scenario, images are meant to be more a flavor thing than an accurate representation of each girl. Images will be there mostly to offer visual eye candy, but these aren’t meant to accurately represent the character. On one hand, this has the benefit that tags therefore become unnecessary, and will allow the game to offer the player more freedom to customize aspects about the girl’s bodies without the game struggling to choose which image now fits her new looks. Just thinking about all the possible combinations between race, hair color, hair style, eye color, skin color, age, etc makes it obvious that the task of finding the right images for all scenarios and tagging them is not trivial. And this can grow out of hands real fast, just think of all the customization options in a game like FreeCities for example. That said, a downside of this approach is that if the player wants something that visually matches with the textual description, it will be up to them to set it. One way to fix this, is that as the name implies tagging images at least for the most noticeable traits like skin and hair color.

Image First Approach: Hard tagged.

The other side of the coin means the game will make a serious attempt to match characters with their descriptions. This will mean implementing a proper tag system within the game but also limiting the number of customization options for the player (I can’t do both, it just is not feasible sadly). IF I made the decision of going with something like Brothel King where the imagepacks are from a specific girl from a piece of media, then customization options regarding appearance become unnecessary.



So this is the dilemma. Personally, I’m more inclined towards the first option myself, because this being a sandbox in the first place, limiting the player in their customization options just feels wrong. And don’t get me started on the madness that is going to be figuring out how pregnancies are supposed to turn out in terms of the offspring matching its parents.

Another obvious thing to mention are the technical details. Since as far as I can see, the vast majority of images tend to favor a tall or portrait ratio instead of landscape anyways, these images can be used in events with little to no interference with the image itself. That however is not the case with portraits and bodies, because at least for V1.0.0, this game will require all those images used to be an specific size as Ren’Py (as far as I know) isn’t the best at seamlessly adjusting size on its own, and with this feature the UI will just start doing some funny things on its own. This certainly may be adaptable on the fly by writting a script on python that uses PIL to read, resize, and write the image back on disc, but that is an implementation detail which is currently not in my focus for the V1.0.0 roadmap.
 

__neronero

Member
Jan 23, 2021
275
379
Makes sense! Your ideas and mockups already look very ambitious without the consideration of image packs, so I totally understand wanting to keep your focus on creating a fun sandbox, making images a secondary concern.

I feel like simulators like this are at their best when there's a lot of complexity with many layered gameplay systems at play, so that the player starts to approach it instinctively instead of logically. That might take some time, but I'm eager to see it unfold. Best of luck with development!
 

Quintillian

Newbie
Apr 15, 2019
94
196
Hello there! A week has passed since the first post so it’s time to make an update.

So, this week I spent working on implementing the two mockup screens shown last week into RenPy. One update from last week’s mocks was the change in coloring for the Girl’s attributes, which in order of appearance left-right, top-bottom, are: Allure, Constitution, Cuteness, Finesse, Intelligence, Looks, Refinement, Resolve. Previously the Attributes as shown in the mock were color-coded to signify rarity level. This no longer the case, and now each Attribute has their own unique corresponding color and the reason for that will be better explained in future updates once I iron my ideas some more. For now, values on the screens are still hardcoded though, so for next week, the goal will be beginning to replace these values with the first implementation of the Girl class.

Bye.
 
Last edited:

Quintillian

Newbie
Apr 15, 2019
94
196
Another week, another devlog. Since it is uncertain if I'm going to be available this weekend, I thought about updating this now.

Following from last week's update, this week saw the implementation of the Girl class and some boilerplate to make generating them easier. One complication I seem to have is with random, in the sense that it isn't random enough as I'd had instances where several npcs where generated with with very similar values, so it may be worth taking a look at another method for randomization.

In any case, I also spend a little of the week thinking what _neronero mentioned about integrating BK imagepacks, and decided to try out and see how complicated would it be to do it. The most complicated thing was building a barebones tag classification and search system. Now, I'm not a computer scientist, so if anyone has ideas on how to improve this, I would love to hear them, but for now I'm happy enough with this code performance:

Python:
import os
import glob
from collections import defaultdict
from pathlib import Path
import time


def set_up(game_directory):
    """
    This function sets up the necessary data structures for image processing.
    Returns:
        inverted_index: Inverted index of image tags
        images: Dictionary of image filenames
    """
    start = time.time()
    # Supported file extensions
    supported_extensions = ['.jpg', '.png', '.jpeg', '.webp']
    # Extract file stems for supported file formats
    game_images_directory = os.path.join(Path(game_directory), "images/girlpacks/**/**/*.*")
    filenames = [
        os.path.splitext(os.path.basename(x))[0]
        for x in glob.glob(game_images_directory)
        if os.path.splitext(x)[1].lower() in supported_extensions
    ]
    # Dictionary to store image filenames
    images = defaultdict(str)
    # Set to store girl packs names. 
    girl_packs = set()
    # List of sets to store image tags
    image_tags = list()
    # Generate image tags from filenames
    for index, filename in enumerate(filenames):
        images[index] = filename
        splitted = filename.split()
        # first element of splitted is always the girl pack name in lowercase
        girl_packs.add(splitted[0].lower())
        splitted.reverse()
        # for now, ignore image numbering order, that is the (1)_1 at the end so some files.
        image_tags.append(set(splitted[1:]))
    # Set to hold all unique tags
    corpus_set = set()
    # Update corpus_set with all image tags
    for image in image_tags:
        corpus_set.update(image)
    # Dictionary to store inverted index
    inverted_index = defaultdict(set)
    # Generate inverted index
    for index, tag in enumerate(corpus_set):
        inverted_index[tag] = set()
    # Process image tags into the inverted index structure
    for index, image in enumerate(image_tags):
        for tag in image:
            inverted_index[tag].add(index)
    end = time.time()
    with open(Path(game_directory).joinpath("be_output.txt"), 'a') as f:
        f.write("Processed {} images in {} seconds.\n".format(len(images), end - start))
    return girl_packs, inverted_index, images

def search_tags(inverted_index, tags=[]):
    """
    now we can search. tags[0] must always be the girls name.
    """
    search_result = set()
    search_result.update(inverted_index[tags[0]])
    for tag in tags:
        if search_result:
            search_result.intersection_update(inverted_index[tag])
        else:
            break
    return search_result

The code above managed to process 8909 images in 0.13 seconds. Of course, it is not reading the actual images, just the filename, and thankfully Ren'Py is smart enough to find images for showing with just the filename. The code above is building a dictionary that will be stored in memory while the game runs, and be use for tag search.

Since I still don't have Jobs or Events that demand for specific tags, here are some examples at how it looks from the console:
(Disclaimer: I took the liberty of adding several BK girlpacks to the games/images folder as I didn't have the time, or energy really, to make them myself)

Captura4.PNG

and a preview of the images_inverted_index ifself:

Captura2.PNG
Captura5.PNG


And that is it for this week. Next week the I think the update will be very low on coding as I need to spent time iron out the mechanics I want to put in place. Until then.
 

Quintillian

Newbie
Apr 15, 2019
94
196
Hello there! Another week has passed, so let’s make a quick update.

Here is an overview changelog:
  • Restructure Character’s Screen and Menus, and added some transitions.
  • Added initial implementation of the calendar system.
  • Added initial implementation of the relationships system.
  • Added initial implementation of the dialogue system.
For the next few weeks, I’m going to keep working on the dialogue system. My goal here is to make it super easy for other people to add their own rules and lines of dialogue. There’s a lot going on during the hood, but at the end of it, here is a preview of how easy it was to add those lines of dialogue shown in the video clip.

Python:
init 1 python:
    """
    Base initialization of rules.
    """

    add_rule(Rules.POSITIVE_OPINION,
        DialogueRule(
            [
                Criterion(
                    {
                        "==": [ { "var" : "event" }, Events.ON_CHAT ]
                    }   
                ),
                Criterion(
                    {
                        ">=": [ { "var" : "opinion" }, 0 ]
                    }
                )
            ]))
    add_rule(Rules.NEGATIVE_OPINION,
        DialogueRule(
            [
                Criterion(
                    {
                        "==": [ { "var" : "event" }, Events.ON_CHAT ]
                    }   
                ),
                Criterion(
                    {
                        "<": [ { "var" : "opinion" }, 0 ]
                    }
                )
            ]))


init 1 python:
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Oh no, it’s you.", "What’s it this time?"))
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Ugh, it’s you again.", "What do you want now?"))
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Let’s get this over with.", "What’s the topic of today’s disappointment?"))
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Whatever. Do you even care?", "What do you want to talk about this time?"))
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Honestly, I can’t stand you, but I’m willing to listen this time."))
    add_dialogue(Rules.NEGATIVE_OPINION, Girl, ("Y-you don’t scare me, but let’s make this quick."))

    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("Of course, I’m glad you wanted to chat.", "What’s on your mind, [player.title]?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("I’m here for you, [player.title].", "Tell me, how can I assist you today?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("Great to see you, [player.title]!", "Sure, let’s have a chat.", "What’s going on?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("It’s always a pleasure to chat with you, [player.title].", "How can I be of service?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("I’m all ears, [player.title]!", "What’s the exciting news today?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("Oh, it’s an honor to speak with you, [player.title].", "How may I serve you?"))
    add_dialogue(Rules.POSITIVE_OPINION, Girl, ("It’s an absolute pleasure to chat with you, [player.title].", "How can I assist today?"))
For now, the dialogue object supports a speaker that could be a character or narrator, it can say single or multi lines. Going forward I would like it to add support for audio clips, additional calls to other labels, and support for commands that alter the state of characters.
 
  • Like
Reactions: __neronero

Quintillian

Newbie
Apr 15, 2019
94
196
Quick update, this week I rearranged elements in the characters screen, adding four new stats to each of the girls, to a new total of 8 stats, divided into four mental and four physical.

Each Stat has several stages and each stage may grant an Effect.

That means, I also added Effects to the game, supported with tooltips as a QoL enhancement both on the stats and the elements they affect. In the background, the code reads the effects data from a dict and builds behavior accordingly, so in the future it could even be made to read from a .json or a .toml file which in turn would make modding easier.

Here is a quick video demo showing the effects and tooltips, for now only in the Health Stat, but since most of the boilerplate is finished, it is just a matter of adding the content for the others.
 
  • Like
Reactions: Leylight

Quintillian

Newbie
Apr 15, 2019
94
196
Update!

At last, the Great Background Steal Heist has finally started.



As you can see, this week I finally got around to start working on the Rooms. Only two Rooms exist so far: The Dormitory and the Boudoirs, but I already have idea plans for many more, eg: Master Bedroom, Servant’s Quarters, Dungeon, Farm, Salon, Garden, Infirmary, Nursery, Baths, Tavern, Stage, Parlor, etc.

The plan now is that Rooms will unlock Tasks as they are built or upgraded, this Tasks will range from simple one like Maid, Waitress, Dancer, Singer or Leadership positions like the Head Girl, Nurse, Wardeness, Governess, Stewardress, Matron, etc.

Let me know if you have any more fun ideas you would like seeing in the game.
 
  • Like
Reactions: __neronero

Su13n

Newbie
Aug 12, 2021
48
42
Considering this is a brothel and training game, do you intend to include darker content as well, e.g., ryona and rape? I suppose there will be some form of rape regardless, judging from the dialogues you posted previously, but my question is more in regard to the setting surrounding everything. Is the game supposed to be more light hearted, or more 'realistic'?
 
  • Like
Reactions: Quintillian

Quintillian

Newbie
Apr 15, 2019
94
196
Considering this is a brothel and training game, do you intend to include darker content as well, e.g., ryona and rape? I suppose there will be some form of rape regardless, judging from the dialogues you posted previously, but my question is more in regard to the setting surrounding everything. Is the game supposed to be more light hearted, or more 'realistic'?

Good question. For now, I will go with "realistic.”

With some asterisks, though. I don’t know how to make it lighthearted without making it silly. You’re, after all, playing as a Brothel Master who owns slaves, so non-con is pretty much part of the course in some form. However, of course, some romantization of the slavery aspects also needs to be present to stop the whole thing from becoming a depressive downer.

Does this make sense? I have taken a break from development for this month, but I’ve been thinking about this lately. Since I’m not a writer, the content part of the game is something I can foresee as the most difficult part of this endeavor for me, and I sometimes feel like I am going in circles about it.
 

Su13n

Newbie
Aug 12, 2021
48
42
Good question. For now, I will go with "realistic.”

With some asterisks, though. I don’t know how to make it lighthearted without making it silly. You’re, after all, playing as a Brothel Master who owns slaves, so non-con is pretty much part of the course in some form. However, of course, some romantization of the slavery aspects also needs to be present to stop the whole thing from becoming a depressive downer.

Does this make sense? I have taken a break from development for this month, but I’ve been thinking about this lately. Since I’m not a writer, the content part of the game is something I can foresee as the most difficult part of this endeavor for me, and I sometimes feel like I am going in circles about it.
That certainly sounds promising already.
I did some planning for my own game a while ago (not a brothel game but some of the mechanics will probably be overlapping) but indefinitely dropped the project due to time constraints. There were a few major points I wanted to do differently in my game, maybe there's things you agree with:


Regarding character traits and development:
One thing I tend to dislike in most trainer games is the superficiality of NPCs (i.e., slaves) and the corresponding interactions. Most of the time there's some kind of convoluted stat system implemented that doesn't do any good for the immersion, and things get repetitive (not only referring to the gameplay loop but also interactions with NPCs) e.g.,

1. Acquire new slave with random character trait from a pool of, for example "Rebellious", "Fearful", "Traumatised", "Smart", "Nympho" or something along those lines.
2. Train her in a certain way depending on her trait(s) e.g., "Rebellious" slaves need to either be treated well or 'ruled' with fear.
3. Gradually see the slave become mindlessly obedient through repetitive actions giving, say, +1 Obedience +1 Fear
4. Throw her into a specific job i.e., brothel, public service, waitress, etc. and never see her again.
5. Repeat with increased money and ability to buy new slaves with better starting traits.

I think one of the main culprits is the usage of too few variables (or the singular variable approach in the first place) to decide the actions of NPCs. Most Ren'Py games I know of give characters attributes like "Favor", "Disapproval", "Health", "Subordination", "Mental Strength", "Sexual Experience", etc. Using and mixing absolute traits with relative ones often causes rigid and irrational character behavior (let's say you have an NPC with high favour and high disapproval, which trait is the dominant one? How are dialogue's affected in that case? A lot of Ren'Py games simply make decisions with a bunch of nested if clauses.).

Another issue related to the previous one is decision making. Decisions are made to change certain things in the game but in most games that aren't kinetic or very intricately written visual novels, player decisions i.e., actions directly involving NPCs result in nothing but a one-dimensional attribute change. There is no real weight to decisions and their implications.
You can be an aggressive ass all day long, but all that'll do is give -1 Approval rating and +1 Fear. There's no larger picture.
The worst way this can play out is when a player chooses two repetitive actions for the gameplay loop, causing two opposing attributes to be raised at the same time. "Lore" wise, the player is mistreating the NPC to raise obedience and fear, while simultaneously showering it with "love" to reduce fear and further increase obedience. Okay, doesn't sound that bad - or does it?
Basically, most brothel/trainer games are stockholm syndrome simulators. It's simply not likely for a person whose life has been ruined by having been kidnapped/enslaved/bought/abused etc. to completely ignore actions and solely base their behaviour on "action good, action bad" black and white thinking. Sour milk is bad. Being involuntarily impregnated is bad too. I think most people would agree the latter is significantly worse, to the degree that the different attribution of -1 Favor for the former and -2 (or even -10) for the latter is plain ludicrous and certain intra-/interpersonal developments become completely impossible, no matter how "loving" the player is to the individual. Not even mentioning the fact that a forced, unwanted pregnancy also causes a lot of physiological and psychological problems.

I tried to work on an algorithm to make character interactions and decisions lasting and have more nuanced weights, but so far I haven't had any success. Another, maybe a little over the top, idea I had was using personality models like the big five or even the mbti in combination with psychodiagnostic questionnaires to create authentic reactions and dialogue; i.e., averaging decisions and converting them into evaluable diagnostic items, and ultimately basing character attitudes on these results. Maybe even a dedicated model for the game or a tiny neural network to control things involving that.


Tl;dr: Adding +1 AttributeA/-1 AttributeB following certain actions is too simplistic and destroys immersion, causing illogical character attitudes and behaviours. See above paragraph for idea to fix that.


Interactions with minor characters:
I'd also like to see more possible interactions with the slaves. Obtaining a new one, breaking them in, and using them to generate income is fun and all, but again, I think it's too superficial. The possibility of interacting with (certain) slaves on a deeper level should be there. I know it's not feasible to provide such a feature for every slave, considering they'd be procedurally generated without unique storylines, if you don't want to involve AI. The next best thing would be adding a certain amount permanent characters that are fledged out, and/or generating a large sheet of modular dialogue, so responses are dynamically generated to make even the procedural characters seem somehow unique.


And a lot more but I'm a bit short on time right now, so maybe I'll continue later.
 
  • Like
Reactions: Quintillian

Quintillian

Newbie
Apr 15, 2019
94
196
That certainly sounds promising already.
I did some planning for my own game a while ago (not a brothel game but some of the mechanics will probably be overlapping) but indefinitely dropped the project due to time constraints. There were a few major points I wanted to do differently in my game, maybe there's things you agree with:


Regarding character traits and development:
One thing I tend to dislike in most trainer games is the superficiality of NPCs (i.e., slaves) and the corresponding interactions. Most of the time there's some kind of convoluted stat system implemented that doesn't do any good for the immersion, and things get repetitive (not only referring to the gameplay loop but also interactions with NPCs) e.g.,

1. Acquire new slave with random character trait from a pool of, for example "Rebellious", "Fearful", "Traumatised", "Smart", "Nympho" or something along those lines.
2. Train her in a certain way depending on her trait(s) e.g., "Rebellious" slaves need to either be treated well or 'ruled' with fear.
3. Gradually see the slave become mindlessly obedient through repetitive actions giving, say, +1 Obedience +1 Fear
4. Throw her into a specific job i.e., brothel, public service, waitress, etc. and never see her again.
5. Repeat with increased money and ability to buy new slaves with better starting traits.

I think one of the main culprits is the usage of too few variables (or the singular variable approach in the first place) to decide the actions of NPCs. Most Ren'Py games I know of give characters attributes like "Favor", "Disapproval", "Health", "Subordination", "Mental Strength", "Sexual Experience", etc. Using and mixing absolute traits with relative ones often causes rigid and irrational character behavior (let's say you have an NPC with high favour and high disapproval, which trait is the dominant one? How are dialogue's affected in that case? A lot of Ren'Py games simply make decisions with a bunch of nested if clauses.).

Another issue related to the previous one is decision making. Decisions are made to change certain things in the game but in most games that aren't kinetic or very intricately written visual novels, player decisions i.e., actions directly involving NPCs result in nothing but a one-dimensional attribute change. There is no real weight to decisions and their implications.
You can be an aggressive ass all day long, but all that'll do is give -1 Approval rating and +1 Fear. There's no larger picture.
The worst way this can play out is when a player chooses two repetitive actions for the gameplay loop, causing two opposing attributes to be raised at the same time. "Lore" wise, the player is mistreating the NPC to raise obedience and fear, while simultaneously showering it with "love" to reduce fear and further increase obedience. Okay, doesn't sound that bad - or does it?
Basically, most brothel/trainer games are stockholm syndrome simulators. It's simply not likely for a person whose life has been ruined by having been kidnapped/enslaved/bought/abused etc. to completely ignore actions and solely base their behaviour on "action good, action bad" black and white thinking. Sour milk is bad. Being involuntarily impregnated is bad too. I think most people would agree the latter is significantly worse, to the degree that the different attribution of -1 Favor for the former and -2 (or even -10) for the latter is plain ludicrous and certain intra-/interpersonal developments become completely impossible, no matter how "loving" the player is to the individual. Not even mentioning the fact that a forced, unwanted pregnancy also causes a lot of physiological and psychological problems.

I tried to work on an algorithm to make character interactions and decisions lasting and have more nuanced weights, but so far I haven't had any success. Another, maybe a little over the top, idea I had was using personality models like the big five or even the mbti in combination with psychodiagnostic questionnaires to create authentic reactions and dialogue; i.e., averaging decisions and converting them into evaluable diagnostic items, and ultimately basing character attitudes on these results. Maybe even a dedicated model for the game or a tiny neural network to control things involving that.


Tl;dr: Adding +1 AttributeA/-1 AttributeB following certain actions is too simplistic and destroys immersion, causing illogical character attitudes and behaviours. See above paragraph for idea to fix that.


Interactions with minor characters:
I'd also like to see more possible interactions with the slaves. Obtaining a new one, breaking them in, and using them to generate income is fun and all, but again, I think it's too superficial. The possibility of interacting with (certain) slaves on a deeper level should be there. I know it's not feasible to provide such a feature for every slave, considering they'd be procedurally generated without unique storylines, if you don't want to involve AI. The next best thing would be adding a certain amount permanent characters that are fledged out, and/or generating a large sheet of modular dialogue, so responses are dynamically generated to make even the procedural characters seem somehow unique.


And a lot more but I'm a bit short on time right now, so maybe I'll continue later.

Thank you for the input!

I think we are on alignment that for the most part trainer games feel repetitive at some point. However, as far as I’m aware, no game has found a way to avoid this entirely. Within the scope of a Personality Systems for NPC behavior, it is a known problem amongst the procgen dev community that while you can technically make thousands of NPCs mathematically unique, in practice it’s very hard to make these differences matter to the players.

A lot of games lessen this problem by first identifying their NPC’s outputs and working retroactively to figure out what the inputs must be. The concept of ‘perceptual uniqueness’ gets thrown around a lot, and the idea is to generate the illusion that every NPC is special in their own way, even when they really aren’t.

For a Trainer game where the NPCs are supposedly slaves, this approach is made less effective because slaves aren’t well known for the overflowing amounts of free agency they possess. Meaning that for the most part, their outputs are mostly reactive to the player’s actions and decisions.

I chuckled when you mentioned this type of management games are practically stockholm syndrome simulators because you’re completely right. However, despite what ryona, ntr, etc makes us believe, in the real world, only a small percentage of victims develop signs of it. That is what I meant that some romanticization was needed to take that number and make it higher. All forms of media require some level of suspension of disbelief, but in this case, we must additionally dress with fancy pink-colored glasses, and sprinkled with an unhealthy dose of porn logic to call it a day. Realism in games is overrated anyway, and I think it’s far more beneficial to think in terms of internal consistency with the setting and gameplay mechanics.

Going for the example you mentioned about forced pregnancy. I was thinking of implementing a Memory System for slaves in which they keep certain events that happened to them for a certain amount of time. Rape, and Unwanted Pregnancies are some of the events that would have considerable weight in a person’s mind in the real world for their whole lifetime, but in a game like this, it doesn’t sound fun having this effect lasting forever.

Of course this system should be mixed with other systems to add depth. Off the top of my head, pairing it with a Personality System and Fetish System makes sense for me. Of course, in the real world if you’re sold into slavery, being a breeding fetish enthusiast should be the last thing on your mind, but again this is a game so some real world common sense needs to be changed to fit game setting’s common sense. Beyond that, a Consent System might serve to give the slaves some of their agency back. And a Relationship System might also be interesting to explore dynamics between the slaves themselves.
 
  • Like
Reactions: Su13n

Quintillian

Newbie
Apr 15, 2019
94
196
Update.

I’m back. November is almost over, and that means my ‘vacation’ from developing this project is also almost over. I write ‘vacation’ just like that in quotes because in practice I didn’t manage to stay completely hands off. In the future I’d be careful with this as I’m very prone to burnout once I get too much into a project, so expect one-month breaks every two-three months just to keep my mind in check. That all said, what this means is that instead of waiting until next week for a new devlog, I can drop one right away.

Change: Scrapped Races.
While it’s not necessary for the fantasy setting I was going for, I initially thought that having fantasy races seemed like a good addition. Upon deeper examination, this feature has been scrapped from the game. Don’t get me wrong. It’s not like I don’t want to. I like foxgirls just as much as the next person, but for the life of me I just couldn’t find sufficient gameplay justification why it matters to belong from one race or the other, besides the obvious narrative flavor. IF at the end of day, being X or Y race only means having A or B Trait that alters some stats or attributes, then I see no reason to not just sidestep the whole racial classification and lean harder on Traits themselves for the same gameplay effect. Note that this won’t stop people from adding their imagepacks of catgirls and in the .INI file configure the appropriate Traits. It just means that for all intent and purposes, outside of the art (which I’ve no control over) the game’s setting will be agnostic to the concept of race.

Change: Expanded Image Search.
The inverted index algorithm has been improved to exclude unnecessary or unwanted matches when searching for appropriate images.

New: Line Up Phase.
Ok, this is what I have been mostly not working for the past month. It isn’t finished. But part of the point of a devlog is to show partial progress and gather feedback so here it goes.

Most brothel managements I’d played in the past have some variation of this, usually called something Brothel Phase. Here, I’m going to call it Line Up Phase for reasons that will be explained soon. In this game time management is driven by turns, and because I like turn-based systems so much, I have decided to give you all turns inside turns inside turns. No need to thank me, so hold your applause.

Well held.

In all seriousness though. The first layer of turn management is of course the Day-To-Day administration, which I will expand on in a future devlog. The second are the Periods of said Day (Morning, Evening, Night), which also I will expand on in the future. For now, what matters is the last Period: Night, because that’s when the option to open the brothel for more brothel-ly business becomes available begins the Line Up Phase and displays the final, third layer of turn-based management: Line Up Turns.

This has been a lot of text already, so here’s a pic.

1.png

There’s a lot going on in the picture above. So, for clarity I’m going to explain bit by bit, starting from the right.

2.png

These are the Patrons, prospective customers waiting to be served, and one of your source of income. Patrons will arrive at the Brothel in the Evening looking for entertainment which you can provide by having the girls performing massages, dances, or serving drinks at the cost of the girl’s stamina and in exchange of either Gold or raising the starting value of the Patron’s main Stats: Arousal and Patience.

Arousal dictates how much of their Budget Patrons willing to spend in your brothel, while Patience represents how willing they are to stay around and wait for you to assign them a girl. If Patience runs out, the Patron will leave unsatisfied and affect the Brothel’s reputation.

Each turn and for each girl, the player will need to weigh the decision of assigning one of their girls (which will take the girl out of the Line Up Phase for a couple of turns) to reap the reward (and display hentai pic here) or keep raising the Arousal while being mindful of Patience.

Moving on, this brings us to the middle section: The Girls.

3.png

These are the girls, that through intimidation or charm, you have convinced to work as Whores and become available during the Line Up Phase. Each girl will have a number of line up actions, which are actions that can be taken in the same Line Up Turn, and will usually refresh after each ‘End Turn’.

Clicking on a girl’s name will bring up the Action’s Menu.

4.png

That will display further useful information about that girl, as well as her four available Actions. Clicking on an Action will display its information.

5.png

I’ve plans for Actions to support a range of different behaviors, but for now I’ve only implemented Buffs and Checks. Buffs grant Effects, while Checks perform a dice roll based on the gir’s Attributes and execute something depending on the outcome. In the picture above, Seduce is an example of a Check. Patrons will appear in various types, and each will be ‘weak’ to a particular type of Check. Lastly, rolling a 1 means Critical Failure, while rolling a 20 means Critical Success, and in both cases the effect of those rolls is that the outcome (be it gains or losses) gets doubled.

Annnnnd, that’s all I have for now.

I know this is all wishy-washy without a proper demo that people can play with and mess around with, so the current objective of reaching V0.0.1 hasn’t changed. I’m just coming to terms of what will constitute the minimum viable product for said version to offer people somewhat of a core experience, which still seems far, far away, I’m afraid, but let’s hope I can get there.

Thank you for reading, and until next week!
 
  • Like
Reactions: Su13n

Quintillian

Newbie
Apr 15, 2019
94
196
Update!

Apologies for the long silence. Closing 2023 was a crazy affair and although I would like to adjudicate all the blame for IRL duties, the truth for not updating this devlog more frequently was simply because there wasn’t substantial improvement over the game that would merit an update. That said, here is what I’ve been working on ever since.

Schedules and Tooltips.

For the past weeks, I’ve been working on a calendar system, and ultimately settled on a design that is composed of days on which each day breaks into three periods (morning, evening, and night). During those periods, players will be able to assign the girls to different tasks.

The tasks available are dependent on which rooms or upgrades has the player built on their brothel, so for the upcoming weeks I’m putting a pin on the tasks, and work on the rooms instead. Having already implemented the Dormitory and the Boudoirs, adding the barebones of more rooms shouldn’t be a challenge at least from the technical side.

One of the technical hurdles overcome in the past weeks, was the implementation of a requirements validation system that will be in use in many places of the game, and thanks to a separate tooltiping system, can better convey information and feedback to the player in a way a simple paragraph would feel lacking instead.

As usual, here’s a quick video demo.



And that’s all for this update. Until the next one.
 

Quintillian

Newbie
Apr 15, 2019
94
196
It’s time for another update. These past days I spent them doing some code housekeeping as well as trying to set some standard to the ui style for consistency. Biggest refactoring endeavor was decoupling game objects from game data and then moving said game data into .json files, since I believe it will make adding content and modding easier in the future.

I like how the project is turning out so far, but I also took some time to decide what should be on the tech demo version. I don’t dare to predict any release date yet, since with the whims of IRL it’s hard to keep consistent with passion projects like this.

That said, I did decide at least on which Rooms I need for the tech demo release: Dormitory, Dungeon, Boudoirs, Office. I already finished implementing the minimum viable versions of those. During that process, I realized the first demo was also going to need access to a place where to purchase the girls, so I tried dipping my toes into the world of generative AI to generate a background, and gained some interesting experiences to say the least. I ended up with these two pieces

You don't have permission to view the spoiler content. Log in or register now.

You don't have permission to view the spoiler content. Log in or register now.

I am content enough with those results considering I don’t have the skill set for drawing. It still took more time than I thought it would, like two-three days each image.

Going forward, at least for now, it will be best to save time just continuing scouring the web for backgrounds and similar stuff. On that same note, as for the character images, I’m embracing 100% using the same imagepacks from Goldo’s Brothel King, so I also spend some time optimizing the tag search algorithm that goes in the background.

Changing topic back to the simulation aspect, for the demo, I implemented a simple upkeep mechanic that takes Gold and Food from the player on a daily basis. The player will be able earn Gold back during the Line Up Phase, while Food can be purchased. If no Food is available at the end of the day, characters will receive the Starving Effect using the Effect System that is already in place.



And lastly but no least, the Overview Screen was due some attention as well. Now, this one resembles more what the final product I want it to be.

You don't have permission to view the spoiler content. Log in or register now.

If you’re going like ‘That’s a lot of text’, well yes it is. From the start I knew I wanted to have one screen or menu where all the characteristics and traits of a character were summarized. From playing games with similar mechanics I always enjoyed the indirect emerging storytelling this feature brings.

That’s all for now. Until next time.
 

Quintillian

Newbie
Apr 15, 2019
94
196
Update. This development cycle was mostly about contining work on the Line Up Phase, adding more behaviors for Actions, as well as a way to ‘equip’ up to 4 Actions per girl. In the future, the goal is to attach requirements for the Actions, either a minimum of Attribute or perhaps a related Perk inside a Class.

Here is a quick demo of the Actions already working in-game:



Apart from this, here is a short list of changes that went into this dev cycle:
  • The general character menu was reworked to allow for submenus, as the number of existing tabs available was going to become very limiting later on.
  • Fixed a bug that made the Renpy call stack grow without returning. Oops!
  • Added the option to reroll the Girl’s profile picture, and the option to shuffle the Girl’s profile picture so it’s different each time the player enters her menu, and the option to pin it in place again so its stops shuffling.
  • Reworked the dialogue system so it’s easier to read. Once this code base stops being so volatile to change, I may consider adding an option to import dialogue directly from a .csv file so it is even easier to mod.
  • Fixed typos or weird formatting issues on the descriptions of existing effects, stats, attributes.
  • Fixed a bunch of bugs regarding the Line Up Phase, such as the player being able to reroll failed checks by using rollback and effects not applying their cooldown correctly.
  • And implemented barebones structured for the gobal relationship system, personality system, and interactions system.



Lastly, I’ve been postponing biting the bullet, and putting on my writer hat, but I really do need to come up with the basis for a setting and stick to it. So far, stuff has been wishy-washy, but that needs to change for the planned mechanics ahead, otherwise thing will start to feel disjoined. My goal is still to focus on the game’s features first before adding more authored content like actual writing, but even game mechanics need to settle on a concrete setting stuff before going further. Stuff like Items, Classes, Locations, UI, etc, need to have some worldbuilding pointers to guide them. Lately, I am leaning more Magicpunk/Dungeonpunk than straight up Fantasy without going full Steampunk (if that makes sense) and I've been doing some quick AI generations to see if anything sparks the good old neuron activation.
 
  • Like
Reactions: __neronero