devolution

Author Topic: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.  (Read 8974 times)

0 Members and 1 Guest are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #15 on: November 17, 2015, 12:43:13 AM »
We made plans in a different discussion to use stars to display skills (if we decided to display them). One step would be half a star with 5 full stars (10 steps in total). Here we're talking more about the system itself, since it presently does not have a maximum like stats do, it can become an issue.

Dark has a good point, his way is prolly better than mine but I am also leaning towards having different hardcaps stored in some main class and maybe change them through the events (like for example skilled refugees coming into the city to escape the war in nearby lands). That will be easier to manage and Dark's system could still apply.
Like what we're doing?

Offline darkfire681

  • Newbie
  • *
  • Posts: 3
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #16 on: December 12, 2015, 02:38:38 AM »
For jobs why not install a title system? I made a post in another thread about a similar idea. Basically you use titles as away of tracking the characters current job, skills, and stats. By completing quests or certain conditions you gain titles. By equipping and leveling those titles you gain more skills and higher stat limits. After you master a title you permanently gain the effects of that title. Going off the skill example you gave, five stars would be mastering a title where as having half a star would just mean that you have that title. A basic title build might look something like this

Apprentice Blacksmith XXX--
===================
1 strength + 2
2 Temper Will <Skill>
3 Strength + 3
4 Hp +10
5 Heavy Strike <Skill>

adding in more titles/job will encourage people to experiment and try to find their favorite combination.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #17 on: December 12, 2015, 05:12:23 AM »
For jobs why not install a title system?

There is no good reason not to in general but there are many reasons not to right now. We have too many modules to wrap up and prepare for the release without adding levels to class traits. Also this has been done in a number of games (done well) and I's like to do something properly that hasn't or wasn't done well :)

In any case, this will not happen before the beta release, both Dark and I got a lot of stuff to do as it is and nobody else seems to be helping atm.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #18 on: April 10, 2016, 05:24:18 AM »
Quote
Usual approach when wages are calculated based on stats to within 1 is not very realistic, slightest changes in stats should not affect it. I suppose we always can round stats in calculations up to ten or even more.

And even then wages changes should not be instant, since people cannot really see stats screen, they can see only results of the job. We probably could recalculate wages every 5-15 days, not every turn.
===>> https://github.com/XelaPy/PyTFall/issues/163

Well, you're obviously right, we cannot depend on split functions across 3 different classes like we did in the past, that is close to impossible to balance and to maintain. Given time, I'd like to calculate wages (and a lot of other things) based on a complex Economy module, but that will prolly be worth a whole release version, at least the way I want it to work.

For now, we can start with some things preparing for it and making sure we have a manageable system now, as with everything else, we'll have to use OOP and more specifically a generalized object that can be accessed from any module in the game and fulfills the needs of any such module. It'll be called something like Tier and we'll have to come up with 3 or 4 per job (or group of jobs if/when possible).

For example:

tier 1:
- wage = 5
- stats = ...
- skills = ...
- constant modifiers = ...

func1():
- calculates offsets (if some worker skills are lower/higher than requirements).

and etc.

From this object, we can draw clients expectations, salary a worker expects to receive, actual result. That result will prolly return a percentage which we can modify in the job itself further based off events (matched trait, good mood and etc.).

It will also be very easy this way to add a bar (gui bar, not a business) to modify expected payment within one tier and allow tier upgrades for businesses. If that percentage falls short, reputation is lost, if it's better than expected, reputation increases. Near range will keep rep constant.

This will be easy to code, will work with the possible future Economy module (that will auto-adjust those values through demand/supply of workers based on their amounts and skills). And I think that I can code the system and you can balance it out really well. We may even come up with auto-teir system that takes the first tier and creates new once increasing demands to them... and once more, most relevant data will be at one place, instead of 3 (or more) separate places.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #19 on: April 10, 2016, 08:45:14 AM »
One of the most difficult things is to balance jobs like cleaner, with no income and fixed wages, with jobs like whore, with income and wage based on the number and quality of customers.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #20 on: April 10, 2016, 09:46:44 AM »
One of the most difficult things is to balance jobs like cleaner, with no income and fixed wages, with jobs like whore, with income and wage based on the number and quality of customers.

Wage shouldn't be determined by quality and number of customers, income obviously should and it is up to a player to pay "bonuses" to ensure loyalty.

I am planning to add a "cleaning" business in the future, where maids/cleaners could be hired to do a job. We need to come up with a "base" wages for PyTFall, like minimum, average, good, large. We can use "base" to set up values for all jobs accordingly.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #21 on: April 10, 2016, 10:56:18 AM »
Wage shouldn't be determined by quality and number of customers
But in fact it does, thanks to tips.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #22 on: April 10, 2016, 11:08:43 AM »
But in fact it does, thanks to tips.

Tips shouldn't matter that much, if they do, we'll balance them as well.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #23 on: April 10, 2016, 11:15:48 AM »
Moreover, for whores we calculate outcome for every sex act separately, with different skills sets in mind and for different customers with different preferences and expectations. With multiple outcomes.
While cleaners just reduce the level of dirt, if there is any.

That's... very asymmetrical.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #24 on: April 10, 2016, 11:50:14 AM »
It is different but I don't see a problem there. All workers expect to be paid no matter what, skill sets/expectations determine income and reputation. They all preform service of some sort and expect to be compensated for it, without cleaners, it would be just as impossible to run a bar as without bartenders.

