Blowjobs…

This past weekend I decided to take care of something that’s bugged me for months, namely the code that evaluates sexual encounters. I’m sure there’s a forum post of me somewhere talking about how great I had made it, but don’t believe past me!! Past me was wrong!

Without going into too much details, in general, it was another case of me overthinking a simple problem and going out of my way to obfuscate the math, to the point where even I got confused. The new system simplifies a lot of it, and in general it’s easier to reason about the numbers. If an blowjob request has a difficulty of 3, the slave will need an Oral skill of 3 to perform it successfully. Straight forward. Stuff like that.

Like before, there’s an obedience check, a service check and a skill check – and now the math just lines up much better. You don’t have to succeed them all, but doing so yields the best result.

I’ve also changed how experience points are accumulated. The goal was to give experience proportional to the difficulty of the requested act, without making it too rewarding, or not rewarding enough. Again, by simplifying the math I got closer to that goal than before, I think. Right now, from zero to a hero cock sucker takes about 15 cocks, for a middle of the road slave.

Finally, I put some time into the encounter texts. I used the blowjob event as my test case and tried to feed as much information I could to the text generator, and write appropriate phrases for it to use. The text in the screenshots above are generated by the game, for the same blowjob event. I guess one had a slightly better outcome than the other.

The “Nice boobs” phrase is an indicator that the customer had an affinity for one of Chun’s physical traits, and “Chun-Li welcomed a thug with a smile” hints at a very successful service check.

Taking inspiration from other games

I’ve been playing two new games recently,

Yakuza 0, and SoldGirl Town. The latter is a straight-up sex slave simulator while Yakuza has an action-adventure game with an optional “mini-game” where you run a hostess club.

These two games are obviously wildly different, but they share a common element, and that is how the player is tasked with matching girls with customers.

So far I’ve gone out of my way to hide numbers from the player. At any point where I do show numbers I always try to associate it with a word, to at least give the player a chance to ignore the underlying math.

The thing that I have come to realize is that sometimes it does makes sense to expose the raw numbers, in order for the player to better understand the rules and make educated decisions, and to form plans. So I think I may need to relax the roleplaying part of House Dominae on behalf of the simulation game part.

Yakuza’s system is simple and easy to understand. Customers drop in with random values in three stats:

  • Primary preference (Talk, Party, Love, Skill)
  • Secondary preference (Sexy, Beauty, Cute, Funny)
  • Money on hand (Poor, Average, Wealthy, etc…)

     

The primary and secondary preferences directly correlates with stats for each girl and the player must match the best girl for all customer, (or save them for higher paying customers.)

The customer may get annoyed and leave if you give them a bad match. The secondary preference isn’t as important but it helps to make the customer spend more money. Wealthy customers have higher demands than poor customers, but they spend a lot more.

I haven’t played a lot of SoldGirl Town yet, and it took me a couple of attempts to break through the language barrier, but I think I’ve gotten a pretty good early grasp at its system.

In SoldGirl you kidnap girls and force them to work as sex slaves. Each girl has three key stats:

  • Appeal
  • Technique
  • Nymphomania

Unlike in Yakuza you’re not matching these values against individual customers, in fact you have little control over customer matching, rather they determine the girl’s success rate against groups of customers. High-stat girls can be placed in higher paying areas, netting you higher profits.

So what does this mean for House Dominae? Well, I haven’t implemented any of my ideas yet, but I’m strongly considering having some kind of archetypal matching between customers and slaves.

One possibility is that customers arrive with a very obvious requirement, like “I want a girl with Beauty 5 or higher”. The old me would cringe at that, but I believe that is much more easier for the player to reason with. They can immediately find a compatible match, and make additional considerations if they choose to. Or if they don’t have a suitable slave that can potentially create a new short-term goal.

Was this interesting? Let me know. More updates soon.

Modeling pt.2

I kept working on the model because it’s so much fun. Look at all that detail you won’t be able to see in the game! 8D

The actual game asset will use a much lower resolution texture, but at least I now have a good base to work from.

But yeah, I’m calling this little experiment done for now and I will move on to other things.

Modeling pt. 1

 

While I like the concept of customizable character pawns, I’m not really sold on how they have looked so far. My aim was to have extremely simple 3D approximations for characters, that would be super easy to customize with a few parameters. However basing them on Kokeshi doll meant they became too simplistic and visually boring.

So I took a day and tried creating a new proper model and here is the result. I’m going for a super deformed look with relatively low detail. I haven’t put it in the game yet, but I’m hoping it will turn out great.

Update:

Threw it into the game and yeah, it looks alright. I can move forward with this. 🙂

Character creator preview

I’m currently doing a (super hot) art commission so I have no progress to report on House Dominae. Instead I’ve decided to post some pics and details on the game’s character creator.

House Dominae is very much a game that revolves around named characters and one of my goals is to elevate them from more than just a bunch of jpegs. I’ve cooked up all kinds of systems to hopefully enable that but they all add to the complexity of the characters and a good character creator is paramount to make that work.

The creator is written as a separate application, using modern C++. Compared to the game itself it makes for pretty ugly screenshots so please bear with me here.

Admittedly, I rushed this initial version because at this point I only need it to create a small stable of test characters and I didn’t want it to steal too much time from working on the game. That said, the creator still needed to do a lot.

The most important thing is to make it easy (and fast) to add, configure and tag event images. Additionally, because images are cropped in the game it’s important to give the author full control over how each image is cropped and panned, without introducing tedium.

Tags are ordered by category and assigning tags is straight-forward but this is one part of the creator where I need to spend some more time before I can call it good. There are a lot of improvements I still need to do, and I cringe a little looking at these early screenshots, but all in good time.

Refactoring the building mesh generator

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.