Pink Petal Games

PyTFall => PyTFall: Bugs and Game balancing => Topic started by: Algernon on May 26, 2014, 03:54:34 PM

Title: Game Balancing - General
Post by: Algernon on May 26, 2014, 03:54:34 PM
I figured that I'd start a thread for game balancing ideas that are outside of the arena or combat (since we already have the arena thread started).

Well, without further ado, here are a few of my ideas:

1) MC actions and stats don't seem to be all that useful for girl interactions.  Spending 1 AP for maybe 2 points onto a single sex stat doesn't hold up to spending that 1 AP for around 20 disposition on hiring a new girl (free) or buying a slave or training the MC's constitution.
What I suggest is to change a few things for girl interactions for sex training. 
First off, let's have Disposition, Joy and the MC's Charisma affect the possibility of the girl learning.  A girl is much more likely to want to learn something if she's happy, likes the guy and he's charming.  In contrast, if she's unhappy, hates the guy and he's ugly, then she will just want this horrible experience over with asap.
Second, let's have the MC's Sex stat directly affect the number of skill points gained.  I understand that the current system gives a chance at causing both the girl and MC to gain 1 additional sex stat point, but that seems rather small when you compare that to how high you have to raise the stats.  What's the point of having raising your sex stat further, when it really doesn't speed up the girl's training all that much?
One idea would be to have every 50 points of Sex gives 1 skill point that the girl can get from the training.  Another concept would be to drop the max values of the Sex stat to be around the values for ATK/DEF, then have 10% of the Sex stat be the gains from the training.

2) Schools are too inconsistent to be reliable.  I keep ending up with a bunch of high level Etiquette, Combat and Beauty courses on the list, but I almost never get any XXX courses.  What I'm thinking is that there should be some static, low level courses for early girl training.  Maybe give them a teacher skill of 50 and a master skill of 20 or 30.

3) MC training is prohibitively expensive.  1k gold per 5 levels, for a chance at a few stat points, is too much.  I'm thinking that the training should give guaranteed stat boosts (something like +4 to +8), however there should also be other ways to get stat boosts.
The other method would be to do work in the different areas.  For example, you could work as a sparing partner at the arena for a chance to increase your combat stats or you can help clean up the arena for a chance at a CON boost.  Another example would be that you could help clean up the slave pens for a chance at a CON boost, or work as a male escort for a chance at a Charisma or Sex boost.
Now, having the MC work and get stat boosts would need to have only a small chance of increasing stats.  Otherwise, there is no point in training.  However, the MC is making money from working, so it still is a worthwhile use of AP.
Another method would be to have brothel upgrades that are only for getting the MC's skills up.  This would make the "Next Day" button on the turn summary much more worthwhile.  The problem for the player is that these facilities will only help the MC, but won't help the girls working there.

4) Miscellaneous items could have a number of "charges" for use.  Take the dumbbell set for example.  What I propose is that the dumbbells would be able to build up a girl's CON by 5-10 points before they break.  However, they would be able to increase a girl's stats, no matter the current level.  5 points to a stat for 640 gold may seem like a bargain, but then you have to figure in the sheer number of girls and how far it is to the next AP and it becomes rather expensive.  Couple that with the fact that you may want to use items that train other stats and it will cause the player to really think about what they want to equip on a girl or if they would rather have her train for the skill points.

Well, these are just a few of my ideas.  So, feel free to use, discard, laugh or poke fun at them to your heart's content :)

And once again, thank you for this great game!

Title: Re: Game Balancing - General
Post by: DarkTl on May 27, 2014, 06:38:26 AM
1) Yup, I like the idea with 1 more point per 50 MC points. We cannot make MC training too effective because it's free, while schools and items are not.

2) I'd say schools are supposed to be just another way of training, not the main one. Girls should learn via jobs, items, interaction with MC, from each other (in the future). I'm afraid that all other ways of training will become much less useful if schools will have all types of courses all the time.

3) I'm personaly not statisfated with the current MC training system, it seems too straightforward (give gold and get bonus to stats). We probably should move basic training options to MC house, while others could be implemented via various jobs, items and quests.

4) Yup, I thought about it as well. Maybe there will be items that could be used like 20-50 times but can not exceed a certain level of stat, and items that could be used 5-10 times without stat limitations.
Title: Re: Game Balancing - General
Post by: Xela on May 27, 2014, 08:57:38 AM
1) MC actions and stats don't seem to be all that useful for girl interactions.  Spending 1 AP for maybe 2 points onto a single sex stat doesn't hold up to spending that 1 AP for around 20 disposition on hiring a new girl (free) or buying a slave or training the MC's constitution.
What I suggest is to change a few things for girl interactions for sex training. 
First off, let's have Disposition, Joy and the MC's Charisma affect the possibility of the girl learning.  A girl is much more likely to want to learn something if she's happy, likes the guy and he's charming.  In contrast, if she's unhappy, hates the guy and he's ugly, then she will just want this horrible experience over with asap.
Second, let's have the MC's Sex stat directly affect the number of skill points gained.  I understand that the current system gives a chance at causing both the girl and MC to gain 1 additional sex stat point, but that seems rather small when you compare that to how high you have to raise the stats.  What's the point of having raising your sex stat further, when it really doesn't speed up the girl's training all that much?
One idea would be to have every 50 points of Sex gives 1 skill point that the girl can get from the training.  Another concept would be to drop the max values of the Sex stat to be around the values for ATK/DEF, then have 10% of the Sex stat be the gains from the training.

- MC actions and stats are taken from different games and kinda blended into one. That's usually a source of some issues, both with understanding the game play and coding the game.

- Most of your suggestions ave been implemented already, even thought you might now know about it, a lot is happening "under the hood" so MC's stats already determine quite a bit during personal training.


2) Schools are too inconsistent to be reliable.  I keep ending up with a bunch of high level Etiquette, Combat and Beauty courses on the list, but I almost never get any XXX courses.  What I'm thinking is that there should be some static, low level courses for early girl training.  Maybe give them a teacher skill of 50 and a master skill of 20 or 30.

I've been meaning to tweak schools a bit. It will still be random but will get better with time.

3) MC training is prohibitively expensive.  1k gold per 5 levels, for a chance at a few stat points, is too much.  I'm thinking that the training should give guaranteed stat boosts (something like +4 to +8), however there should also be other ways to get stat boosts.
The other method would be to do work in the different areas.  For example, you could work as a sparing partner at the arena for a chance to increase your combat stats or you can help clean up the arena for a chance at a CON boost.  Another example would be that you could help clean up the slave pens for a chance at a CON boost, or work as a male escort for a chance at a Charisma or Sex boost.
Now, having the MC work and get stat boosts would need to have only a small chance of increasing stats.  Otherwise, there is no point in training.  However, the MC is making money from working, so it still is a worthwhile use of AP.
Another method would be to have brothel upgrades that are only for getting the MC's skills up.  This would make the "Next Day" button on the turn summary much more worthwhile.  The problem for the player is that these facilities will only help the MC, but won't help the girls working there.

- MC training is a money drain (one of them). Right now the taxes are pretty lethal but after I improve upon that... most people tend to have a problem with having millions of Gold after setting up a decent operation. As it cannot be spent, game is becoming too boring and it doesn't really have and end.

Increasingly expensive stuff is a way to mitigate that for just a little bit longer. Stats boosts are always guaranteed btw, unless your max is capped. But I'll tweak this as well, we'll improve this issues as we go.


