News:

Please request registration email again and then check your "Spam" folder

Former www.henthighschool.com

[Java] SimBrothel C

Started by Ch12, Dec 28, 2024, 08:59 AM

Previous topic - Next topic

Ch12Topic starter

Hi JMan,

Nice to see you also returned. :)
All the games you mentioned are kind of my excuse for doing a very focused economy game. There are quite a few "hybrid" options available, anyway. And with little experience as a game designer, I was too scared of falling into the same pytfalls (pun intended) even more experienced people than me were unable to avoid.

Since I remember you as an active modder / developer, I'd like to point out SBC does provide many opportunities for customization. Most entities are customizations from the start. (Items, abilities, brothels, missions, custom mechanics for girls, ...)

I guess BK offers more freedom, because you can basically work directly in the source code.
On the other hand, this also implies you have to hack a lot of things directly into the source code, because there's many things its mod system simply cannot do. I think it's safe to say you experienced first hand the problems that emerge from diverging code basis. ;)
In SBC, each customization is a nice, separate entity designed to coexist with the others without getting in their way. (naturally, this also leads to some limitations)

About quitting the game, I once put a "Save & Quit" button under the other one, but it was too easy to push it by accident. Putting it somewhere else on the main screen was also weird, though. After that, I felt the Windows Close button gets the job done just fine.


Regarding the Job Mod, I'm not angry at all, on the contrary. I'm glad it sparked some creativity. Feel free to walk your own path with it. You can also rename it, if you like. My personal recommendation would be to just name it JobMod, or pick something new. I wouldn't like to see it being called "Jman's and Chris' and Someotherdudes' Jobmod" at some point. :D
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

doombot

Quote from: Ch12 on Dec 30, 2024, 06:02 AM@doombot
Anyway, if the game is not to your liking, it is definitely unrelated to the underlying technology. I did not call it "Simbrothel J" for a reason. :D
Eh, I'll live.  To be honest I feel like I play too many adult games to really appreciate any of them anyway.  Would probably enjoy things more if I stepped back from a few.

Jman

#17
Well, the reason I retained the name was because

  • it was already known under that name (CJM),
  • I wanted preserve attribution, since I only tweaked the mod and didn't really create anything substantial myself,
  • it's still only got one name on it, and not Jman&co. Someotherdude can name it Chris's Mod Job Some More (CJMSM). :)



I took a quick look at customisations and while I appreciate that these basically plug directly into existing code, all that 'private static final int' and 'public final class X extends Y' and other Java lingo could be pretty intimidating to potential modders.



Yes, I got bitten bad by 0.2 passing me by, but that was always more or less inevitable, since Bonanza was going to need constant maintenance and merging in any case. I suppose a more modular architecture might have simplified things a bit, but I doubt that bit would have been large enough to matter in the end.



About 'Save&Quit', how about going without a button at all, and just make pressing ESC trigger a confirmation dialogue? Or some other key, if ESC is inconvenient.



Some suggestions from a brief play session:
  • I understand the reluctance to provide an actual MC, but how about allowing to point buy or otherwise custom-build your first employee? Or at least show the stats/traits/other info so the player can make an informed decision?
  • The one thing that really bugs me is the constant need to press the 'Estimate' button. It's kinda similar to the upkeep bar in BK, and should have an option to let the game auto-adjust it.
  • I kinda wish the rankup button wasn't at the bottom, but somewhere closer to the rank name. Perhaps even just below the 'tab' buttons.
  • I would appreciate the action recap being less of a string blob and more along the lines of BK formatting. At least line breaks for different stat gains/XP/gold. Perhaps some colours or icons, too.
  • There's not much info on how stats actually effect what happens. Is +5 Joy better than +5 Constitution for customer numbers? How far to the next 'more customers' break-point is she? Etc.
  • I really miss BK-esque sex action blurbs. Even with all the repetition, those made the night action feel much more 'real'.
  • Also, the filename display isn't helping with immersion.
  • There's a typo that says 'oppulent', forget exactly where.
And with strange aeons even death may die...

Ch12Topic starter

#18
Regarding modding, I think you always need a bit of specialized know-how, no matter the game / technology. Maybe Python is a slightly less complex language, but ultimately it also is a very expressive language with some non-trivial constructs (e.g. generator functions for arrays).

