April Update

Mental simulation

This has been a long-term undertaking, touching several parts of the game internals, and it’s finally coming together. Previously the primary aspects that governed slave performance were their attributes and skill levels. I’ve now added a mental layer to that equation. Feelings and what-not. Does the slave choose to do what you ask of them?

Because House Dominae is a game rife with enslavement and non-consensual sex, the answer has always been “No, of course not. But they don’t really have a choice, do they?” I’ve always thought it’d be more interesting if the answer depended on the character and that each of your slaves gave different answers.

Mental attributes

I’ve added 5 new mental attributes:

  • Servitude – The desire to blindly serve.
  • Sexuality – The need for sexual pleasure.
  • Loyalty – The loyalty towards the PC.
  • Corruption – The decline of the rational mind.
  • Fear – The fear towards the PC.
Mental overview (wip)

All of these values contribute in various ways to a slave’s performance but more importantly they all give unique answers to why a slave would even entertain the idea of obeying you. They also give the player five different avenues of play.

For instance, if a slave is being especially unservile, you can always instill some fear in them through intimidation or a not-so-gentle slap on the wrist. Fear is a very powerful motivator.

Individual preferences

Characters can now form their own opinions regarding all the activities they’re asked to perform. Besides contributing to their overall happiness, this adds a very pleasant variety between slaves. Instead of presuming a slave hates everything, it’s a little more uncertain now. What a character likes and doesn’t like is random, but also depends on their mental attributes and their personality trait. A character that is very sexual by nature will be more inclined to enjoy sucking cock or having anal sex than a more inhibited personality.

Health / Injuries

If you or a customer are too heavy-handed with a slave they can now suffer physical injuries. There are two levels of injury: bruises and wounds. A bruise will reduce the Appeal of a slave but they will heal after a while. Wounds are a bit more severe and they will need to be bandaged, or there’s a risk that they turn into a permanent scar. If a slave’s health should ever drop to zero, they get moved to a hospital for a few days to recover.

Character attributes

The character screen is a part of the UI that I’m constantly revisiting and iterating on. It’s more or less the player’s main window into their characters and I’d argue it’s the most important UI in the whole game.

Since the very beginning I’ve presented character attributes as horizontal bars, with the intention of conveying that 1) bigger numbers are good, and 2) the player should try improve them if they can. But lately I started experimenting with alternative ways to present these values and I ended up with taking a page from good old D&D.

Character Overview

That is to say, instead of having some loosey-goosey decimal value between 0.0 and 10.0, I’ve changed it to plain whole numbers in the range from 0 to 20. Mathematically this doesn’t make any difference what-so-ever but I think it makes for a more legible UI and makes them easier to understand.

Character report / Statistics screen

I’ve added some UI to display historical information about individual slaves. You have a list of every customer they’ve served, how well they did and how much money they earned. I also added a line graph for good measure.

Character report screen

And because I’m now tracking all of this historical data I also added a statistics screen to enumerate all the things your slaves has been doing. I truly enjoy knowing how many cocks Cammy has sucked.

Statistics!

Activity internals improvements

A lot of the features above were made possible because I’ve made some very important improvements to how the game handles activities, i.e. the tasks you give your characters. You have to consider the fact that none of the activities in House Dominae, at least not the sexual ones, are hard coded. Instead they’re defined in XML-files, with the intention to supports any activity, and where players can add their own activities, just as they would add their own characters.

So therefore, the game didn’t actually know anything about the activities internally. All it knew was the participants, which skills would be used and and how much money you’d earn. I could do things like deduce the activity from the relevant skills but I knew that wouldn’t be very accurate.

<Keywords>slave-receive, penis, penetrate, in-vagina</Keywords>

The XML-block above describes the vaginal sex activity in simple words the game engine can understand. Basic nouns, verbs, that sort of thing. And through this simple method, combined with the information it already has, the game can actually deduce a lot of useful information. From this it can determine that the slave is being fucked and therefore would break virginity, potentially cause pregnancy, or even hurt the slave if the other participant has a sizable phallus.

The preferential system is built on top of this, by pattern matching the keywords. If a character hates doing the activity, their morale will suffer from it.

Pregnancy

Finally, and I only put this in this yesterday, female (and some shemale) characters can now be impregnated, either by a random customer or any of the playable characters in the house. Every time someone is fucking someone there’s a chance they’ll cum inside, and then there’s a small chance for conception. However, the pregnancy won’t become apparent until a few days later.

Pregnancies don’t last for a full 9 months, rather it’s around 50 turns, which still feels like a long time in game. As the pregnancy progresses, the character will develop new physical features associated with pregnancy, that customers may or may not be into. Eventually, when the baby is born, it’ll be immediately taken from its mother and given to an orphanage, never to be seen again.