4) Miscellaneous items could have a number of "charges" for use.  Take the dumbbell set for example.  What I propose is that the dumbbells would be able to build up a girl's CON by 5-10 points before they break.  However, they would be able to increase a girl's stats, no matter the current level.  5 points to a stat for 640 gold may seem like a bargain, but then you have to figure in the sheer number of girls and how far it is to the next AP and it becomes rather expensive.  Couple that with the fact that you may want to use items that train other stats and it will cause the player to really think about what they want to equip on a girl or if they would rather have her train for the skill points.

I think items system we have now is already quite good... Basically most of what you propose is possible already but i do not favor breaking dumbbells. In fact it's prolly the only thing I've owned in my life (RL) that I failed to break :D

Items needs to be adjusted, they were created with max stat cap of 100 in mind, that's no longer the case.
Title: Re: Game Balancing - General
Post by: Xela on May 28, 2014, 11:05:33 AM
@Dark:

Any progress on balancing sheet? I want to make a class with some base values for the future... it might be easier to balance out if everything is at one place instead of all over the code.
Title: Re: Game Balancing - General
Post by: DarkTl on May 28, 2014, 11:39:50 AM
You said you won't do anything in the near future, so I took my time  :)
I'll finish it tomorrow.

As for low sex prices, it's well explained in Otherworld. Either our MC builds the very first brothel in the city, they don't have sex slaves too (or at least they are very rare and expensive) and prices are high because there is no competition, or vice versa. I'm under impression that we have the second case so far.
Title: Re: Game Balancing - General
Post by: Xela on May 28, 2014, 12:00:33 PM
You said you won't do anything in the near future, so I took my time  :)
I'll finish it tomorrow.

As for low sex prices, it's well explained in Otherworld. Either our MC builds the very first brothel in the city, they don't have sex slaves too (or at least they are very rare and expensive) and prices are high because there is no competition, or vice versa. I'm under impression that we have the second case so far.

I am not going to do anything major but I could use something to think about. You need to make sure number add up and game is balanced with them, not just the base values but their progression as well.

I fixed the saving thing and pushed it to SF yesterday and prototyped difficulties class today that would allow to pick difficulty at any point in game. I don't know if I get the chance to work on something tomorrow but if I will next would be taxes of profits instead of income, balance class or guides.
Title: Re: Game Balancing - General
Post by: DarkTl on May 29, 2014, 04:05:51 AM
I fixed base cost a bit and come up with approximate formulas for whoring. I'm not sure how the game calculates payment for non whoring jobs like waitress or guard, so I'm not sure about values either. For now I'm assuming that whores get their money per act, while others per day.

I tested it in excel, looks pretty good. You could try it too if you are not sure about my values.

Before I'll start to change items prices, we should reach agreement about girls payment.
Title: Re: Game Balancing - General
Post by: Xela on May 29, 2014, 05:34:40 AM
I fixed base cost a bit and come up with approximate formulas for whoring. I'm not sure how the game calculates payment for non whoring jobs like waitress or guard, so I'm not sure about values either. For now I'm assuming that whores get their money per act, while others per day.

I tested it in excel, looks pretty good. You could try it too if you are not sure about my values.

Before I'll start to change items prices, we should reach agreement about girls payment.

That's what I am talking about :)

Ok, I'll slowly start updating the game with this as time permits and creating ways to modify this in the future that are less painful. Don't forget that there are dozens of other balancing values like ranks, different arena fights, training and etc.

I'm not sure how the game calculates payment for non whoring jobs like waitress or guard, so I'm not sure about values either. For now I'm assuming that whores get their money per act, while others per day.

Not really, it's a bit more complicated with this:

1) Guards:

+ Do not earn you any money unless an event where they apprehend an aggressor that would rather pay up than face the authorities. *Note here that girls that fight in the arena and get payed there also consider that money as part of their wages.
- They get payed on daily basis unless it's a rest day (we could easily make it once per week/month as in rl but it would be a bit confusing to the player). They expect payment even when sent training I believe.

2) Whores:

+ They make money per act, can receive tips as well. Player may choose if the girl keeps the tips in the Girl Control.
- They get payed on daily basis, actually everyone gets payed on daily basis so there are less calculations during the next day. If you wish to know the order, this is it for all girls:

Jobs/Job Events --> Logging all income in finances --> Settling finances per girl during their individual Next Day method.

3) Strippers:

+ They only earn tips (sometimes quite a bit actually), player gets to choose if they're allowed to keep those or not.
- Same as with the rest of the girls, daily wages.

4) Waitresses or Bartenders:

+ They earn money based on the amount of customers they serve. This gets trickier because strippers are the once who "keep" the costumers in your establishment and keep the cash flowing in. Right now costumers have a limited amount of money but game assumes that those are infinite for a number of reasons (no balance sheet being the main one :) ). So the same customer can buy multiple "discrete units" of service (assumes those units are liquor, beer, snacks and etc.). Updates increase the price of those "discrete units".
- Get payed like everyone else.

5) Cleaners:

+ I do not believe they make any money or we currently have any events like funding a coin purse unless I've coded something and forgot.
- They get paid like everyone else being the same ServiceGirls as Waitresses.

We also need to include costumers into your spread sheet, per social rank and balance out as well. There are a lot of smaller things but once the base prices are established I think we can just throw that balance doc in dropbox and add stuff to it as we go.
Title: Re: Game Balancing - General
Post by: DarkTl on May 29, 2014, 05:55:36 AM
I believe only whores will have ranks?

I need to know how many girls ranks and how many customers social ranks we have, and what exactly ranks should mean. More girls's rank = more customers social rank, or there is more?
Title: Re: Game Balancing - General
Post by: Xela on May 29, 2014, 06:05:51 AM
I believe only whores will have ranks?

I need to know how many girls ranks and how many customers social ranks we have, and what exactly ranks should mean. More girls's rank = more customers social rank, or there is more?

Yes, only whores.

        wranks = {
                'r1': dict(id=1, name=('Rank 1: Kirimise', '(Almost beggar)'), price=0),
                'r2': dict(id=2, name=("Rank 2: Heya-Mochi", "(Low-class prostitute)"), price=1000, ref=45, exp=10000),
                'r3': dict(id=3, name=("Rank 3: Zashiki-Mochi", "(Middle-class Prostitute"), price=3000, ref=60, exp=25000),
                'r4': dict(id=4, name=("Rank 4: Tsuke-Mawashi", "(Courtesan)"), price=5000, ref=80, exp=50000),
                'r5': dict(id=5, name=("Rank 5: Chûsan", "(Famous)"), price=7500, ref=100, exp=100000),
                'r6': dict(id=6, name=("Rank 6: Yobidashi", "(High-Class Courtesan)"), price=10000, ref=120, exp=250000),
                'r7': dict(id=7, name=("Rank 7: Koshi", "(Nation famous)"), price=25000, ref=200, exp=400000),
                'r8': dict(id=8, name=("Rank 8: Tayu", "(Legendary)"), price=50000, ref=250, exp=800000)
            }

self.clientCastes = ['Beggar', 'Peasant', 'Merchant', 'Nomad', 'Wealthy Merchant', 'Clerk', 'Noble', 'Royal']

Basically it's a system of matching girls to customers, both might get livid if they are more than two ranks apart. We have 8 ranks for girls and 8 ranks for costumers BUT I would like to have more costumer types, that can be achieved in various ways obviously. There are consequences (sometimes severe) if you rank up girls too quickly, in fact you can loose your game because of it (run out of money).
Title: Re: Game Balancing - General
Post by: DarkTl on May 29, 2014, 07:05:09 AM
Ok, what about salary? How the game currently determines how much girls want per day?
Title: Re: Game Balancing - General
Post by: Xela on May 29, 2014, 07:11:52 AM
Ok, what about salary? How the game currently determines how much girls want per day?