Thank you for your suggestions and feedback:

  • I'll put the Quit dialogue on my TODO list. Shouldn't be too much effort to implement.
  • I understand the reluctance to provide an actual MC, but how about allowing to point buy or otherwise custom-build your first employee? Or at least show the stats/traits/other info so the player can make an informed decision?
    The first Joker is always an XP Joker, to give you some control at the start, but I guess it is not exactly the same as completely customizing your character. Hmmm.

    I guess it would be possible to enhance that, but I'm not really sure it will work out.
    With the way the XP system works, you would probably just smear the stats evenly, so it might be necessary for this initial step to use a different stat cost approach.
    Either way, The problem I feel at the horizon is Min/Maxing. Also, what to do about Joy? it might turn out to be most efficient to put all your points into Joy since you cannot raise it easily afterwards.

    I'll keep it in mind, but unless I have some inspiration, I feel there are too many problems.
    My long-term idea is more about different employees offering different challenges. (For employees with customizations, the stats are basically pre-configured).
  • The one thing that really bugs me is the constant need to press the 'Estimate' button. It's kinda similar to the upkeep bar in BK, and should have an option to let the game auto-adjust it.
    You have a point here. I'll try to include some "Auto-adjust" feature with the next version.
    For now, the price gets adjusted at least when you Rank Up.
  • I kinda wish the rankup button wasn't at the bottom, but somewhere closer to the rank name. Perhaps even just below the 'tab' buttons.
    Hm. I kinda like it more at the bottom, but I'm definitely not a UI specialist. Do you have some specific argument for putting it at the top?
  • I would appreciate the action recap being less of a string blob and more along the lines of BK formatting. At least line breaks for different stat gains/XP/gold. Perhaps some colours or icons, too.
    The problem with line breaks was that it would use too much space, which I'd rather reserve for more stories. On the other hand, I see where you are coming from.
    You get red color if a change is unusually big (e.g. when a customer hurts you). I tried separete colors for every change a while ago, but I felt like I was looking at a rainbow.
    Consider that later on, you have 20 or 30 girls. There will be hundreds of changes, every turn. Hmm.

    Maybe I'll add one or more options to the preferences (at least for linebreaks and maybe also colors). Seems like something that could be strongly up to player preference.
  • There's not much info on how stats actually effect what happens. Is +5 Joy better than +5 Constitution for customer numbers? How far to the next 'more customers' break-point is she? Etc.
    You can hover the mouse over an attribute for a tooltip. That should provide the information you are looking for.
    EDIT: If you are looking for the finer details, I think that's beyond what I want to put into the UI. I can provide the code for brothel's turn calculation with the next release. I actually thought I had done that, but it seems I picked some interface by mistake.(joy, constitution and libido all provide the same towards number of customers)
  • I really miss BK-esque sex action blurbs. Even with all the repetition, those made the night action feel much more 'real'.
    I am hoping for the stories to gradually fill that role. (as more content gets added). At the moment, many stories are tied to unlocking upgrades for the brothel.
    I'll try to write a few more stories for when you have no upgrades yet at all.
  • Also, the filename display isn't helping with immersion.
    Interesting feedback. I added it because I was missing that information sometimes in BK. (For girlpacks with lots 1k+ images, it can be non-trivial to guess an image's name)
    But you are probably right that this happens only rarely and the information is way too prominent.
    I'll probably put the employee name there instead, and see if I can come up with something better.
  • Thanks for catching the typo.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

Jman

#19
Well, while the difference between Python and Java syntax/paradigm isn't overly large, it's still a far cry from doing just data-based modding where you tweak some values, or the excellent Ren'Py dialogue-and-image flow that can mostly be written just as you'd write a book.


Anyway, on to the feedback to the feedback. :)

I feel that if there's a problem with either spreading the stats too evenly, or maxing Joy, then that problem also exists in the game proper. So it doesn't really matter, it's either a problem both ways, or it's not.

You could also not let people tweak everything down to a point, only buy 'low', 'medium' or 'high' values. Kinda like what the Headhunter does. ;D But at least some control over (potential) traits/abilities would be interesting and allow players to try out different strategies.

Also, this whole game is an exercise in minmaxing. So worrying about that in char creation is a bit late. :D

Anyway, if you're still not convinced, at least displaying their stats (for the statted gals) and special qualities similar to the hiring screen would be an improvement.



My main reason for moving the 'rank up' button is that it took me a while to realise it's there. A secondary reason is mouse mileage, since it's kinda far from the more commonly used buttons. And it'd also fit together thematically with the rank display itself.

Also, it took me a little while to understand that AP is not 'action points', rather it's 'make ability active all the time' points. :-[ Might have had something to do with the first ability being 'Rest', the description of which would also fit a one-time action. I was puzzled why these AP weren't recharging for a few weeks.



If stat gain line breaks would cut too much into text space, you could also reuse the 'file name' area and make a small window there? Or cut off the right side of the top info bar and move the changes there? Should fit 8-9 change blocks. More, if you use icons instead of text.

