PyTFall > PyTFall: Game design

Jobs/Businesses/Wages/Tips/Clients Conceptual Discussion.

(1/7) > >>

Xela:
A little overview of what I've been trying to do for the last month and why:

Our old system while working reasonably well had more holes in it than Swiss cheese. For once, most of it was not "real", clients were not directed through businesses, it was not ready for expansion (partly because it was originally written for a much simpler/smaller concept) and all upgrades were linear (as in not having any relevant effects on the business, just modifying couple of values and adding a text). That is just to name a few issues...

If you recall, I tried coding in a better system but gave up after a few days due to insane complexity of building a capable business management code. I left the code sitting by idly in the game hoping one day to resume it, that never happened because Doc dug up SimPy Python module that did the very management thing I was trying to code, it took me about 3 or 4 weeks to figure it out to use effectively but I think that I am getting there, at least for the first version of a new module.

History aside, this is how it works:

1) Buildings.
Currently buildings hold a number of general attributes and space to add upgrades (outside and inside). Most of those upgrades require time to build/expand.
Building manages flow of clients:
- Clients walks in and wants to use one of the businesses. If business is running at full capacity (no rooms at brothel/chairs in bar and etc.), client can either leave, wait or go use a different business. This can be managed more favorably if there is a manager in the building.
- Building also holds financial data, runs the simulation environment and etc.

2) Upgrades (or businesses).
They can be habitable/workable or both:
- habitable means that a person can live there.
- workable means some form of a business.

Business have 2 forms and will have one more:

Form 1: Personal Service which means a personal service to a customer or a number of customers. Simplest example is WhoreJob.
Form 2: Public Service which means serving some pool of customers in no particular order. Example is StripClub.
Form 3: Task Service where there is usually no customers and workers simply have to complete some task (Building/Crafting and etc.)

3) Jobs:
Presently jobs are simply a holders for simple data and a number of methods (functions). They are used to check if a character is willing to do the particular job and log in/form next day reports.

All clients are now properly created, I have some ideas for dummy clients to improve upon performance but that will code post beta. Clients go into rooms, clubs, bars, wait in the lobby and etc. All of that is simulated client by client. For time discrete units are used, presently a base of 100 units. Such a setup will allow truly meaningful, noticeable upgrades to business (yes (sub)upgrades for upgrades) and meaningful control over workflow with managers/MC.

I will expand of this post if questions arise or something needs to be made clearer.

I'll also try to create new issues with checklist to better track progress on jobs and manage it.

Xela:

--- Quote from: DarkTl ---Wages and stats/skills:

    - We cannot bind wages to skills directly as long as they can be raised infinitely and are not limited by anything, it's a path to infinite wages.

    - I believe wages should be based on character level and class. Class will give a base value (twice in the case of a single class), and every level will increase it a bit.

When we try to include there stats or skills, we discourage players to train characters. Surprisingly, it leads to tricks when players decrease stats on purpose to make wages lower, they did it a lot during the alpha. I'm not saying it's a very bad thing, but it's a bit illogical when a pretty character wears ugly armor and expects less wage.

    - We could invent an indirect system, when we somehow normalize skills before using them to calculate wages. But some classes focus on stats while others on skills, it might lead to huge wages imbalance. Another reason to not calculate wages based on them.

    - To provide control over wages and not make them overwhelming and quickly increasing, we could make level ups manual, ie only with the permission of the player. This way if the player cannot afford to pay more yet, he can stop leveling the character until the situation will change. Such characters will not get any more exp until leveled up.

--- End quote ---


--- Quote from: DarkTl ---Customers-based jobs income:

    - Every customer has a limited, random amount of gold based on his social level. I think we already have something like that, but I don't remember the details. The more reputation the building has (no matter what you do there), the more customers and with higher levels come.
    - The more level of the customer, the higher skill is required to make him/her happy and part with gold. Since they also have more money at higher levels, it is worth it anyway.
    - While skills determine how happy the customer will be after the service, thus how many willing to pay and how many reputation to give, stats will determine other things, like how many customers the character can serve (agility and constitution), whether customers like the character or not (ie tips), etc.

--- End quote ---

Xela:

--- Quote from: DarkTl ---Wages and stats/skills:

    - We cannot bind wages to skills directly as long as they can be raised infinitely and are not limited by anything, it's a path to infinite wages.

--- End quote ---

We could... since we can actually find out a max skill in the game by a method I suggested earlier (get a mean of 10 best actors) but even then it would have to be only a part of it. People are not always get payed purely based on their skills.