Code: [Select]
        def expects_wage(self):
            """
            Amount of money each girl expects to get paid for her skillset.
            """
           
            wage = 0
           
            if self.occupation == 'Prostitute':
                bw = self.rank * 5 # Base wage
                sm = self.charisma/3 + self.refinement/2 + self.reputation/2 + self.fame/2 # Stats Mod
                osm = (self.anal + self.normalsex + self.blowjob + self.lesbian) / 2 # Occupational Stats M

                wage =  bw+sm+osm

            elif self.occupation == 'Stripper':
                bw = 20 + self.strip*2
                sm = self.charisma/2 + self.refinement/2 + self.reputation + self.fame/2 + self.agility/2
                osm = self.strip*4

                wage = bw+sm+osm

            elif self.occupation == 'ServiceGirl':
                bw = 15 + self.service*2
                sm = self.charisma/2 + self.agility/2 + self.refinement/2
                osm = self.service*3

                wage = bw+sm+osm

            elif self.occupation == 'Warrior':
                bw = 15 + self.attack*0.2 + self.defence*0.2
                sm = self.fame/2 + self.reputation*0.4
                osm = self.attack + self.defence + self.magic/2 + self.agility

                wage = bw+sm+osm

            else:
                for stat in self.stats:
                    if stat not in ["disposition", "libido", "joy", "health", "fatigue", "mood"]:
                        wage += getattr(self, stat)
                wage = wage/2       

            # Normalize:   
            wage = int(wage)
            if wage < 20:
                wage = 20
               
            return wage

You can pay more/less using the slider in girl control (from 0 - 200%), it carries penalties/benefits of it's own.
Title: Re: Game Balancing - General
Post by: DarkTl on May 29, 2014, 07:29:55 AM
Well, that's too high anyway. I'll have to change it a bit.
Moreover, there should be a little "discount" for close to max disposition and joy, maybe penalty for low values too.

Btw, do these formulas consider bonuses and penalties from equipped items?
Title: Re: Game Balancing - General
Post by: Xela on May 29, 2014, 07:38:29 AM
Moreover, there should be a little "discount" for close to max disposition and joy, maybe penalty for low values too.

That's pretty much what the slider is for. Wage is wage, it should not be lower if a boss is well-liked.

Btw, do these formulas consider bonuses and penalties from equipped items?

They do, but rewriting them not to conciser items will take 5 minutes.

Well, that's too high anyway. I'll have to change it a bit.

You're prolly right (that's why it's called balancing :) )

===================
I have no doubts that we'll balance the exonomics eventually, what really scares me is the experience/leveling system. Stats (girlsmeets/interactions/jobs) should not be too hard as well, maybe that's something CW can look into.

I've just tracked down and fixed a bug reported on FP forum, going to continue looking into balancing and difficulties while I have time.
Title: Re: Game Balancing - General
Post by: DarkTl on May 29, 2014, 08:07:16 AM
Well, in our case it's not a fixed wage with a labor contract and stuff like irl, more like expected wage. But you probably right, instead of it we could reduce consequences of low wages for high disposition characters.

Equipped items... It's hard to say.
A hypothetical situation: a warrior girl saved some money to buy a better weapon to do her work better. Fair enough, with higher attack she can guard better, so she earned it.
But it also will prevent players from giving powerful items to girls. We already have a couple of people who prefer to equip rags on girls to reduce upkeep as much as possible.
Title: Re: Game Balancing - General
Post by: Xela on May 29, 2014, 08:14:33 AM
Equipped items... It's hard to say.
A hypothetical situation: a warrior girl saved some money to buy a better weapon to do her work better. Fair enough, with higher attack she can guard better, so she earned it.
But it also will prevent players from giving powerful items to girls. We already have a couple of people who prefer to equip rags on girls to reduce upkeep as much as possible.

I think taking equipment into account is a sound plan. I remembered two more bugs that had been reported, going to see if those can be squashed today.
Title: Re: Game Balancing - General
Post by: DarkTl on May 30, 2014, 10:19:57 AM
I'll do more excel testing, but for now I propose something like:
Quote
def expects_wage(self):
            """
            Amount of money each girl expects to get paid for her skillset.
            """
           
            wage = 0
           
            if self.occupation == 'Prostitute':
                bw = self.rank * 5 # Base wage
                sm = (1 + self.charisma/5 + self.refinement/5 + self.reputation/2 + self.fame/2)/100 # Stats Mod
                osm = (self.anal + self.normalsex + self.blowjob + self.lesbian + self.bdsm) / 15 # Occupational Stats M

                wage =  bw * sm + osm

            elif self.occupation == 'Stripper':
                bw = 9
                sm = (1 + self.charisma/5 + self.refinement/5 + self.reputation/4 + self.fame/4 + self.agility/2) / 100
                osm = self.strip/3

                wage = bw * sm + osm

            elif self.occupation == 'ServiceGirl':
                bw = 17
                sm = (1 + self.charisma/5 + self.agility/2 + self.refinement/3)/100
                osm = self.service/4

                wage = bw*sm+osm

            elif self.occupation == 'Warrior':
                bw = 15 + self.attack*0.01 + self.defence*0.01
                sm = (1+self.fame/3 + self.reputation/3)/100
                osm = (self.attack + self.defence + self.magic/2 + self.agility)/150

                wage = bw * sm + osm

            else:
                for stat in self.stats:
                    if stat not in ["disposition", "libido", "joy", "health", "fatigue", "mood"]:
                        wage += getattr(self, stat)
                wage = wage/2       

            # Normalize:   
            wage = int(wage)
            if wage < 20:
                wage = 20
               
            return wage

Pay attention that I added bdsm skill as well. It's about time to add it, even without ST we have plenty of pics for it.
We should be really careful with salary, since skills could be very high eventually.
Title: Re: Game Balancing - General
Post by: Xela on May 30, 2014, 10:45:16 AM
I'll do more excel testing, but for now I propose something like:
Pay attention that I added bdsm skill as well. It's about time to add it, even without ST we have plenty of pics for it.
We should be really careful with salary, since skills could be very high eventually.

Feel free to update SF with this and test how it's working. BDSM is a VERY broad field and has loads and loads of options during jobs. That's why we still don't have it enabled.
Title: Re: Game Balancing - General
Post by: Marquis on May 31, 2014, 07:14:01 AM
I like the looks of the 'expected wage' logic. If skills are very high, maybe you can't afford to have her on staff anymore.
Should intelligence be a direct factor in some jobs (like service) or will it indirectly affect wage potential by improving skills faster?
Title: Re: Game Balancing - General
Post by: Xela on May 31, 2014, 07:23:07 AM
I like the looks of the 'expected wage' logic. If skills are very high, maybe you can't afford to have her on staff anymore.
Should intelligence be a direct factor in some jobs (like service) or will it indirectly affect wage potential by improving skills faster?

For future matron, alchemist classes, right now intelligence can play a role during events (for example, an intelligent girls has a decent chance of weaseling her way out of bad costumer attack event during jobs) but that prolly shouldn't be part of her wage.

We'll also include balancing values here in the future as well I think.
Title: Re: Game Balancing - General
Post by: DarkTl on June 07, 2014, 02:51:25 PM
You know, it's kinda strange that we calculate both income and wage. I mean, they both depend on same stats more or less. Perhaps we should simplify the wage part a bit.
Title: Re: Game Balancing - General
Post by: Xela on June 08, 2014, 08:46:29 AM
You know, it's kinda strange that we calculate both income and wage. I mean, they both depend on same stats more or less. Perhaps we should simplify the wage part a bit.

What do you mean? We calculate wage, income is just being logged in by finances.
Title: Re: Game Balancing - General
Post by: DarkTl on June 08, 2014, 09:50:32 AM
There is a formula for wage and there is a formula for girl's income per day. Both depend on pretty much the same set of skills and stats.