But, yeah, I might be a little too attached to coloured text. :D I wonder what's happened to neronero, he used to be pretty active until just a short while ago, and AFAIR he is a UI specialist.



I was indeed looking for the finer details on how stats work. The overview is fine, but it's hard to deduce the actual effects and make informed decisions. Something similar is happening with the advertising, where I'm also groping blindly about how much I should pay to fully utilise a girl while not overspending. Perhaps that's intended, though.

Also, it'd be nice to actually see exactly how much XP it costs to upgrade a stat.



I'm not actually sure what these 'stories' are. Stuff like getting tentacled and working it off for a week?
And with strange aeons even death may die...

Ch12Topic starter

#20
I agree Renpy has a very well designed system for exressing the usual needs of visual novels. On the other hand, for any "real" modding, (especially if we are talking BK and not Renpy in general), you also have to know your Python. (or get to know it relatively quickly ;) )


Quote from: Jman on Dec 31, 2024, 09:14 AMI feel that if there's a problem with either spreading the stats too evenly, or maxing Joy, then that problem also exists in the game proper. So it doesn't really matter, it's either a problem both ways, or it's not. Also, this whole game is an exercise in minmaxing. So worrying about that in char creation is a bit late. :D

I do not quite agree with you here. What is a problem on the other side, can be a random challenge on my side. With every game, I have to come up with a way to improve my situation. (e.g. maybe the first girl can only have 1 customer. Or their Refinement is limited. Or they are barely making money because their sexual stats are low)
At that point, I can throw all my min-maxing prowess at the game, without affecting replayability. (Rather, it becomes the source of replayability)

I think the whole character building thing makes sense if there are different classes you can choose from, you can toy with different combinations of race, job, alignment, gender and whatnot.
But in SBC, without such things in place, I think it would unavoidably (and very quickly) lead to one or maybe two "ideal" configurations, if you could buy/pick your stats.


Quote from: Jman on Dec 31, 2024, 09:14 AMAnyway, if you're still not convinced, at least displaying their stats (for the statted gals) and special qualities similar to the hiring screen would be an improvement.

You do have a point here. Since the customized employees ideally are an individual challenge, it would make sense to know what you are buying into when selecting the first girl.



I like your arguments for the Rank-up button. I'll probably give moving it a try in the next release.

Regarding stats-change text, I'd rather avoid a bigger redesign of the UI. At the moment, the viewport has 4:3 aspect ratio everywhere, and the background images are also finetuned to that. Changing the viewport aspect ratio would mean the image would scroll all the time. (Similar to how it is on the starting screen)

Anyway, I'll make this configurable in some way, but probably leave the text where it is.


For advertising, I hope you get an intuitive feel for it quickly. (at least, that is the intention)
Also, the decision for advertising is strongly influenced by how much the girls in a location earn. e.g. if your girl makes 20 gold per customer, drawing in 1 or even 2 additional customers at the price of 50 gold will always be a net loss.

Anyway, I can understand your wish for understanding the mechanics better. What you can do is enable different levels of logging, either by modding start.bat or by creating a copy of "simbrothel-warningsOnly.bat" with your prefered level of logging. At the more sensitive levels, you get more detailed insights.


Upgrading a stat with XP always costs as much as the stats unmodified value. (With the exception of refinement, which costs twice as much)


Stories are little text descriptions. E.g. if you buy the striptease room, sometimes you get a text that your girl seduced someone with her dancing skills. Or the Garden has a Story for refusal.

The difference to "real" events is that nothing out of the ordinary really happened, or at least nothing on top, it's mostly supposed to be flavor text. On the other hand, an event leads to different outcomes in money, health, etc. E.g. a customer hurting someone, or your girl stealing money, (or getting tentacled, as you put it ;) )

The finer details are described in develop/customization(.md)

EDIT: I converted the second post of the thread into a TODO list, so that I hopefully do not forget about something promised.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

Jman

#21
Well, the difference between picking a girl and then going minmax on her, and doing that during char creation doesn't seem so different to me. You can also do the usual thing of having prebuilt girls have advantages, like higher point-equivalent totals compared to custom-built munchkin gals. And, in general, if some combination of stats forces everything into one or two 'builds', these very same builds will be the winners during actual gameplay. So while you may start in somewhat different positions, you'll still play the same and end up in the same place. If you're worried about that, it'd make sense to worry about either both or neither of chargen/stat building.

That is, the 'replayability' will be an illusion. I believe this is what's called 'illusion of choice'. :)