Of course, even if there’s a very small probability for a character to become pregnant, that probability approaches 100% if you play the game long enough. Therefore, I’ve put in several countermeasures for players who don’t want to interact with the pregnancy mechanic:

  • You can turn the whole feature off as an option.
  • You can toggle the use of contraception, which nullifies conception on a character-by-character basis.
  • A character’s fertility can be controlled via traits like: “Barren”, “Infertile” and “Fertile”.

Considering it only took me a day to implement the pregnancy mechanic, I think it’s safe to say the game’s systems have reached a decent level of maturity. I’m very happy with how things are turning out and I’m really having fun playing around with different traits and features.

January

Been working on minor stuff and experimental writing. I’m trying to stay away from big features because we’re in the middle of a hectic couple of months at work and I know from experience when to not over-extend myself.

Work is easier if I’m focused at the office and weekends are better when I’m not worried about work. It’s good life advice.

Mid-winter development dump

Hey, here’s another update on what’s been going on with House Dominae. I apologize that I haven’t taken the time to write about all the things I’m adding to the game. It takes time and I chose to spend that time coding instead (and also drawing).

LOTS of things have happened though, and I thought it would be funny if I went through my notes and compiled a list of all the changes that I’ve made since my last blog post. So this is just going to be a big dump of changes and I’m sure some of them won’t make any sense. But if anything, it should give you some relief that things are indeed happening, even when I’m not writing about it.

Gameplay / System

  • Added developer console with dozens of useful debugging commands.
  • Context strings format:
    • Added string references.
    • Added paragraph breaks.
  • Made changes to activity xml-format.
    • Updated several sexual activities.
  • Added support for activity-specific modifiers.
    • E.g: Having large breasts now improves titjob performance.
  • Moved more room logic to xml-format, nearly eliminating hard-coded logic.
    • Added throne room type (for seated activities).
    • Added training room type.
  • Newly purchased slaves now get randomized starter experience.
  • Customer system improved in general.
  • Customer can now have traits (quirks). 
    • E.g: Customers can be drunk, gross, rough, generous, etc.
    • Customers now have an associated level that determines their difficulty.
  • Customer classes overhauled.
    • Added non-human “Horsefolk” customer class with “horse-like” traits.
  • Restored groups of customers to working order.
  • Reputation system overhauled. 
    • The class of customers your brothel can attract is now based on the district your brothel is located in.
    • Brothel reputation is now based on the social class of your customers and the district your brothel is located in.
    • New customer types can be configured to arrive at specific points of brothel reputation.
  • Added activity for practicing vaginal and anal sex using a dildo item. 

Characters

  • Image scrolling tools improved. 
    • Added ability to zoom.
    • Added support for multiple character portraits. (Randomly selected once per game).
  • Resting while already rested reduces Stress.
  • Added “Spirit” stat to represent a slave’s mental strength.
  • Morale system implemented.
    • Morale is now affected by events that occur to a slave and things they like and dislike. What a slave likes and dislikes differ based on their Personality and Mentality.
  • Loyalty / Reason system
    • Loyalty and Reason is affected by events that occur to a slave, based on the slave’s current Mentality (previously “Mood”).

User Interface

  • Character details screen:
    • Fixed/Finished the Biography tab.
    • Any flavor text moved from main tab to biography tab.
    • Biography now lists a character’s cup size.
    • The “Rules” tab is now the “Manage” tab and certain commands were moved there.
    • Morale stat tooltip now lists events that will affect that slave’s morale. 
    • Status effects moved to own widget instead of being mixed in with other character traits. (Even though they’re both “traits” under the hood.)
  • Character markers now display the character’s current stamina.

Lastly, I’m working on adding animals as a character type to the game. Stay tuned!

Food

Here comes another update.

I’ve added food (and hunger) to the game. Food will serve two purposes: primarily it’s as a simple upkeep mechanic. Slaves require food to survive and food costs money. The second purpose is as a morale booster.

For every slave you acquire you have another mouth to feed. But you don’t buy or manage a food stock. Instead, your characters will passively consume some amount of units of food every turn and at the end of every week you pay for the total food consumed.

You can set how much food is allocated to each of your characters. You can starve a slave to save money, however they’ll be less happy and weaker as a result. You can also reward slaves by giving them extra food, which will have similar but positive effects.

Naturally, the owner/player character requires more food than the common slave to be content.

At the end of the day this is a fairly inconspicuous addition. The player is not required to manage their food consumption if they don’t want to, as long as they can earn enough to pay for the weekly food expenses.

Fall update

Sorry about the lack of updates. I just don’t end up posting as much as I probably should but development-wise I’m pretty much on the same pace as always. Maybe a little bit slower since work has been pretty hectic this fall.