Maybe they always should expect some % of their income, like from 20% (rank 1) to 55% (rank 8 ). Maybe a bit more complex system, but still with expected wage totally depending on pure income, not stats, because income does depend on stats already.

I mean only those girls who have actual income of course, it's whores and strippers for now, maybe waitresses too.
Title: Re: Game Balancing - General
Post by: Xela on June 08, 2014, 11:35:53 AM
There is a formula for wage and there is a formula for girl's income per day. Both depend on pretty much the same set of skills and stats.

Maybe they always should expect some % of their income, like from 20% (rank 1) to 55% (rank 8 ). Maybe a bit more complex system, but still with expected wage totally depending on pure income, not stats, because income does depend on stats already.

I mean only those girls who have actual income of course, it's whores and strippers for now, maybe waitresses too.

Those are to different, I think that we require both...
Title: Re: Game Balancing - General
Post by: DarkTl on June 10, 2014, 06:56:01 AM
Oki, I pushed expected wages part. Now I need to know where to find income for jobs in the code.
Title: Re: Game Balancing - General
Post by: Xela on June 11, 2014, 11:46:57 AM
Oki, I pushed expected wages part. Now I need to know where to find income for jobs in the code.

Got it.

I think this is what you're looking for, it follows the wages method:

Code: [Select]
        def get_whore_price(self):
            """
            Workprice for girls working as whores.
            """
           
            chr = self.instance
           
            if chr.rank < 3:
                bp = 15 * chr.rank # Base Price
            elif chr.rank < 5 :
                bp = 20 * chr.rank
            else:
                bp = 25 * chr.rank
            sp = chr.charisma/3 + chr.refinement/3 + chr.reputation/5 + chr.fame/5 # Stats Price
            ssp = chr.anal/3 + chr.normalsex/3 + chr.blowjob/3 + chr.lesbian/3 # Sex Stats Price

            return int(bp + sp + ssp)

I'll try to get back into development soon, I've been having a good amount of free time lately but it all goes to other crap so I just need to kick myself in the ass and start writing some code :)
Title: Re: Game Balancing - General
Post by: DarkTl on June 12, 2014, 01:55:46 AM
There is a problem. The game calculates average income depending on average sex stats value. Thus, if a girl has 0 sex and 300 everything else, according to the formula she has 300 average sex stat. And even if she will have only customers that want sex, she still will have good income thanks to it.
That's illogical. Ideally, we should calculate income for every single sex act and then summarize them.

Also, I believe we have more sources of income than just whores. I mean strippers and bar.
Title: Re: Game Balancing - General
Post by: Xela on June 12, 2014, 04:12:16 AM
There is a problem. The game calculates average income depending on average sex stats value. Thus, if a girl has 0 sex and 300 everything else, according to the formula she has 300 average sex stat. And even if she will have only customers that want sex, she still will have good income thanks to it.
That's illogical. Ideally, we should calculate income for every single sex act and then summarize them.

You're right... I oversimplified to save time and energy + we wanted a different system in the future. If you have ideas, we'll just recode the method or rewrite the job files as well.

Also, I believe we have more sources of income than just whores. I mean strippers and bar.

Yeah, those I burried in code somewhrere :D

Lets see:

(Ignore the job classes that start with ND, I think we'll have to delete them.)

You'll have to go through the jobs to find all the places, StripJob:

Code: [Select]
            tippayout = 0
+++
            # Upgrades effects:
+++
                tippayout += int(len(self.clients)/4)*3   <----- Here is the first mod due to the third tear upgrade (len(self.clients) gets the length of a list with all the client objects which we track individually, it could be quite a number in a large brothel.) There is another one for second tier which is disregarded if the third one is active.
+++
            if self.girl.strip > 300 and self.girl.charisma > 300:
                tippayout += int(len(self.clients) / 5) + 1 * int(len(self.clients) * self.girl.refinement * 0.1 * self.girl.charisma * 0.1 + len(self.clients) * self.girl.strip * 0.2) + int(self.APr  * (self.girl.charisma * 0.1 + self.girl.strip * 0.1) ) <----- This is during the stats checkups. Maybe an overkill but it was a long time ago I coded this. a variation of this is repeated 6 more times for different stat checkups.
+++

As I've said before, Strippers do not have a direct income from the clients other than tips since it's not a "private show" and it's implied that they're just sitting in a club watching girls dance.

=========================================
Now the Service Job:

Notes:
Same client will order the drinks/snacks several times for as long as they enjoy the stripping girls, so while it's very time consuming and pricy to initially establish a Stripclub/Bar operation, I believe it can pay off really well in the end. There are obviously clients in the bar even without the strippers.

Code: [Select]
            barfees = int(clientsserved * 0.5) * self.APr * int(self.girl.refinement * 0.2 + self.girl.charisma * 0.2 + self.girl.service * 0.2)
            if tapas:
                barfees = int(barfees * 1.5)
            elif beer:
                barfees = int(barfees * 1.2)

Tapas and Beer are possible upgrades to the bar. self.APr is the amount of action points spent during the act. clientserved is the amount of clients girl has served.

Code: [Select]
            if self.girl.service > 120:
                self.brothelmod['reputation'] += random.choice([0, 1])
                barfees = int(barfees * 1.5)

7 different modifiers for her service skill level. This btw hasn't been updated to new stat values, guess I've missed this job. And I found another oddity, this is logged in as tips instead of a wage, I wonder why I did that... I am going to fix this, the Male filter messing up shops thing and push. I will also add actual tips.

Club:

            clubfees = int(clientsserved * 0.6) * self.APr * int(self.girl.agility * 0.2 + self.girl.charisma * 0.2 + self.girl.service * 0.2)

Also not updated... wtf, I could have sworn I've done this before:

Code: [Select]
            if self.girl.service > 120:
                self.brothelmod['reputation'] += random.choice([0, 1])
                clubfees = int(clubfees * 1.5)
                self.txt.append("She is an exellent waitress, customers didn't notice how they've just kept spending their money as she offered them more and more house specials. \n")

I think this is it, I'll take a look if I don't take a part of these fees and turn them into tips elsewhere in code and if not tweak the log to store wages and add tips to these jobs.
Title: Re: Game Balancing - General
Post by: DarkTl on June 12, 2014, 09:26:44 AM
Well, I can adapt the income formula only after some testing, but we need to calculate whores income per act. Customers should have a wish or two, either when they come to brothel, or acquiring it during streaptease phase.
And probably gender, so we won't have the same customer wanting bj after les (and since some players already want futa in the future, gender is pretty much must have).

It's also a good chance to add group events, when several customers "work" with 1 girl, checking several sex skills at once, causing more fatigue and paying more.

I don't remember if customers already have random amount of money depending on rank, but they should. It also will somewhat prevent excessive discontent of high ranked whores, since low ranked customers cannot and will not have enough money to hire them, at least usually.
Title: Re: Game Balancing - General
Post by: Xela on June 12, 2014, 10:08:51 AM
Well, I can adapt the income formula only after some testing, but we need to calculate whores income per act. Customers should have a wish or two, either when they come to brothel, or acquiring it during streaptease phase.

It is implied as per act (Girl spending 1 AP). Also I believe that it is being further modified during the job (Satisfaction from striptease, trait that a customer likes, ) so those formulas are for base wage.

And probably gender, so we won't have the same customer wanting bj after les (and since some players already want futa in the future, gender is pretty much must have).

We have a tremendous amount of work ahead just for finishing the Alpha (Current TODO list) and I prolly forgot to add improving tags there as well. Even more for the Beta. I honestly don't see anyone ion the dev team who's enough into Futa to spend 10 - 20 hours required adapting the game to it. Unless someone new joins the team, we are not likely to add Futa before 1.0 release.

Otherwise... There is no way for player to know which costumer is which but even for the logic, a female costumer cannot request a blowjob, there is no code that would allow that.
 
It's also a good chance to add group events, when several customers "work" with 1 girl, checking several sex skills at once, causing more fatigue and paying more.

Only if we keep it simple. There are more pressing tasks, also this is part of lesbian job:

Code: [Select]
                acts = list()
                # We'll be adding "les" here as Many lesbian pics do not fall in any of the categories and will never be called...
                acts.append("les")
                if self.girl.has_image("les", "dildo joined"):
                    acts.append("dildo joined")
                if self.girl.has_image("les", "lick pussy"):
                    acts.append("les_lick_pussy")
                if self.girl.has_image("les", "do lick pussy"):
                    acts.append("les_do_lick_pussy")
                if self.girl.has_image("les", "lick anus"):
                    acts.append("les_lick_anus")
                if self.girl.has_image("les", "do lick anus"):
                    acts.append("les_do_lick_anus")
                if self.girl.has_image("les", "finger pussy"):
                    acts.append("les_finger_pussy")
                if self.girl.has_image("les", "do finger pussy"):   
                    acts.append("les_do_finger_pussy")
                if self.girl.has_image("les", "finger anus"):
                    acts.append("les_finger_anus")
                if self.girl.has_image("les", "do finger anus"):   
                    acts.append("les_do_finger_anus")
                if self.girl.has_image("les", "caress tits"):
                    acts.append("les_caress_tits")
                if self.girl.has_image("les", "do caress tits"):
                    acts.append("les_do_caress_tits")
                if self.girl.has_image("les", "hug"):
                    acts.append("les_hug")
                if self.girl.has_image("les", "strapon"):
                    acts.append("les_strapon")
                if self.girl.has_image("les", "do strapon"):
                    acts.append("les_do_strapon")
                if self.girl.has_image("les", "anal strapon"):
                    acts.append("les_anal_strapon")
                if self.girl.has_image("les", "do anal strapon"):
                    acts.append("les_do_anal_strapon")
                if self.girl.has_image("les", "anal beads"):
                    acts.append("les_anal_beads")
                if self.girl.has_image("les", "do anal beads"):
                    acts.append("les_do_anal_beads")
                if self.girl.has_image("les", "dildo pussy"):
                    acts.append("les_dildo_pussy")
                if self.girl.has_image("les", "do dildo pussy"):
                    acts.append("les_do_dildo_pussy")
                if self.girl.has_image("les", "dildo anal"):
                    acts.append("les_dildo_anal")
                if self.girl.has_image("les", "do dildo anal"):
                    acts.append("les_do_dildo_anal")
                   
                act = random.choice(acts)

                if act == "dildo joined":
                    self.txt.append(random.choice(["She've asked your girl to lend her a double-ended dildo.\n",
                                                                                    "She brought a twin-ended dildo for the party so %s could have some fun as well.\n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "dildo joined", resize=(500, 600))
                elif act == "les_lick_pussy":
                    self.txt.append(random.choice(["Clearly in the mood for some cunt, she licked %ss pussy clean.\n"%self.girl.nickname,
                                                                                    "Hungry for a cunt, she told %s to be still and started licking her soft pussy with her hot tong. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "lick pussy", resize=(500, 600))
                elif act == "les_do_lick_pussy":
                    self.txt.append(random.choice(["All hot and bothered, she ordered %s to lick her cunt. \n"%self.girl.nickname,
                                                                                    "As if she had an itch, she quickly told %s to tong her pussy. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "do lick pussy", resize=(500, 600))
                elif act == "les_lick_anus":
                    self.txt.append(random.choice(["She licked %ss anus clean.\n"%self.girl.nickname,
                                                                                    "She told %s to be still and started licking her asshole with her hot tong. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "lick anus", resize=(500, 600))
                elif act == "les_do_lick_anus":
                    self.txt.append(random.choice(["All hot and bothered, she ordered %s to lick her asshole. \n"%self.girl.nickname,
                                                                                    "As if she had an itch, she quickly told %s to tong her anus. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "do lick anus", resize=(500, 600))
                elif act == "les_finger_pussy":
                    self.txt.append(random.choice(["In mood for a hot lesbo action, she stuck her fingers in your girls pussy. \n",
                                                                                     "She watched %s moan as she stuck fingers in her pussy. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "finger pussy", resize=(500, 600))
                elif act == "les_do_finger_pussy":
                    self.txt.append(random.choice(["Quite horny, she ordered your girl to finger her cunt. \n",
                                                                                    "Clearly in the mood, she told %s to finger her until she cums. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "do finger pussy", resize=(500, 600))
                elif act == "les_finger_anus":
                    self.txt.append(random.choice(["In mood for a hot lesbo action, she stuck her fingers in your girls anus. \n",
                                                                                     "She watched %s moan as she stuck fingers in her asshole. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "finger anus", resize=(500, 600))
                elif act == "les_do_finger_anus":
                    self.txt.append(random.choice(["Quite horny, she ordered your girl to finger her anus. \n",
                                                                                    "Clearly in the mood, she told %s to finger her asshole until she cums. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "do finger anus", resize=(500, 600))
                elif act == "les_caress_tits":
                    self.txt.append(random.choice(["Liking your girls breasts, she had some good time caressing them. \n",
                                                                                    "She enjoyed herself by caressing your girls breasts. \n"]))
                    self.img = self.girl.show("les", "caress tits", resize=(500, 600))
                elif act ==  "les_do_caress_tits":
                    self.txt.append(random.choice(["She asked your girl to caress her tits. \n",
                                                                                      "She told your girl to put a squeeze on her breasts. \n"]))
                    self.img = self.girl.show("les", "do caress tits", resize=(500, 600))
                elif act == "les_hug":
                    self.txt.append(random.choice(["Girls lost themselves in eachothers embrace.\n",
                                                                                    "Any good lesbo action should start with a hug, don't you think??? \n"]))
                    self.img = self.girl.show("les", "hug", resize=(500, 600))
                elif act == "les_strapon":
                    if "Virgin" in self.girl.traits:
                        tips = self.girl.rank * 100 + self.girl.charisma * 2
                        self.txt.append("\n{color=[pink]}%s lost her virginity!{/color} Customer thought that was super hot so she left a tip of {color=[gold]}%d Gold{/color} for your girl.\n\n"%(self.girl.nickname, tips))
                        self.girl.removetrait(traits["Virgin"])
                        self.girl.fin.log_tips(tips, "WhoreJob")
                        self.brothel.fin.log_work_income(tips, "WhoreJob")

                    self.txt.append(random.choice(["She put on a strapon and fucked your girl in her cunt. \n",
                                                                                   "Equipping herself with a strap-on, she lustfully shoved it in %ss pussy. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "strapon", resize=(500, 600))
                elif act == "les_do_strapon":
                    self.txt.append(random.choice(["She ordered %s to put on a strapon and fuck her silly with it. \n"%self.girl.nickname,
                                                                                   "She equipped %s with a strapon and told her that she was 'up' for a good fuck! \n"]))
                    self.img = self.girl.show("les", "do strapon", resize=(500, 600))
                elif act == "les_anal_strapon":
                    self.txt.append(random.choice(["She put on a strapon and fucked your girl in her butt. \n",
                                                                                   "Equipping herself with a strapon, she lustfully shoved it in %ss asshole. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "anal strapon", resize=(500, 600))
                elif act == "les_do_anal_strapon":
                    self.txt.append(random.choice(["She ordered %s to put on a strapon and butt-fuck her silly with it. \n"%self.girl.nickname,
                                                                                   "She equipped %s with a strapon and told her that she was 'up' for a good anal fuck! \n"]))
                    self.img = self.girl.show("les", "do anal strapon", resize=(500, 600))
                elif act == "les_anal_beads":
                    self.txt.append(random.choice(["They got their hands on some anal beads and shoved it up %ss butt. \n"%self.girl.nickname,
                                                                                   "She had some fun with your girls asshole and some anal beads \n"]))
                    self.img = self.girl.show("les", "anal beads", resize=(500, 600))
                elif act == "les_do_anal_beads":
                    self.txt.append(random.choice(["She had %s stick some anal beads up her butt. \n"%self.girl.nickname,
                                                                                     "She told %s to get some anal beads to play with her anus. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "do anal beads", resize=(500, 600))
                elif act == "les_dildo_pussy":
                    if "Virgin" in self.girl.traits:
                        tips = self.girl.rank * 100 + self.girl.charisma * 2
                        self.txt.append("\n{color=[pink]}%s lost her virginity!{/color} Customer thought that was super hot so she left a tip of {color=[gold]}%d Gold{/color} for your girl.\n\n"%(self.girl.nickname, tips))
                        self.girl.removetrait(traits["Virgin"])
                        self.girl.fin.log_tips(tips, "WhoreJob")
                        self.brothel.fin.log_work_income(tips, "WhoreJob")
                       
                    self.txt.append(random.choice(["She played with a dildo and %ss pussy. \n"%self.girl.nickname,
                                                                                   "She stuck a dildo up %s cunt. \n"%self.girl.nickname]))
                    self.img = self.girl.show("les", "dildo pussy", resize=(500, 600))
                elif act == "les_do_dildo_pussy":
                    self.txt.append(random.choice(["Without further ado, %s fucked her with a dildo. \n"%self.girl.nickname,
                                                                                   "She asked your girl to fuck her pussy with a dildo. \n"]))
                    self.img = self.girl.show("les", "do dildo pussy", resize=(500, 600))
                elif act == "les_dildo_anal":
                    self.txt.append(random.choice(["After some foreplay, she stuck a dildo up your girls butt. \n",
                                                                                   "For her money, she had some fun playing with a dildo and your girls asshole. \n"]))
                    self.img = self.girl.show("les", "dildo anal", resize=(500, 600))
                elif act == "les_do_dildo_anal":
                    self.txt.append(random.choice(["After some foreplay, she asked %s to shove a dildo up her ass. \n"%self.girl.nickname,
                                                                                   "This female customer of your brothel clearly believed that there is no greater pleasure than a dildo up her butt. \n"]))
                    self.img = self.girl.show("les", "do dildo anal", resize=(500, 600))
                else:   
                    self.txt.append(random.choice(["She was in the mood for some girl on girl action. \n", "She asked for a good lesbian sex. \n"]))
                    self.img = self.girl.show("les", resize=(500, 600))
               
                self.txt.append("\n")

The options allowed by current tagging system (if job is done proper) will require even more than this, who's going to write the texts/match tags... BDSM is even worse, there are like 80 options by my estimate so doing those properly is best left for the future.

I don't remember if customers already have random amount of money depending on rank, but they should. It also will somewhat prevent excessive discontent of high ranked whores, since low ranked customers cannot and will not have enough money to hire them, at least usually.

They do, system is there... but without a very detailed balancing document I found that actually take money from clients created too many issues like they would all spend it in bar and not have enough for a girl and whores would go begging after a couple of weeks :D

So I left it until "better days".

Anyway, just found and fixes another small bug during items transfers and trying to decide what to do next (I think it's a choice between Next Day Reports/Screen and writing modding guides).
Title: Re: Game Balancing - General
Post by: DarkTl on June 13, 2014, 04:31:57 AM
We cannot allow average sex stat anyway. Customers should have actual sex act that they want in mind, and during it we should check the whore's corresponding sex skill to calculate income. Otherwise there is little point in using several sex skills at all.
Title: Re: Game Balancing - General
Post by: Xela on June 13, 2014, 05:33:52 AM
We cannot allow average sex stat anyway. Customers should have actual sex act that they want in mind, and during it we should check the whore's corresponding sex skill to calculate income. Otherwise there is little point in using several sex skills at all.

Lets keep the wage based off all relevant stats but further modify them during the jobs or create an event where the costumer is not satisfied and refuses to pay on those grounds.

And while going over the job, I figured out the reason for experience thing (girls gaining millions in experience on very high levels advancing gaining 2 - 3 levels in one day). I was beginning to think that I'd never figure that out...
Title: Re: Game Balancing - General
Post by: DarkTl on June 13, 2014, 06:16:09 AM
Otherwise... There is no way for player to know which costumer is which but even for the logic, a female costumer cannot request a blowjob, there is no code that would allow that.
Unless the female customer did something wrong, like had not enough money or picked a fight. That probably should lead to other consequences, more wm-like.
Not to mention an opportunity to find new characters among female customers.

Basically, gender would help a lot for various events.

Only if we keep it simple. There are more pressing tasks, also this is part of lesbian job:
I'd say this part is too difficult even for beta. We already have tags that describe the number of characters on pictures. That's enough to add group events.

As for bdsm pics, I don't even hope to describe them all accurately. At best we could use 4-5 major, very general categories.
Title: Re: Game Balancing - General
Post by: DarkTl on June 13, 2014, 06:43:53 AM
Aaand we should come to agreement about the number of AP. That's a very important part of incomes calculation.

I believe right now we have base 1 AP, +1 at 30 constitution and +1 at every next 60 constitution points.
I personally would prefer more smooth increase, something like 1 base AP, then +1 at 40, 90 (+50 points), 150 (+60 points), 220 (+70 points), etc.
And maybe agility should also play some secondary role here, for example 1 more AP per 150 agility.
Title: Re: Game Balancing - General
Post by: Xela on June 13, 2014, 06:53:52 AM
Unless the female customer did something wrong, like had not enough money or picked a fight. That probably should lead to other consequences, more wm-like.
Not to mention an opportunity to find new characters among female customers.

Basically, gender would help a lot for various events.
I'd say this part is too difficult even for beta. We already have tags that describe the number of characters on pictures. That's enough to add group events.

As for bdsm pics, I don't even hope to describe them all accurately. At best we could use 4-5 major, very general categories.

They have genders already. The thing is that I've tried to advance the customer thing once already but got lost really quickly. There are too many variables in the play here:

Customer status (No longer as important as it was since we won't be matching them to girls ranks anymore) but still might decide stuff in the future. We need blueprints for customers types, I'd really like having regulars in the game with their own "tabs" that they pay off once per month but remain loyal to your establishment in return, have favorite girls and tip better + so on and so on. But logic like that requires a lot of preparation and thinking through.

I am not going to do anything like the WM event where you can enslave entire family for not being able to pay a somewhat insignificant sum once, it's beyond absurd. Maybe once we have tabs and those run high enough... Picking a fight is a better bet, yeah, we can do that. Forcing the girl to "work off" damages she caused could be a fun addon.

===================
I am fixing some stuff in jobs and I will be adding flags to events shortly. I don't think we need to change the Next Day reports, what we really need is a decent summary screen with more filters.


Aaand we should come to agreement about the number of AP. That's a very important part of incomes calculation.

I believe right now we have base 1 AP, +1 at 30 constitution and +1 at every next 60 constitution points.
I personally would prefer more smooth increase, something like 1 base AP, then +1 at 40, 90 (+50 points), 150 (+60 points), 220 (+70 points), etc.
And maybe agility should also play some secondary role here, for example 1 more AP per 150 agility.

Too many APs is an overkill and fairly hard to work with.

Right now it's base 2 for the girls and base 3 for the MC.

Formula:

Code: [Select]
        def get_ap(self):
            ap = 0
            base = 35
            c = self.constitution
            while 1:
                if c >= base:
                    c -= base
                    ap += 1
                    if base == 35:
                        base = 100
                    else:
                        base = base * 2
                else:
                    break
            return self.baseAP + ap

So basically extra AP point with constitution at: 35, 100, 200, 400, 800, 1600 etc. I believe you wanted it this way last we discussed AP.
Title: Re: Game Balancing - General
Post by: DarkTl on June 13, 2014, 07:45:26 AM
Ah, ok then, I thought you didn't code it because you want moar AP  :)
The only thing that might be confusing for players is 35, since it's not a part of this geometric progression.

Also, I wonder if we should cap AP to avoid extremely game breaking things even at high levels. Maybe 9-10.

I am not going to do anything like the WM event where you can enslave entire family for not being able to pay a somewhat insignificant sum once
Not enslave, but force the family (rgirl wife/daughter) to work off in one way or another if the male customer cannot pay the bill. We need limited money for a start though.
Title: Re: Game Balancing - General
Post by: Xela on June 13, 2014, 08:18:36 AM
Not enslave, but force the family (rgirl wife/daughter) to work off in one way or another if the male customer cannot pay the bill. We need limited money for a start though.

Yeah well, still sounds messy to code this and weird for something that is usually a fairly insignificant amount of money.

On the AP front, I don't think it should be realistic to get to a level high enough to max it out. Most of these incidences are related to a poorly thought through and immature leveling system we have now and it's getting better all the time. To get to a level where AP would be maxed out should take several tenth of thousands of days.

AP: 10 = 8 increases ==> 6400 constitution. 6400/5 (max per level) = 1280 (Level). Even if we allow extra AP from rare scripted item or unique event... it would still be in high hundreds.
Title: Re: Game Balancing - General
Post by: DarkTl on June 13, 2014, 12:53:32 PM
We need more service girls in the dev mode. I cannot test bar income properly.
Strip tips seem ok.
I pushed new income for whores. Looks good so far, though difficult at first when they have like 0/0/5/0 sex skills, but that's the whole point.

As for difficulties, we could add multipliers into all incoming formulas, like 3 times more on casual and 2 times less on pro or something like that.

Also, we should remove taxes or decrease them. We'll see what we should do with them closer to the end of balancing. Maybe it would be possible to remove them from dev mode for now?
================================================================================
I gave some thought to the cloning concept. It could be more than just a secondary option, we could turn it into another profession for MC, along with brothels, arena and ST. MC has to look for "quality" girls during girls meetings, convince them to agree for cloning, make a clone (by himself? MC lab? upgrades for MC lab?), then teach them basics and sell asap before he has no choice but to pay for life prolonging, either to someone who willing to pay for it or to places where long life is not required.
Title: Re: Game Balancing - General
Post by: Xela on June 13, 2014, 01:26:24 PM
We need more service girls in the dev mode. I cannot test bar income properly.
Strip tips seem ok.
I pushed new income for whores. Looks good so far, though difficult at first when they have like 0/0/5/0 sex skills, but that's the whole point.

Ok, I'll take a look at it tomorrow, this next day summary screen of CWs is impossibly hard to build due to all the logic/sorting it requires...

[As for difficulties, we could add multipliers into all incoming formulas, like 3 times more on casual and 2 times less on pro or something like that.

Yeap, as I've said, I made a mockup of a difficulty module that can rebuild itself so it can be adjusted at any time and we'll just put something like:

difficulties.wage_mod in the formulas.

Also, we should remove taxes or decrease them. We'll see what we should do with them closer to the end of balancing. Maybe it would be possible to remove them from dev mode for now?

Shouldn't be too hard (I think it's one line of code), I'll take a look at it tomorrow as well.

I gave some thought to the cloning concept. It could be more than just a secondary option, we could turn it into another profession for MC, along with brothels, arena and ST. MC has to look for "quality" girls during girls meetings, convince them to agree for cloning, make a clone (by himself? MC lab? upgrades for MC lab?), then teach them basics and sell asap before he has no choice but to pay for life prolonging, either to someone who willing to pay for it or to places where long life is not required.

LoL

You don't have enough on the TODO list as it is  >:(

But it sounds like a good concept.
Title: Re: Game Balancing - General
Post by: pelusa1ca on September 12, 2014, 11:48:05 AM
Would it be here that we may submit suggestions for items to help with balance or elsewhere?

Thanks,

P
Title: Re: Game Balancing - General
Post by: Xela on September 12, 2014, 01:54:47 PM
Would it be here that we may submit suggestions for items to help with balance or elsewhere?

Thanks,

P

Suggestions you can write here, if you have actual items, to the mod section.
Title: Re: Game Balancing - General
Post by: krakr on May 13, 2018, 11:51:20 PM
Well, I guess I'll be the first to post since the actual public Beta release, someone has to.
Full disclosure, I broke my own game by enabling the renpy console and trying to cheat XP for my MC.
I had to scrap that game since I was just guessing at the command to add XP & the code was left floating around my MC for eternity.
(Sorry Xela for posting the traceback & not mentioning that first)
My current game is 3 real life days old, about 30 rl hours invested and MC is Lv 32, but he'll prolly 1 hit your MC :P

Let me preface this by saying I cheat the economy, so NO economic data will be touched upon in any of this.
I played a shitload of those "tycoon" type games in the 90's and am in no hurry to repeat that experience.
So I cheat money.
In nearly EVERY game.
Economics are not fun to me & I play games that are FUN to play even if I have to go against the dev's vision to do so.
There's plenty of meat on the bone left for me to be excited about.

I'm currently playing the publicly available version with the discord fixes dated up to May 3.
So I wont bother mentioning the awesome job those fixes did with regard to balance.

OK here we go...
XP system: I love the current rate for whores and students. I think Maids should get the 25xp (or whatever) they currently get per AP remaining.
For some reason, Guards seem to be doing OK, I haven't really gotten that deep into it since I only have 2 guards atm but they wind up with about 100/turn unless
they're in training with Abby or Xonea during the day, then they can get more.
I can live with 100/day for any class including the MC since it takes a few game days to get that character back up to max (if you play the way I do, i.e. keep 'em maxed all the time.)
10 game days is a manageable amount of time to lvl. Of course, I'm referring to my current playthru. I micro-manage daily shit that's why I hate economic chains.

* RANT * Damn dude would adding word wrap to the reply box on this forum be so fucking hard? if my post has some wierd hard breaks, that's your reason

I've noticed ppl bitching about 12xp for arena & shit, but they don't realize that's per round since they prolly got the ctrl key pressed.
If you don't read your end of day report, it's not a fucking *reportable* balance issue.
I should repeat that in BOLD lmao
If you don't read your end of day report, it's not a fucking *reportable* balance issue.

Issue # 1 with me is when you finally have the time to start recruiting free women, if they say they're a whore why are they virgins with 0 sex xp?
That seems like a failure in the random encounter stuff that is probably being looked at as I write. out of balance for sure.
You can, and I have spent days just banging the same girl in every possible way since MC-npc interaction pays off better than any school.
(as it should be)

Issue # 2: RNG!!!!!!! random number generation in ANY computer game I've come across (except the roll the dice type RPG's) have either fucked me or flattered me.
Feast or famin. Can't tell you how many times a 75% chance turned out to be 1 in anywhere from 5 to 10, REPEATABLE. Yes I've save scummed my share of games.
I put an Idea forward on discord for the school generation. My idea is to have EVERY school represented, but upon clicking on the school you want/need ,
THEN RNG kicks in and gives you 0-2 options. Those options are either remembered for the amount of time like it is now, or if there are no saved schools, then re-roll next day.
I hope you get what I mean, cuz as is, your choices are locked in until they expire. I know something is coming with that, since the enrolled school doesn't expire like it used to.
Just keep my suggestion in mind when you overhaul.
& pls NOBODY tell me the arena is basically an RNG, cuz you'd just be showing how stupid you are or don't understand the concept of Random .
Lmao I actually copied a "Craps" program in the early 80's on a TRS-80, that is what RNG should be, but idk if it's the Renpy or RPGMaker or me being insane, but I hate RNG in those engines.
I think they're hiding variables from the dev's themselves. that makes it NOT random, but an equation. the command on the TRS-80 (for sale in 1980) was "randomize"
you gave a start #, a finish number, added randomize , did that twice with 1-6 and then told it what won & what was craps & 120 lines of code later
(if that) you could play craps with the computer all day long. THAT is RNG, I'm a little wary of Renpy & random. It's certainly not just this game.
but wtf am I doing with 5 active kunoichi schools and 2 strippers & the list goes on .
I imagine you could write a line of code making the RNG a % less likely to pick the last chosen school. See? there's 2 suggestions for same issue.
RNG is not as random as should be in these free developer platforms unless you write it as an equation I think. it's got no prob with combat odds and shit as long as they're equation based.

#3 is not an issue I advocate, but it is an RNG issue so I'd feel like a douche for NOT bringing it up since I read it all the time. The stores.
I get it that awesome shit like the major ring pf physical whatever, the +30 con but more important +50 max v should be available only rarely.
I cheated my starting cash, not when merchants have shit.
Or did I? does the fact that my MC has 90M make the merchants more likely to spawn good shit? I can't answer that, but I edited the original
Whoremaster items list back nearly a decade ago lol & you assigned a % a merchant would stock it, and a % it would be a drop. I see no reason the dev team would deviate.
SOOOOoooooo thats my look at the stores. OH and if you were curious if the merchants re-stock if you buy them out, NO they don't, it's timed.



Typed a novel already, so even if I had more issues, I'm done


[edit] OH! & dudes, don't think I forgot Brothel master. That game had HUGE potential & I see bits of it in here (that was the one where you got bonuses based on categories like fire emblem & FF & catgirl & shit stacked or was that a different game. I had many hard drive failures since then, so I honestly can't remember)

Title: Re: Game Balancing - General
Post by: Xela on May 14, 2018, 02:16:07 AM
Issue # 1 with me is when you finally have the time to start recruiting free women, if they say they're a whore why are they virgins with 0 sex xp?
That seems like a failure in the random encounter stuff that is probably being looked at as I write. out of balance for sure.
You can, and I have spent days just banging the same girl in every possible way since MC-npc interaction pays off better than any school.
(as it should be)

We need a NPC talking about this but there is no "Whore" NPC in the city (yet). Here, Virginity is either restored or she went through elite training and never lost it. At least that's the idea, we're not likely to change this in the future but we will add an explanation at some point. This also should not come as a big suprise to a seasoned player as there are items that do about the same thing.

Issue # 2: RNG!!!!!!! random number generation in ANY computer game I've come across (except the roll the dice type RPG's) have either fucked me or flattered me.
Feast or famin. Can't tell you how many times a 75% chance turned out to be 1 in anywhere from 5 to 10, REPEATABLE. Yes I've save scummed my share of games.
I put an Idea forward on discord for the school generation. My idea is to have EVERY school represented, but upon clicking on the school you want/need ,
THEN RNG kicks in and gives you 0-2 options. Those options are either remembered for the amount of time like it is now, or if there are no saved schools, then re-roll next day.
I hope you get what I mean, cuz as is, your choices are locked in until they expire. I know something is coming with that, since the enrolled school doesn't expire like it used to.
Just keep my suggestion in mind when you overhaul.
& pls NOBODY tell me the arena is basically an RNG, cuz you'd just be showing how stupid you are or don't understand the concept of Random .
Lmao I actually copied a "Craps" program in the early 80's on a TRS-80, that is what RNG should be, but idk if it's the Renpy or RPGMaker or me being insane, but I hate RNG in those engines.
I think they're hiding variables from the dev's themselves. that makes it NOT random, but an equation. the command on the TRS-80 (for sale in 1980) was "randomize"
you gave a start #, a finish number, added randomize , did that twice with 1-6 and then told it what won & what was craps & 120 lines of code later
(if that) you could play craps with the computer all day long. THAT is RNG, I'm a little wary of Renpy & random. It's certainly not just this game.
but wtf am I doing with 5 active kunoichi schools and 2 strippers & the list goes on .
I imagine you could write a line of code making the RNG a % less likely to pick the last chosen school. See? there's 2 suggestions for same issue.
RNG is not as random as should be in these free developer platforms unless you write it as an equation I think. it's got no prob with combat odds and shit as long as they're equation based.

Depending on specific places in the game, locked random is used in some cases, so save-load will result in the same values. RNG will balance itself out in time! I did tons of testing when learning renpy so you shouldn't worry about it too much.

One idea to mitigate this is to increase stat ranges by 100% - 200%. I'll give it some thought but prolly after the Beta release.

#3 is not an issue I advocate, but it is an RNG issue so I'd feel like a douche for NOT bringing it up since I read it all the time. The stores.
I get it that awesome shit like the major ring pf physical whatever, the +30 con but more important +50 max v should be available only rarely.
I cheated my starting cash, not when merchants have shit.
Or did I? does the fact that my MC has 90M make the merchants more likely to spawn good shit? I can't answer that, but I edited the original
Whoremaster items list back nearly a decade ago lol & you assigned a % a merchant would stock it, and a % it would be a drop. I see no reason the dev team would deviate.
SOOOOoooooo thats my look at the stores. OH and if you were curious if the merchants re-stock if you buy them out, NO they don't, it's timed.

The idea in general is to Simulate the world best we can, it's not always possible but I don't see a reason to mess with what stores will sell. My point is that MC's tier/level/stats/skills/actions decide (at times) what bonus he can get there and now. But shops are there for "everybody" so changing inventory based on MC feels wrong. We will have global events at some point and those may add special items to the shops in the future :)

[edit] OH! & dudes, don't think I forgot Brothel master. That game had HUGE potential & I see bits of it in here (that was the one where you got bonuses based on categories like fire emblem & FF & catgirl & shit stacked or was that a different game. I had many hard drive failures since then, so I honestly can't remember)

Manager will have his/her own SimPy process so they will do more and properly. This is premature to report.
Title: Re: Game Balancing - General
Post by: krakr on May 15, 2018, 02:21:42 PM
Manager will have his/her own SimPy process so they will do more and properly. This is premature to report.


Wasn't actually reporting it, more of a tip of the hat to you since I see where you're going.
Title: Re: Game Balancing - General
Post by: xaruny on August 22, 2018, 03:09:08 AM
Made an account just for this post.


I don't want to do combat. I don't want to min-max equipment. I want to buy slaves and have them make me money so I can buy more and in turn make more money.


It's impossible to play this game without hard-lining the combat aspects of it and it's absolutely infuriating. Why is the only job (working slave market) so worthless? Why do the slaves make no money whatsoever and end up costing more than they make? The only way I could play this game before was by exploiting the ruins storage search and now that's been nerfed. Can you please make this game accessible to people who don't wanna play a JRPG to get their rocks off?
Title: Re: Game Balancing - General
Post by: DarkTl on August 25, 2018, 12:49:11 PM
That's the plan, yes. You will be able to play without fighting if you hate it.