I didn't mean you'd have change the image area, just either add a small window into the corner or replace the usually empty part of the top bar with one (you don't really need to see mission info during the results phase). Usually, there's nothing too exciting happening in the top right of an image.



I'm still kinda in the dark about advertising. I can get to a point where there's usually enough customers, but then some days I miss not one but several, and combined with the enforced ironman mode and tight economy I'm not exactly incentivised to try and find an optimal break-point.

Same deal with max customers per night. Just increase libido and constitution until she rolls over, but no idea what exactly I'm aiming for.

A more detailed desctiption of the mechanics at least in some readme would be nice.

Edit: Okay, the logging really helped. I see it's 20 'points' per additional customer, right? /edit



It's nice to know about the stat costs, but in practice, it'd be more useful to have a hover tooltip. Otherwise, I'd need to go and hover to find out the base value, do a little mental calculation, and I was supposed to be weighing the pros and cons of which stat to increase this whole time, wasn't I? :)



I think I'm playing too conservatively. I'm at day 136, the mission wants me to have 7 employees by day 150 and I just pushed myself to 5 with considerable trouble.



The two .md files are a treasure trove of info, but perhaps making them a little more obvious wouldn't go amiss. Also, there's a reference to 'doc/TurnCalculationLister.java', which I couldn't find. I did locate 'TurnCalculationListener.html', which is sort of helpful, but not quite.



I tried the 'finest' log option, and it's indeed very useful if you know where to look. I wish I'd known about the customer limit of 3 earlier. Is there a way to increase this 3/5 limit?



Hmm, are 'events' the things mostly in GlobalListeners, and 'stories' are attached to other objects, like buildings?



Edit: Also, I don't know if it's just me being too used to BK, but the kinda random sex action in the images is sorta bothering me.
And with strange aeons even death may die...

Ch12Topic starter

#22
I planned to add the brothel logic with the next release, but at the moment I'm getting a bit sidetracked with other stuff.
So to not make you wait pointlessly, I've uploaded the file with the brothel logic. (Link to MEGA - it seems you can no longer upload smaller files to the forum?)
This should let you check what's going on "under the hood" without forcing you to reverse-engineer.

Thx for pointing out that TurnCalculationListener(.java) is missing as well. This one you can find in customization-source.jar. Open it as a zip-File (e.g. rename it to .zip, or open with 7z) and extract the file from mygame\simbrothel\game\turn .


Regarding advertising, you deduced it correctly, its 20 for a new customer.

For customers, it's 55 stats for one customer. Basically, (Joy + Constitution + Libido) / 55, rounded down.
On top of that, health plays a minor role (basically reducing it a bit if it gets low), and customizations can also change it.
There's also maxCustomers, which is usually limited to 3. Customizations can change it, but never to more than 5.
I think at the moment, only Garden increases (employee) customers, while Tsunade and "Sex Maniax" adapt the number of maxCustomers. .


You can sometimes improve your odds by holding back a bit before you get your next mission. E.g. let's say it's Turn 58 and you just saved enough money to buy the First House.
If you wait for 2 days, you may get "Buy the First House until day 90" as a mission and can finish it right away. If you buy it immediately, the mission would become "Buy the Second house until day 90".
Of course, you may get a completely different mission, so holding back too much is still going to hurt you economically.


You can in principle generate events and stories in any listener. Pretty much any game entity has access to the full TurnCalculationListener arsenal. E.g. the Catgirl ability can trigger a custom event during resting.

Practically, indeed many general events are currently handled by GlobalListeners, but many employees have custom events as well. In the latter case, most are only for the individual, but TohsakaRin has an afterwork event that can trigger for anyone.

The term event is maybe a bit too fuzzy here. To be exact, there's custom events that happen during employee calculation (always tied to an employee), and afterwork event that happen "globally" (can also be for one employee, but also for zero or all of them)

On the other hand, Stories are always tied to an employee result.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

Jman

#23
Well, I tried to modify max customers a little, and it doesn't seem to be working?

Quote from:  Mechanic_MaxCustomersExtend.javaimport java.util.*;

import mygame.common.*;
import mygame.simbrothel.game.*;
import mygame.simbrothel.game.brothel.*;
import mygame.simbrothel.game.employee.*;
import mygame.simbrothel.game.employee.EmployeeImage.Tag;
import mygame.simbrothel.game.employee.EmployeeImageQuery.Search;
import mygame.simbrothel.game.turn.*;

/**
 * Moar customers!
 *
 * @author Jman
 */