Looking back at what I’ve done most of it have been focused on various systems in the game, which makes for really poor screenshots so bear with me.

Personality traits

Characters can now be defined with a personality trait. This is actually a very minor addition but it should be helpful when creating characters. Personalities work just as any other trait, but a character can only have one. I realized that a bunch of the psychological traits would serve better as personality traits, like “Shy” and “Slutty”.

Moods

I have a small confession to make. I stole this system from SoldGirl Town, almost in its entirety. In short, slaves now have two new stats: Loyalty and Reason (previously Mental health). These attributes are then used to determine the slave’s current state of mind or “mood”. Slaves generally start out with low loyalty and high reason resulting in a hateful mood. By slowly changing these stats through their actions, the player can alter the mood of a slave to successively make them more compliant and eventually

submissive and obedient.

It’s worth mentioning that this completely obsoletes the slave leveling system, which I’ll remove at some point. But I think I like this system better because it’s more nuanced and it adds a secondary way to affect a slave’s obedience besides the insubordination/punishment system.

Skills reshuffled

This is another small change. I redefined the skills and categorized them in groups; a primary group (Manual, Oral, Anal, etc.) and a secondary group (Elegance, Perversion, Technique, etc.) The point is that every sexual activity will require a skill in the primary group and (optionally) some skill from the secondary group.

The primary skills should be self-explanatory but you can have vaginal sex in lots of different ways and I wanted the game to reflect that. So if a customer walks up and wants rough sex, it’d require the slave to use both their vaginal sex skill and their rough sex skill. An aristocrat might want a more elegant experience. You get my drift.

This also leads into some future work where I want to add some non-sexual services like strip dancing.

Special skills

These were previously called “Techniques”. I wanted a way to clearly indicate a character’s skill growth. But I kind of solved that when I switched to a level based skill system over the previous linear one. Level 2 is clearly better than level 1.

So I changed techniques into be something a bit more interesting, I think. Characters will now occasionally learn special skills (I needed the word “Technique” for something else) and these are effectively buffs. Some special skills will be learned from books while some will have to be learned spontaneously. They should hopefully help with slave specialization and to differentiate slaves from one another.

Character connections

You can now inform the game, via the character creator, if two or more characters are connected or related somehow. Characters can be brothers and sisters (for that incestuous hotness), husbands and wives or just canonical friends or enemies. I believe that if the player knows that two characters are canonically related, the game should be able to know that too.

This will come into play later when I revisit the relationship system. I believe there’s a ton of gameplay potential to be had there.

Semantic engine improvements

I added an option to allow the game’s text engine to refer to the player character as “you”[Name] [is] tired will produce either “Chun-li is tired” or “You are tired” depending on the setting. Pretty neat!

I added an [a] command that will correctly output “a” or “an” based on the succeeding word. This is incredibly useful when referring to unknown things like names of customers – which now have randomized prefixes for variety.

Finally, I added [if], [elif], [else] & [endif] commands to do conditional statements. You could already do this but the existing syntax is more suitable for individual words whereas this will work better for full sentences and paragraphs.

Summer dev log (long, catching up)

Unity update

I moved the project from Unity 5.3.4 to Unity 2018.1.6. Unity 5 is getting pretty long in the tooth and I really want to implement TextMesh Pro (alternative text rendering plugin). Experience tells me that you should always avoid upgrading engines or APIs that your project is relying on but I figured I had the time and if I was ever going to do it, it’d be now. If you’re lucky nothing breaks but you can’t ever expect that. Truth be told, you never know until you try.

Technically, only one thing broke. Unity removed MSAA from UI canvases rendered in Screen Overlay mode (default camera). It made some screens, like the building blueprint screen, really, really ugly and unfortunately the solution to that issue was to change the rendering of every single screen in the game and that cause a whole mess of issues. It was a domino effect of shit. It wasn’t hard to fix but incredibly tedious. Eventually I was able to put everything back in order. #NeverUpgrade

TextMesh Pro

It’s a really good text rendering engine but the feature I wanted the most is its ability to insert arbitrary sprites in text.

Improved “Battle system”

If you squint really hard, House Dominae is almost like an RPG, where your slaves are party members and customers are enemies to battle and defeat. That’s honestly pretty close to how I’ve been looking at it. There is a system in the game where slaves encounter customers and attempt to defeat them, except not with swords and magic but with their bodies and skills.

Inspired by these ideas I made some changes to how the customer-slave encounters play out. Previously, slaves would roll dice based on the amount of experience points in their relevant skills. Those rolls would be modified by various circumstantial modifiers like gender/orientation compatibility, tiredness, etc. until finally tallied up and compared to the difficulty of the requested act.

