Theory and Practice

As is often the case, I had an interesting idea in the middle of taking a shower the other day. It’s a change that affects training and how characters earn experience points. In order to explain it, I first need to talk a little bit about how experience works in this game.

(Btw, when I use the word “training”, it means instructional training, as in non-physical.)

Earning experience

There are two primary ways for characters to earn experience:

  • Through training – either at the hand of a trainer or by reading books.
  • Through practice – by doing the thing.

This works okay, but there are subtle problems with this picture. One is that the player could opt to not use the trainer at all. Even worse, you often earn money on top of the experience when choosing the practical route. This somewhat defeats the purpose of having a trainer, even though they should be the most important person in the brothel, at least thematically. I would prefer the trainer to serve a larger role than what this allows.

One way to solve this is to make it more worthwhile for the player to use a trainer, such as giving more experience points from training than from practice. This is the solution that I have been going with so far.

Unfortunately, that raises other issues. It is still possible for the player to use a trainer exclusively to level up their slaves as high as they want. The only trade-off is time and slightly less income. You can even get into a strange situation where a slave has reached the maximum of their sexual skills, but is still a virgin.

The character screen, listing a character’s skill levels and experience points

Let’s get theoretical

My shower induced solution to these problems was to split experience points into two parts: theory and practice.

  • Theory is earned from training. Theoretical experience is not “real” experience and doesn’t contribute to the skill level or performance.
  • Practice is earned when performing a skill. Practical experience and is what actually matters when it comes to performance and leveling up.

When a character earns practical experience, they also convert some of their theoretical experience into “real” experience. This lets them earn more than if they hadn’t received any training to begin with, and that is the point.

Let me explain it with a visual example:

When serving a customer, without any training…
…this is how much experience is normally gained.
In comparison, after receiving some training (striped bars)…
…they earn the same amount plus a portion of the training that gets converted into bonus experience, increasing the net gain.

The conversion rate is adjusted so that you always come out on top, accounting for the turn spent training.

Final thoughts

The effect of this is that training becomes more of a lubricant for character growth than actual growth. Trainers become instrumental to the progression of slaves without becoming exploitable. Finally, “turning theory into practice” just sounds right and makes thematic sense to me.

I’m a little bit worried about the added complexity, but I am confident I can explain it well in the UI. I’m going to feel this out for a while and see how it affects the game as a whole.

Technically, this was a very small change that only took an afternoon to implement. If it had been a larger change, I probably wouldn’t have done it this late in the project. If for some reason it doesn’t work out in the long run, reverting back to the old system is trivial.

If you have any feedback or thoughts, please share them on the Discord.


Random events, Secrets & Crimes

(This is an older, unpublished post, that I decided to finish and publish months after this feature was implemented.)

Since my last update, I’ve added random events to the game, or rather, I rewrote an existing but unused random events system. The previous system was more or less what you’d expect. The game had a list of authored events and it would trigger them, randomly, like pulling a chance card in Monopoly. This wasn’t very interesting and it was honestly hard to write interesting events that would fit at any point of a typical game.

The new system is much more flexible, and was motivated by how well it dovetails with other parts of the game. Like most parts of this game, it uses contextual information to choose the best event for any given situation (or none at all).

Random events are instead triggered by the characters themselves, either alone or together with another character. If that other character happens to be the player, they’d be given the choice to respond, otherwise, the event may just happen in the background.

For instance, a slave could ask their master for sex:

A slave, taking the initiative.

But this would only happen if, in this case, Cammy wanted this to happen, or another way of looking at it, if the player had treated Cammy in such a way that they earned it.


The new system also implements something I call “micro-events,” which are mostly there to stir the pot, so to speak. It’s meant to simulate slaves interacting amongst themselves or even behind your back.

These are very small, simple events, hence the name, and they’re things like slaves socializing with each other, getting into arguments or casually flirting. All of which causes their relationships to slowly shift over time without the player’s direct involvement. So as the player, you may discover that your A-team of slaves had a falling out and suddenly hate each other, or that two of your slaves developed feelings and fell in love.

Evolving relationships was the original intent for the relationship system, but I found that it wouldn’t work unless there was also spontaneity.


Some of these micro-events may actually be entirely hidden from you. Such events are called “secrets”. A secret could be something mild, like pocketing the tip from a customer, or it could be a slave breaking one of your rules, making it a “crime”.

Crimes should naturally be punished, but they can only be punished after you’ve discover them. So there’s a new action called “Interrogate”, which will let the player question a slave for any secrets they might be holding. Obedient slaves will gladly tell you, and even tell secrets about other slaves. With disobedient slaves, it won’t be that easy.

Here, a slave is tattling on another.

Rules and Karma

Allocating disciplinary points into rules.

As their master, you decide what your slaves are and aren’t allowed to do. But I wanted to support this with some gameplay. Therefore, some rules have a disciplinary cost. That essentially means that as your slave gains discipline, you can choose where that discipline goes, but also that you won’t be able to force them into everything all at once.

When a slave misbehaves, that is reflected in their Karma score. Negative karma means they can be punished while positive karma can be rewarded. Whenever you punish a slave, their karma is converted into permanent obedience, and gets reset. Choosing when and how often to punish a slave will greatly impact their growth.

A slave’s behavior will earn them karma points.