Renting buildings This weekend I put some work into the game’s building mechanic.
You’ll start the game in a building just big enough to house you and your one starter slave. To progress and expand you’re going to have to move your brothel to successively larger buildings. Every building has its own room layout, which is an important consideration because the size of a room determines what type of room it can be.
You can also choose which town district your brothel is situated. The location of your brothel will heavily influence the kinds of customers you can receive.
Naturally, all of these considerations will affect the rent so choose wisely.
Hermaphrodites I also made a small but critical change to the shemale gender. They can now have both male and female genitalia. (They used to only have male bits.) I really liked the idea of a well-defined third gender and how it created a nice symmetry with the other two genders. At the same time this is stuff people really care about and in the end, the less restrictions on character creation the better.
Shemale characters with both a penis and vagina is now referred to as “hermaphrodites” but are still considered to be members of the same gender as their vagina-less sisters. They’re a little OP, because they they get the best of both worlds, but so be it.
I’m on my yearly staycation and I’ve pretty much been coding every day and I’ve made a decent chunk of progress on House Dominae so far.
My focus has been on the simulation character interactions, and basically cleaning up errors I’ve come across. Here are some of the things I’ve done:
I’ve implemented a model for morale and happiness. Slaves will now get unhappy when they’re driven against their own needs and wants and vice versa. A slave’s sexual orientation has become a pretty important factor for their overall happiness. Cammy (gay in my game) doesn’t like sucking dick and she’s being a prissy little cunt about it!
Characters now form relationships to each other. There’s a new ‘Socialize’ activity for when you want to improve a relationship between two characters, without sexual intent. A slave’s relationship to the player character is extra important because it carries consequences for their obedience and overall happiness.
Characters can also be attracted to one another, either physically or sexually, which aids in their bonding. The attraction is asymmetrical and based on their individual sexuality.
Minor note: There’s a new mental health bar and if it ever goes down to zero the slave “breaks”, erasing most of their personality and rendering them extremely compliant. A slave’s mental health is very stable on its own so it’s up to the player to introduce the necessary trauma.
I’ve redone the insubordination system once again. Whenever a slave breaks a rule they’re tagged with an insubordination account. The player has two days time to punish any insubordination, or it will convert into a permanent deduction to obedience. Proper punishment gives a slight increase in obedience but not as much as it used to.
Lust (or horniness) has been implemented. Slaves will grow horny over time, some more quickly than others, and they can cum in sexual activities. Orgasms naturally affects their happiness. Whenever a slave cums “legally” you’re given a gem, which is a special currency which doesn’t have a use yet, but will in the future.
If a character goes to bed horny they may forfeit some sleep in order to masturbate. You can forbid a slave from masturbating but it becomes an obedience roll at that point.
This is a minor thing, but because I’ve added a new set of rules and concerns I also put some time into making sure it’s apparent in the UI what the state of a slave is. Potential concerns and critical conditions are indicated with icons on the portraits.
There is now a number of town locations to visit, although not all of them have been fully implemented yet.
Last but not least…
… I’ve done a lot of sweeping improvements to the text engine, conditional expressions, event image selection, and I replaced the random number generator with a super robust noise function based alternative. It practically prevents save scumming; even more so than before.
I want to elaborate on what I meant when I said I’ve made “minor improvements” in my earlier response. I haven’t had time, or the energy, to make any big sweeping changes, but even when I’m pooped from work I still like to tinker with the small stuff.
Recently I’ve been trying to formulate the interface for the lateral mechanics in the game, like purchasing slaves, items and upgrades, while also moving away from putting everything in the left side bar.
So this is the direction I’m currently moving in, which is simply to put a face on each of the town functions, sprinkle some flavor dialogue on there and see how that plays.
Bonus screenshot of the (borderline superfluous but totally playable) gambling mini game:
I’ve got a simple character generator up and running, and I’ve created some more textures and geometry to inject some variety. I haven’t gotten around to modeling hair pieces yet, so that’s next on my list.
I predict that hair will be the most impactful part of the character pawn, so I plan to create a lot of combinable pieces.
I revisited some of the earliest code I wrote for this, because it’s been getting more and more outdated, specifically how the building mesh is generated. All of the wallpaper and floor materials were hard-coded and now all of that that has been formalized.
In the beginning I imagined the player placing down individual bedrooms and other rooms of specific types, building their brothel up from scratch. I’ve since scrapped that idea and instead the player will purchase pre-built buildings and instead furnish rooms to indicate their use, i.e. place a bed within an empty room and it becomes a bedroom. This meant I had to rewire a bunch of the room logic.
I also took the opportunity to create a few building layouts to test the system.
I’ve also done some profiling and improved the performance of the user interface since it was feeling a bit sluggish. Sadly that effort is hard to convey in screenshots.