@SuppressWarnings("unused")
public class Mechanic_MaxCustomersExtend extends BasicTurnCalculationListener {

private static final String MODIFIER_NAME = "Max Customer Extension";

@Override
public float step02a_0215_modifyCustomersAmount(Employee employee, float customers, int maxCustomers) {
// An extra customer, potentially.
// This is about the amount customers that employee can have, not the amount of customers visting
return +1.0f;
}
}
}

Edit: I also tried 'step02a_0215_modifyCustomersAmount' from the employee ability examples, and attaching either to a brothel itself, and still no dice. I wonder if the Garden itself is actually working, but I don't have the money for that right now. /edit





The brothel logic file is super useful, thanks!

Our current forum is very bandwidth-limited, so posting attachments is not really possible anymore.



Hmm, the random factor in customer amount is pretty big, +/- 2.5 customers potentially. No wonder my meagre advertising wasn't always keeping up.

I see that health limits you to 4 customers when at 66+ health, 5 when at 99+, 3 when 60+ and just 1 when under 60? Not sure I like this kinda distribution...



I'm at day 160 now, and the game wants me to rank up four gals to a rank I don't have access to yet! This is really escalating quickly. :o Am I victim of my own success or something? Or is it really supposed to go 1 brothel upgrade per 50-60 days?



Also, I see I'm not convincing you about chargen nor UI nor stat tooltips. :P
And with strange aeons even death may die...

Ch12Topic starter

#24
The basis of your mod looks good.
Depending on what you want to achieve, you want to override, step02a_0210_modifyMaxCustomers, step02a_0215_modifyCustomersAmount, or both:
  • step02a_0210_modifyMaxCustomers increases the maximum a girl could have. This is usually 3, so if you want her to have 4 customers, you need to return +1 here. If the girls stats are low, she will still have less customers, maybe even just one. But with enough (joy+const+lib), she will get up to 4.
  • step02a_0215_modifyCustomersAmount increases the actual amount of customers the girl can have right now. If you return +1 here, she can have two customers, even if all of (joy+const+lib) is 0. she will not be able to have more than 3 customers though, even if (joy+const+lib) are maxed
  • You could override both methods in your mod if you want, to combine the effects.

The healthMax is like this: (one part of the equation uses ceil, the other floor)
100-67 - 5 customers
67-60 - 4 customers
60-00 - 2 customers


I also saw that I overlooked this part in your last comment: "Edit: Also, I don't know if it's just me being too used to BK, but the kinda random sex action in the images is sorta bothering me."

You could for instance create a few abilities like "BJ/Sex/Anal specialist", which fire stories all the time. (overriding the default images) Or maybe items, if you don't want to be dependent on randomly learning the abilities.


Regarding UI changes, I added a TODO list on the main page. Many of your suggestions have already made the cut.

On the other hand, I won't be doing a more detailed stats tooltip. Done properly, it would require replaying the whole brothel logic for a girl. To make that work, I would have to refactor large parts of the logic.
I cannot do a quick hack either, it would just create confusions when customizations (like the one you are working on) are active.
It's way too much work for too little return.
As a workaround, you can use logging in your customizations too, both for debugging and for taking a closer look under the hood. You could even create a pure logging mod to output any additional infos you want.


EDIT: Regarding your game, depending on the difficulty, you have different different time limits until scoring. (180/240/300 days) These are designed to be reachable with the Central Palace and R8 girls, but not too easily. On Easy, you progress way faster than on Hard.
Regarding missions, sometimes you get unlucky with having very tough missions back-to-back. It's relatively rare though, and also usually happens only later in the game. While a missed joker is always a missed opportunity, later on its not as crushing as if it was in the early game.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

Jman

#25
Okay, I sorta misunderstood the two functions, I thought one was global and the other was specific to a girl. Still, when I do this, there's no change in the 'customers servable' value, not in-game nor in the log:
import java.util.*;

import mygame.common.*;
import mygame.simbrothel.game.*;
import mygame.simbrothel.game.brothel.*;
import mygame.simbrothel.game.employee.*;
import mygame.simbrothel.game.employee.EmployeeImage.Tag;
import mygame.simbrothel.game.employee.EmployeeImageQuery.Search;
import mygame.simbrothel.game.turn.*;

/**
 * Moar customers!
 *
 * @author Jman
 */
@SuppressWarnings("unused")
public class Mechanic_MaxCustomersExtend extends BasicTurnCalculationListener {

private static final String MODIFIER_NAME = "Max Customer Extension";

@Override
public int step02a_0210_modifyMaxCustomers(Employee employee, int maxCustomers) {
// An extra customer for the girl herself
return +1;
}

@Override
public float step02a_0215_modifyCustomersAmount(Employee employee, float customers, int maxCustomers) {
// An extra customer
// This is about the amount customers that employee can have, not the amount of customers visiting
return +1f;
}

}
}