--- Quote from: DarkTl ---    - I believe wages should be based on character level and class. Class will give a base value (twice in the case of a single class), and every level will increase it a bit.

--- End quote ---

That will not work (at all) as level does in no way guarantee high stats or skills for the class. It does guarantee high capability for advancing those skills/stats faster and to higher values.


--- Quote from: DarkTl ---When we try to include there stats or skills, we discourage players to train characters. Surprisingly, it leads to tricks when players decrease stats on purpose to make wages lower, they did it a lot during the alpha. I'm not saying it's a very bad thing, but it's a bit illogical when a pretty character wears ugly armor and expects less wage.

--- End quote ---

Kinda depends in circumstances... a Stripper that comes out for a show in an ugly armor should not expect to get paid as much as if it was a proper performance, this is easy to circumvent as we can use the stats dict for calculations instead of pure, final values.


--- Quote from: DarkTl ---    - We could invent an indirect system, when we somehow normalize skills before using them to calculate wages. But some classes focus on stats while others on skills, it might lead to huge wages imbalance. Another reason to not calculate wages based on them.

--- End quote ---

We already have this system (as we track items stats and pure stats separately).

I agree, stats/skills may add a very limited bonus but should not be considered central, such system would be too difficult to work with.


--- Quote from: DarkTl ---    - Every customer has a limited, random amount of gold based on his social level. I think we already have something like that, but I don't remember the details. The more reputation the building has (no matter what you do there), the more customers and with higher levels come.

--- End quote ---

This is a solid idea and a lot simpler to manage with SimPy (it was close to impossible before). I am not sure about it because bringing in customers money as an extra variable will be more difficult to manage/balance but then again, the closer it is to RL, the more sense it should make. At least I hope that it will. This is definitely worth consideration/discussion.


--- Quote from: DarkTl ---    - The more level of the customer, the higher skill is required to make him/her happy and part with gold. Since they also have more money at higher levels, it is worth it anyway.

--- End quote ---

One option, for some reason I went with the highest skill (out of all skills) of a customer vs relevant skill of a worker (kinda one professional will always appreciate another pro, no matter how different their areas of expertise are). Level just might make more sense (code will definitely be simpler)... Hard to tell.


--- Quote from: DarkTl ---    - While skills determine how happy the customer will be after the service, thus how many willing to pay and how many reputation to give, stats will determine other things, like how many customers the character can serve (agility and constitution), whether customers like the character or not (ie tips), etc.

--- End quote ---

This is very job defendant so it's difficult to discuss over the whole concept.

Xela:
My own approach would be something like this (I don't have a lot of time so I'll be brief, we can discuss everything in detail over the next few days/weeks):

We can start Economy module with something simple, like a simple variable of 0.5 - 1.5 as a modifier to determine strength. Maybe we can also track a logical amount (just numbers, without actually creating instances) of characters with the occupation in the city, same for businesses.

Wages should be fixed on basis of an occupation:

Modified by:
+++
Economy mod(s)

++
Stats

+
Skills

They should also be negotiated when hiring the character and fixing on that level. Much should depend on how much tips the character is allowed to keep (much lower wage for more tips for example). Paying more than agreed amount will mean more joy/disposition, less=less.

Price of a service should depend on and be fixed for a business:

Modified by:
+++
(sub)Upgrades
Location (Quarter a building is in, like a business based in Richford should have higher base prices than one located in Fleebottom)

++
Economy mod(s)

+
Fame/Reputation of a building

Tips should most depend in economy mod and skills/stats of a worker.

If we go that way, on hand cash of customers should depend on economy mod(s) + reputation of the building (besides the obvious level/status of a client).

DarkTl:
About skills.

Skills, as a knowledge about something, could be increased infinitely unlike stats. But it should be a bit more difficult to obtain every next point. The more you know, the more difficult it is to find out something new.
How I imagine it at this point:

- skills have effective levels. There is no difference in terms of ingame formulas between vaginal 105 and 110. There is difference between vaginal 50 and vaginal 100.
- skill less than 50 is 0 lvl. Skill from 50 to 100 is lvl 1. Then we go like 200, 400, 800, 1600, etc. Or any other progression.
- we even can show skills progress bars and effective levels in gui.

So we keep infinite skills without the need to normalize them anyhow, and use effective levels in checks, making checks simpler.

Navigation

[0] Message Index

[#] Next page

Go to full version