That system worked well enough but while playing the game I observed that it felt really binary. Your slaves would either fail every time, or they’d succeed every time and it just wasn’t very interesting. I tried making the limit more fuzzy by allowing slaves to soft fail, i.e. get the job done but poorly.

The new system is closer to an RPG battle in the sense that every customer has a climax limit (health) and the slave gets multiple attempts (attacks) to reach that limit. If a slave can’t immediately satisfy a customer they can make an additional obedience check to see if they want to continue. Customers will do a similar “patience” roll to see if they’d want to continue. As long as both agree the slave can keep swinging. The result is the climax ratio the slave delivered divided by the number of attempts made. This means that a slave can “succeed” by 30%, which would be considered a poor result. They can also succeed by 200%, which could be interpreted as the customer cumming twice.

This level of granularity means that the progression of each slave’s performance will feel much less binary. Additionally all these values are fed into the text generation system so you can write really creative and detailed descriptions.

Foreplay

The service phase has been removed and is replaced by a foreplay phase. Unless they fail an obedience check a slave will always perform some kind of foreplay at the start of a customer encounter. They will maybe flirt or do a little striptease dance before moving on to the main event. This will cut off a small portion of the customer’s climax limit, making the encounter slightly easier.

Skills now have discrete levels

A slave’s performance in a skill used to be based on the precise value of experience points for that skill. That’s been changed to a more typical leveling system. Skill rolls are based on the level for that skill.

Obedience rolls

Obedience dictates whether or not a slave will do as they’re told. They can either accept a task, resist it, or refuse it entirely. I had a similar issue with obedience rolls as I did with customer-slave encounters where the rolls felt really binary. Either a slave would refuse everything or they’d agree to everything.

Thankfully, this didn’t need as big of an overhaul. I changed up the math to a much simpler (and to me, more predictable) look-up table. It gives me better control and I can tweak it as I go along.

It’s a tricky balance because I want Obedience to matter while not making it so that a slave can constantly disobey and drag the game down. This should work for now though.

More LUA stuff

Finally, this past week I’ve made some good progress with custom activities, scripted in LUA. Most has to do with exposing the necessary functions to the scripting environment, writing helper functions and sample scripts.

So far I’m very happy with how it’s turning out.

Experimenting with LUA

So far, almost everything in House Dominae is read and parsed from external text files (read: moddable AF) with one exception: activities (”sleep, work, clean”, etc.), because they are mostly logic.

I’ve been experimenting with adding custom scripted activities using LUA. LUA is a pretty common scripting language and is often used in games due to its simplicity.

It’s working quite well and I’m curious to see how far I can take it.

Techniques

What a productive weekend!

In House Dominae, any characters can attempt to perform any act, except they will fail 100% of the time unless they have the necessary experience points relevant to that act. I want it to be an open system but it also meant that it’s hard to discern what your slaves are capable of, without knowing the numbers.

To alleviate that issue I added something that I call ‘techniques’.

The basic system remains the same, except now when a slave gains a sufficient amount of experience in a certain discipline, that gets reflected by them learning a new technique, clearly shown in the character window.

Customers will only ask for activities if one of your slaves possess the technique relevant to that activity. The net effect is that advanced activities won’t be introduced until you have someone capable of performing them.

A secondary benefit of techniques is that you get a better sense of a character’s growth and it’s easier to compare them.

Books

Almost as a direct consequence of adding techniques, I felt the game could use more alternative ways to gain experience.. so I added books! and a book store!

You can buy books and give them to a character. They can then read that book up to three times and gain experience on the subject of that book. Once a character is finished reading a book it stays in your inventory and you can give it to someone else to read.

There are advanced books and rare books too, so it’s a good idea to check the book store regularly to see what’s for sale that day.

Rooms, Furniture, Props

I’ve been working on rooms and room upgrades across a number of weekends. I’ll be honest, this has not been the most fun task for me, but a necessity since upgrading your brothel is an important progression mechanic in the game.

As the owner of the brothel, one of your jobs is to assign a purpose to each room, and to maintain and upgrade them. You can only house as many slaves as you have beds so if you want to grow your business you will inevitably move to larger and more spacious buildings.

Admittedly, a lot of the rooms will be bedrooms, but I intend to have a number of other useful rooms available. One example is the bath, where characters can go to cleanse and reduce some stress. Another is an isolation room where you can confine slaves either as punishment or to slowly eat away at their psyche.

But all of this required a decent amount of foundational work. Work that is now mostly complete. Rooms can now be dressed up with furniture and props based on the room type and level. The game is now also smart enough to where it can utilize the same prop placements regardless of a room’s orientation or dimensions, which I hope will save me a lot of time putting them together.