Attaching these to a brothel does work, however. Not sure what's going on here.

But, since brothels are baked into a save, that doesn't help my existing game. :(



Also missed the ceiling in the health check. :-[ Still, especially since 3 is the normal maximum, these health intervals seem pretty strange. Basically, you want to keep above 60 and don't really care much about any other values?



I'm not sure why you'd need to redo the whole logic for a tooltip. The value is already attached to the button or thereabouts, is it not? Since that's what's subtracted from XP when you click it. I don't want a detailed calculation, just 'it costs this much XP to click'.

Edit: I think I misunderstood. Yes, displaying a whole potentially customised stat calculation in tooltips would be awesome but kinda hard to do well without a lot of extra work. However, listing the (Joy+Con+Lib)/55 thing would be useful, even if it'd not be precise every time. Or perhaps even a 'max customers' stat that tracks your girl's progress towards the next breakpoint. /edit



I think I was on Normal. I don't really see how I'm supposed to be able to afford 45K for the palace when a girl makes a few hundred per night at most, there are already lots of roadblocks and expenses that kneecap this income quite a bit (items, brothel upgrades, injuries, regular days off for rest, tentacle abductions, etc), and I don't see any way to scale nightly income per girl even remotely the same way the prices are going up. Rankups aren't BK-style exponential increases here. Perhaps I'm just not pushing for enough girls and am too stuck in the 'perfect girl' mentality? I bought my second girl off the slave market for like a thousand, I guess that was a mistake?



Edit2: Adding a bunch of items/abilities to trigger stories looks to be a bit of work, and it won't solve the problem of 'normal' events being a mismash of various images. I was more imagining getting a random image and then generating a story out of the tags of said image, like BK does on occasion. Well, very minimally, at least.
And with strange aeons even death may die...

Ch12Topic starter

#26
I gave your source code a quick try, you have one closing bracket } too much.

You should see a compilation error in cases like these. It helps to start the game with "warningsOnly.bat" when you're working on a new mod, since then you can directly see the error message from the compiler (without having to look for it inbetween all the other stuff)
EDIT: Maybe your file is not named .java? Then it would not get picked up by the compiler.

Anyway, remove the bracket and it works just fine. I upped both values to +5 and then there were always max customers for all girls.

If you add the methods to a brothel, it will trigger only for that specific brothel. However, it should work even for existing games.

One easy way to check if things are working is to use debug-logging, e.g.
Log.debug("step02a_0215_modifyCustomersAmount: " + maxCustomers);
This will always show, no matter the logging level you set in start.bat


The XP tooltip I can do, though I really don't see it making a big difference. The other stuff I'll stay away from.


"Basically, you want to keep above 60 and don't really care much about any other values?"
You nailed it. The logic used to be a bit more complicated, and after streamlining it, I kept the formula because it (still) works. I guess it's a bit pointlessly complicated at this point.


Regarding your current game, are you properly ranking up your girls? Especially the last few ranks increase income a lot.
Also, the first few Jokers are probably best to trade for a high-quality girl. That can help get the ball rolling in the early game.


EDIT2: You can generate dynamic text for images. e.g. getLearningStory() from EmployeeAbility_Motivated does that kinda thing. It's a lot of work, though, especially if you want to consider different tag combinations, the fact that your employee could male or futanari, etc.
You could use step02_9990_employeeResultCalculated for a general approach.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang

Jman

#27
Yeah, that pesky bracket was the cause. It's always either that or some missing comma. :)


Hmm, the 60 health thing seems kinda too simplistic, but I guess 4 customers are mostly not achievable and there's also a 1-customer threshold around 33 health, isn't there? So it's more or less okay.



I'm ranking them up as best I can, but some of them are showing a lot of character and don't earn enough XP/rep to upgrade. And I guess I wasn't getting enough new ones as fast as I should have.




Hmm, yeah, all this image fiddling looks like a lot of work. I'm not sure I'm that invested in SBC at the moment to go full hog here.

I think I should start a new game instead and apply lessons learned. ;D
And with strange aeons even death may die...

Goldo

Hi Chris, here's my feedback on the game.

First of all, congratulations! You really nailed the addictive nature of SimBro that I remember. When I first played SBC, 3 hours went by and I barely noticed. It really has that 'one... more... turn...' quality. The game feels complete already, I didn't find any real bug. It's truly a job well done.
 
I am a sucker for this kind of games so I really enjoyed it, and I think the improvements you brought were all good. I also remember the original game's UI was clunky and what made me stop playing, and it is much, much better in your version.