Tiers will help us to determine 3 important things:

- Wage for the tier.
- Skills/Stats requirement for the tier.

- (in appropriate cases) Price of a service for a tier.
===>

This is the only way we can manage it in a system as complex as PyTFalls. If you have better ideas, lets hear them. I think we'll have to determine the tier (which determines wage) of a worker during hiring routine. All minor stuff will be compensated and calculated with code.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #25 on: April 10, 2016, 12:05:26 PM »
No, I don't even mean wages themselves. I mean algorithms behind jobs.

All customer based jobs could be made quite complicated by generating many different customers and running checks for every one of them, that includes waitresses, strippers, guards, etc. In that regard cleaners seem too plain and simple if they just going to reduce dirt value based on some formula.

For instance, they just as other workers could be limited by AP/agility in terms of how many rooms one can clean per turn, no matter how good she is in cleaning. Meaning the general dirt level should be divided between all rooms.
We probably could even make a separate dirt level for every room, but it probably goes too far to micromanagement.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #26 on: April 10, 2016, 12:23:19 PM »
All customer based jobs could be made quite complicated by generating many different customers and running checks for every one of them, that includes waitresses, strippers, guards, etc. In that regard cleaners seem too plain and simple if they just going to reduce dirt value based on some formula.

For instance, they just as other workers could be limited by AP/agility in terms of how many rooms one can clean per turn, no matter how good she is in cleaning. Meaning the general dirt level should be divided between all rooms.
We probably could even make a separate dirt level for every room, but it probably goes too far to micromanagement.

It's not related to wages.

I have already coded in "AP ==> Job Points" conversion for cleaning job, it'll be the first, maybe we'll use that in the future for other jobs as well.

We cannot think in terms of rooms there as well (not all businesses have them)... I am not 100% how to handle dirt for new building system yet, it'll prolly have to be difficulty based. For "area", plan is to use "slots" system we have now (only slots in use will be counted).
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #27 on: April 10, 2016, 01:05:28 PM »
I have some ideas about dirt though.

1) The difficulty of cleaning depends on current dirt level, and it is parabola, roughly. I mean, when the room is full of sh*t (1000), you obviously have to spend a lot of time and resources to clean it. When there is simply some dirt (500), you can rather easily remove it. And when the room is almost clean (close to 0-100), it's very hard to make it even cleaner.
Thus dirt 100-200 should be pretty normal when you don't have pro maids, since low level cleaners unable to clean stuff perfectly, at least fast enough.

2) Inability to run business should be one of worst possible, but not the only one effect of dirt. For example,
200: lower chance for clients to give tips and increase fame and reputation
300: the chance for workers of getting sick
400: clients not just don't increase fame and reputation, but occasionally decrease it
500: more poor clients, less rich ones
600: characters with some traits refuse to work
700: less clients in general
800: free characters begin to leave your business
900: inability to run business

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6881
  • "It's like hunting cows"
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #28 on: April 10, 2016, 01:25:08 PM »
1) The difficulty of cleaning depends on current dirt level, and it is parabola, roughly. I mean, when the room is full of sh*t (1000), you obviously have to spend a lot of time and resources to clean it. When there is simply some dirt (500), you can rather easily remove it. And when the room is almost clean (close to 0-100), it's very hard to make it even cleaner.
Thus dirt 100-200 should be pretty normal when you don't have pro maids, since low level cleaners unable to clean stuff perfectly, at least fast enough.

Sounds complicated... and a lot of work for a minor thing (unless we want to make dirt a big thing). We can add a function for this but I am not sure that the idea is sound.

2) Inability to run business should be one of worst possible, but not the only one effect of dirt. For example,
200: lower chance for clients to give tips and increase fame and reputation
300: the chance for workers of getting sick
400: clients not just don't increase fame and reputation, but occasionally decrease it
500: more poor clients, less rich ones
600: characters with some traits refuse to work
700: less clients in general
800: free characters begin to leave your business
900: inability to run business

We need more job events :)

@300: Sick ==> Should be much higher up the ladder.
@500: Why more poor clients? I understand richer client leaving but why would dirt attract more poor clients?
@700: We handle clients on case per case basis so we'll just turn them around when they enter the business.
@800: Not an option, this is completely out of sync with game mechanics, we can lower disposition/joy which will increase chances of the char leaving your service but just walking out because the business got dirty is not a good option.

We need to be careful with Job events as well, since we are planning to allow large businesses with a lot of workers and clients, too many checks may slow sh!t down.

We'll also need a system for this, lets do basic jobs first, I'll think about how we can add events there later.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.
« Reply #29 on: April 10, 2016, 02:46:33 PM »
Sounds complicated... and a lot of work for a minor thing (unless we want to make dirt a big thing). We can add a function for this but I am not sure that the idea is sound.
Adding a parabolic function to formula is not a big deal. The idea is that vip clients, apart from other things, would require close to 0 dirt, which will be unavailable without pro cleaners. Making high cleaners very important.

@300: Sick ==> Should be much higher up the ladder.
Well, in reality all those things should be chance based. I just roughly estimated base dirt value.

@500: Why more poor clients? I understand richer client leaving but why would dirt attract more poor clients?
If we reduce the number of rich ones, but not the number of clients in general, naturally we will have more poor ones  :)