I played a couple of games in Normal difficulty, enough to reach the 5th brothel with something like 12 girls. I think I have seen most of what the game has to offer unless something major changes in the end game.

Now, for some more detailed feedback. I can see that you largely stayed faithful to the original, so maybe the answer to some of my comments will be 'because it was like that in the OG', but since you have done some improvements I might as well make suggestions.

1. RNG

Most of my gripes are about RNG. Of course I know RNG is a necessary part of these games, but where I draw the line is when RNG outweighs or outright negates player decisions and I think in some areas it does.

The worst offender for me is the tentacle events. On my first run, I reached a quasi-game over state when tentacles raided my brothel, captured two thirds of my girls and I spent all my money on search parties that got nothing. My main was attacked four nights in a row. When the girls finally got back, the upkeep and lack of money for advertising pushed me so far in the red I had no hope to recover. At that point I could have sold most girls and tried to start again from zero, but it wasn't fun. It felt frustrating to lose purely because of RNG and not any player decision. From what's I've seen in my other game, tentacle events can vary really wildly in terms of impacts and it's completely chaotic. Some kind of cap on the number of attacks is sorely needed IMO.

My other RNG issues:
  • Advertising is really inconsistent and it is a PITA early game until you can make enough money not to care. Many times I have switched to a higher form of advertisement, only to have less customers show up the next day. At some point I was even thinking something was broken with the feature since it felt like having several forms of advertising active were bringing in as few customers as the lowest one. One particularly infuriating moment was when I turned on the 50 gold advertising for my first brothel and only one customer showed up the next day. It can be quite devastating in the early game, or at least prevent you from making any progress at all until you get a lucky streak.
  • Monthly goals are kind of all over the place. In my first game I was asked in the third month to get 4 girls to rank 4, which was impossible to do at that stage, and the next one was to have 9 girls which was also impossible (and then the tentacle debacle happened). On the other hand, during my second game all goals were ridiculously easy to achieve, such as getting a single item, three times in a row. Given how OP monthly jokers are (as trading them for a slave is the best way to progress), these goals are important so their imbalance is a problem.
  • Having no control over your starting character stats again puts you at the mercy of unlucky RNG. On my second run, I got a main with very low CON and LIB. The start was really rough as she could get only one customer even after pumping XP into constitution, and I had to get by until I could get the first monthly joker to start making any kind of money.
  • Another area where RNG sucked was Libido penalties. Maybe I'm missing something but it seems to be random and can hit really hard, often wiping 4 or 5 points at once. I had girls at 100 Libido that lost half their stat in a short time due to these penalties. What's frustrating is that I spent 100s of XP points on all girls to raise Libido, only for it to fall right back down. I guess it's probably just bad strategy to invest XP in Libido, but the game doesn't convey that and it's not really a logical thing from the player's perspective either.

2. Gameplay

I really like the AP and abilities system, it gives the player interesting choices. I think it's yours, right? Can't remember it being a part of the first game.

One thing I don't understand well is how these abilities are learnt. Many times, an ability just appeared out of thin air in a girl's list, without any hint from the game as to where it came from. And why are some abilities available from the start for certain girls? At least I understand abilities can come from classes, but there again RNG can screw you over, some girls never learning anything even after a week of training.

For classes and brothel management, it feels like the prices are pretty random compared to value. I'm not at all clear on what the Onsen does. I think it would be good if the game mechanics interacted more with each other, such as some upgrades unlocking better classes, or new abilities... Right now it seems like there is no connection between Classes, Items and Upgrades.

One thing that could be considered a bug: I had my Main refuse to obey on a few occasions. My understanding is that she has 0 character so it shouldn't happen.

3. Misc

Some other comments:
  • The autozoom is fun, but it quickly made me seasick. I turned it off but I like the idea of making pictures more dynamic. My suggestion would be to add a lighter 'pan' to pictures by making them slightly larger than the viewport and moving them around much more gently when mousing over (a bit like an iPhone's dynamic background).
  • Some of the wording is confusing for a new player. I didn't understand 'She could work with 2 customers. She met with 1.' at first. Seeing 'It has a negative influence on her character: +2%' was also confusing at first (Character being the only stat you want to bring down also makes it counter-intuitive: naming it 'Obedience' and flipping it around would make a lot more sense). Another confusing wording is the tooltip for Joy: 'Unlike other attributes, it is generally not limited to anything less than 100' (?)
  • It would be nice to be able to sort by brothel.
  • Sorting by AP is not as useful as some kind of indicator that would tell you when a girl has enough AP to unlock a new ability.
  • Typo in the first advertising option: 'buliding'

All in all, I still had a lot of fun with it. I believe if the mechanics were a bit deeper/more intertwined and RNG could be checked by player decisions it would have more replay value (as it is, RNG mostly wastes the player's time, until you reach a certain threshold of fuck-you money, and then you roll over the rest of the game).
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Ch12Topic starter

Hi Goldo,

Thank you very much for your positive and constructive feedback. I really liked your opening statement, recreating the "experience" of the original SB was exactly what I was going for, while mildly adopting and improving the gameplay.
Abilities were already there in the original game, but I rebalanced many of them. Abilities can be, by the way, unlocked by leveling up. At startup, all girls get assigned dormant abilities that unlock as soon as they reach the level required for learning the ability in a Location.


Regarding the tentacle event, I guess it's really not explained well. Basically, your people are "safe" as long as they don't walk around outside. Only your brothels and "Rest" are safe, and even having your girls switch inbetween them carries the risk of being abducted.

Basically, it means you should keep most of your girls safe inside their brothels, and not rotate them around either. Doing that, you have a 100% chance of no one being abducted. The feeling I want to create is "the night is dark and full of terror". ;)

But your reply shows me that it's not there yet. I think the most important thing is to explain how it works a lot better.


Mechanically, I tried to make the abduction not too punishing, though. You're not paying upkeep for anyone that's abducted, so basically you can just wait it out. Also, anyone abducted gets a hefty dose of tentacle aphrodisiac every day, which is the strongest buff in the game right now. (decreases character, increases libido, cures any sickness after one day)

Mostly, the event is designed to cause some chaos (well, at least that seems to work ^^), not a game-over. I guess you overspent in trying to rescue your people, they can even escape on their own. (Their odds increases with each passing day) Also, if you want to get your people back faster, get Asagi, she has the ability to rescue your people if you assign her to Rest.


Regarding RNG in general, honestly I'm not sure how much I want to change it. It's basically the "enemy" in this game. Once you understand the game mechanics, you can consistently finish the game in time with all brothels and Rank 8 girls.
I personally think the bigger problem is that so many mechanic are not or not well explained. Basically, this knowledge is the weapon you use to defend yourself against the RNG.


Regarding advertising, I guess you have to be patient. You can also decrease the price of your girl to attract more customers. Or vice versa, overprice your girl and milk that one customer that usually arrives unless you go completely overboard.
Other than that, any brothel upgrade draws in more customers, and there are also quite a few girl abilities doing so.
However, I will look into this "enabled the 50 advertisment, got only 1 customer" feedback. Just double-checking, the cheaper advertisments were active as well? (The cheap ones are more cost-efficient). The effect should then be (10+20+25+35) which is 90 combined. even at the worst RNG roll -50, that should still mean 2 customers, even if you have a girl with 0 reputation and a brothel without even a Bar.
More generally speaking, you have to make level-headed decisions if that additional customer is really worth it. In your first brothel, spending 50 gold for that customer is most likely a big waste of gold. Even 20 gold can be hard to earn back consistently with an employee at Rank 1 or 2.


The reason why Onsen is so expensive is that it is basically the ultimate upgrade. It draws in more customers than any other upgrade, saving you from advertising. It decreases the chance for girls to refuse to work. On top of that, it unlocks the massage event, which is basically free money AND free stats. If anything, I still think the thing is a bit overpowered in total, but on the other hand it's extremely expensive.


Regarding Libido, it is probably the strongest stat in the game when it comes to making money. It's crazy cost-efficient. Doesn't increase upkeep, increases earnings, increases number of customers. You also acquire it faster than any other stat - items, locations, events, abilities usually give you more libido than other stats. However, if you overwork your employees without doing anything for them, I think it's only logical that their libido will suffer. In this case, I mostly see your feedback as "works as intended". The one lesson I'll take with me is that I'll reduce the RNG here. The average decrease of libido is relatively small, but the variance is maybe too big.


Finally, if your avatar refuses to work, you have to get the bar. With the bar bonus, the chance to refuse is reduced to 0 (at 0 character).


Anyway, thank you very much for your detailed description of your experience! I was hoping part of the fun to be to discover how things work (just like in the original SBC), but I guess some parts are really just frustrating. I'll try to iron that out.


P.S. you can sort by brothel using the "Jb" sort button. Or sorting by Rank can have a similar effect, usually you will have your higher-ranked girls in the expensive brothels.
Download My High Quality Girlpacks
Belldandy, Urd, Kaenbyou Rin, Jessica Albert, Kino Makoto (Sailor Jupiter), Temari, Tohsaka Rin, Pyra, Lyndis, Atago, Zelda, Kasumi, Camilla, Ningguang