Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Overhaul training #2314

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Conversation

lewri
Copy link
Member

@lewri lewri commented Mar 14, 2023

Fixes #1458
Fixes #2262
Fixes #2603

Describe what the proposed change does

  • Overhauls the training system to be a bit more akin to TH (based on dissection in 1458). It also means training is more reactive to several factors (TODOs in code).
  • The math.rand modulo function was not incorporated, as it caused a lot of groundhog day scenarios with docs nearer consultant level
  • Large explanation comments currently left in, to be moved to the Wiki, and shortened in the lua file, if plan to merge.

For award values following this PR: (before PR general skill was 0.0035 regardless of factors)

1-3 trainees with 1 consultant (no specialities): 0.004 per day (0.03 junior to 0.750 
con in 180 days)

1-3 trainees with 1 consultant (surgeon): 0.002 per day general; ~0.008 per day surgeon 
(125 days to get specialism) (general goes to 0.004 after specialism obtained)

Trainee's attention to detail, consultant's skill, and a triangular distributed random 
number affect skill gained +-10% (individual to each trainee)

Trainees in room over 3 lower skill gained by 2/n-1 per trainee

Skills taught lower skill gained by 1/skills taught (generalist skill counts as a 
skill)

Minimum award is always 0.001

The max skill a doctor can have to get surgeon certification is ~0.5 at the start 
(teaching all 3 specialisms at once to <=3 trainees).

(Another comparison is Cons. Psychiatrist with trainee psych skill per day: Before PR - 0.0118; After PR: - 0.0105)

Please do test this as I need to know whether the balance is correct. If you need a good level in the main game try Level 9

@lewri lewri force-pushed the training_overhaul branch from 44b4875 to 2a416c6 Compare March 14, 2023 19:16
@lewri lewri changed the title [WIP] Testing Required - Overhaul training [RFC] Testing Required - Overhaul training Apr 20, 2023
@lewri lewri force-pushed the training_overhaul branch from 0135d40 to b1c9880 Compare May 7, 2023 12:32
@lewri lewri force-pushed the training_overhaul branch from b1c9880 to 63e9c94 Compare May 10, 2023 21:39
@lewri lewri changed the title [RFC] Testing Required - Overhaul training Testing Required - Overhaul training May 10, 2023
@lewri
Copy link
Member Author

lewri commented May 10, 2023

As Alberth said, we're not likely to get balance testers until the PR is in the game so I've marked as ready.

If we're merging let me know first so I can remove all the comments for the wiki.

@lewri lewri changed the title Testing Required - Overhaul training Overhaul training May 22, 2023
@lewri
Copy link
Member Author

lewri commented May 22, 2023

Wiki comments removed now ahead of time. You can view them still under 98bb983 as removed lines.

@lewri lewri force-pushed the training_overhaul branch from 68db169 to 3067c17 Compare February 19, 2024 20:39
@lewri lewri changed the title Overhaul training [RFC] Overhaul training Feb 19, 2024
@ARGAMX
Copy link
Contributor

ARGAMX commented Oct 1, 2024

Great enhancement.
I'd like to help to get this merge done.
I'd like to test this in game.

@Alberth289346
Copy link
Contributor

Alberth289346 commented Dec 21, 2024

Great enhancement. I'd like to help to get this merge done. I'd like to test this in game.

You can get the branch in 2-3 ways:


  1. Download the branch of this PR:

GH documents how to get a PR: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

  • Starting at step 3: ID = 2314
  • Step 5 then becomes the magic git fetch origin pull/2314/head:training_overhaul
  • Step 6 then becomes git switch training_overhaul

  1. Add the Lewri GH repository as a remote to your local copy of the repository:

git remote add lewri git@github.com:lewri/CorsixTH.git

Now you can do git fetch lewri training_overhaul to get the branch from the GH repo of Lewri.

Then switch to the lewri/training_overhaul branch.


You can also get the changes of the branch as diff files, and apply the changes yourself.

@ARGAMX
Copy link
Contributor

ARGAMX commented Dec 21, 2024

You can get the branch in 2-3 ways:

@Alberth289346 thanks for the detailed instructions 👍

I get that functionality with your help 👌

@ARGAMX
Copy link
Contributor

ARGAMX commented Mar 19, 2025

Had experimented with this [Overhaul training] PR and original TH.

What experiments were conducted:
Experiments with teaching a group of 6 students.

Experimental conditions in Training room:
Room with 12 chairs at size 9x13.
Equipped with 1 skeleton and 1 bookcase.
Lector: Consultant with ~100% ability level and 3 skills.

Savegame with these experimental conditions:
TH:
CTH:

Problems which does this PR solves:

  1. Noticed that getting skills for mid-Doctor has become more accessible. Which allows to teach mid-Doctor for surgery skills. Previously It was more difficult to do that before. 👍

However, there are still many differences to the the original game (I think they were there before this PR):

  1. ⚠️⚠️⚠️ Group training in this [Overhaul training] PR is still slower than in TH.
  2. ⚠️⚠️ Compared to the original game in this [Overhaul training] PR variation in learning speed within the group is missing.
  3. ⚠️ Solo learning speed in this OT is slower than TH. (no experiment details)
  4. Skeleton and Bookshelf doctor animations is play 6-10 times, although in TH only 1 time.
  5. Promotion to the next rank in TH was only after a threshold time. So this still makes it a little harder to get skills for a mid-doctor in CTH.
  6. When training just started the skill level can be displayed as 0% in this PR. I didn't observe the same in CTH before. I think that any value needs to be displayed, even 0.00001% should be rounded up to 1%. (check attached image).
Screenshot 2025-02-10 at 20 07 16

.
.
.
Let's analyze 1 and 2 in more detail.

======================================================================

Let's start with vanilla TH.

I hired 6 interns and conducted continuous training for 3 months. And here is results of 3 months:

Surgeon / Psycho / Research
44 55 73 (Bennington, ATD 60%) earned Doctor degree
25 31 42 (Goldsmith, ATD 40%) earned Doctor degree
22 28 37 (Milers, ATD 20%)
22 28 37 (Bursil, ATD 50%)
21 26 35 (Beners, ATD 50%)
21 26 35 (Wrigthwick, ATD 90%)
(Sum 608)

What conclusions can be drawn at this stage::

  1. ATD is attention to details. As you can see there is no obvious correlation between ATD and learning speed. Moreover, in this experiment, the Intern with the highest ATD level showed the worst results.
  2. You can see that the group is clearly divided into several subgroups with identical results inside subgroup:

Group 1: Bennington
Group 2: Goldsmith
Group 3: Milers, Bursil
Group 4: Beners, Wrigthwick

Here is the result after another 3 months (6 in total):

77 96 100 (Bennington, ATD 60%) Doctor
44 55 73 (Goldsmith, ATD 40%) Doctor
42 53 71 (Milers, ATD 20%)
41 51 68 (Bursil, ATD 50%) earned Doctor degree
40 50 66 (Beners, ATD 50%)
40 50 66 (Wrigthwick, ATD 90%)
(Sum 1083)

What conclusions can be drawn at this stage:

  1. As we can see, from the very beginning of the training, some students learned faster than others. Their multipliers or divisors of the intensity of the skill acquisition remained static for all 6 months for the same students. Then they rested here for 1 month and were then thrown back into the training room.

Here is the result after another 3 months (9 in total):

100 100 100 (Bennington, ATD 60%) Doctor
61 76 100 (Goldsmith, ATD 40%) Doctor
69 86 100 (Milers, ATD 20%) earned Doctor degree
68 85 100 (Bursil, ATD 50%) Doctor
61 76 100 (Beners, ATD 50%) earned Doctor degree
65 81 100 (Wrigthwick, ATD 90%)

What conclusions can be drawn at this stage:

  1. As you can see, after the extraction and return to the training room, the multipliers or dividers were redistributed among the students. Now it is noticeable that the students who were on par before were divided by speed. Milers overtook Goldsmith. Wrigthwick overtook Beners.

After 9 months we have 6 Researchers and 1 Psychologist.

Here is the result after another 3 months (12 in total):

100 100 100 (Bennington, ATD 60%) Doctor
80 100 100 (Goldsmith, ATD 40%) Doctor
93 100 100 (Milers, ATD 20%) Doctor
88 100 100 (Bursil, ATD 50%) Doctor
80 100 100 (Beners, ATD 50%) Doctor
100 100 100 (Wrigthwick, ATD 90%) earned Doctor degree

After 12 months we have 6 Researchers, 6 Psychologists and 2 Surgeons.

======================================================================

I have restarted the absolutely the same experiment and here is results of 3 months:

Surgeon / Psycho / Research
24 30 40 (Bennington, ATD 60%) (was 44 55 73 in first attempt)
30 38 51 (Goldsmith, ATD 40%)
57 71 95 (Milers, ATD 20%) earned Doctor degree (was 22 28 37 in first attempt)
24 30 40 (Bursil, ATD 50%)
21 26 35 (Beners, ATD 50%)
21 26 35 (Wrigthwick, ATD 90%)
(Sum 694)

What conclusions can be drawn at this stage:

  1. As you can see now leader Milers, not Bennington. And Wrigthwick with ATD 90% again did not achieve any special results. Which once again confirms that there is no obvious correlation between ATD and learning speed.
  2. In both experiments you can see that the group is clearly divided into several subgroups with identical results inside subgroup:

Group 1: Milers
Group 2: Goldsmith
Group 3: Bennington, Bursil
Group 4: Beners, Wrigthwick

======================================================================

Now let's check how it will work for [Overhaul training] PR:

Surgeon / Psycho / Research
15 18 25 (Highwick, ATD 90%)
15 18 25 (Warmoor, ATD 90%) earned Doctor degree
14 18 24 (Kerham, ATD 90%)
14 18 24 (Binnmpor, ATD 50%)
14 17 23 (Kerton, ATD 25%) earned Doctor degree
14 17 23 (Scotlan, ATD 12%)
(Sum 336)

So what do we see here?
What conclusions can be drawn at this stage:

  1. In vanilla TH we were able to earn 608 in the first approach and 694 in the second approach (vs 336 here) summarized percentages in 3 months. In [Overhaul training] PR we have only 336 which seems 2 times less. This is a significant difference. Also there is no teaching speed spread within the group.
  2. We only see some small correlation depending on the level of attention to detail.

Here is the result after another 3 months (6 in total):

Surgeon / Psycho / Research
30 37 50 (Highwick, ATD 90%)
30 37 50 (Warmoor, ATD 90%) Doctor degree
30 37 50 (Kerham, ATD 90%)
29 36 49 (Binnmpor, ATD 50%) earned Doctor degree
28 36 48 (Kerton, ATD 25%) Doctor degree
28 35 47 (Scotlan, ATD 12%) earned Doctor degree
(Sum 687)

What conclusions can be drawn at this stage:

  1. In vanilla TH we were able to earn 1083 (vs 687 here) in the first approach summarized percentages in 6 months. In [Overhaul training] PR we have only 336 which seems 2 times less. This is a significant difference. Also there is no teaching speed spread within the group.
  2. Obviously, the students learn evenly and will finish their studies almost at the same time in future. Here it will not be possible to get one skilled doctor before others as in TH.

Here is the result after another 3 months (9 in total):

Surgeon / Psycho / Research
45 57 76 (Highwick, ATD 90%) earned Doctor degree
45 57 76 (Warmoor, ATD 90%) Doctor degree
45 56 75 (Kerham, ATD 90%) earned Doctor degree
44 55 74 (Binnmpor, ATD 50%) Doctor degree
43 54 72 (Kerton, ATD 25%) Doctor degree
43 54 72 (Scotlan, ATD 12%) Doctor degree

What conclusions can be drawn at this stage:

  1. In TH at this stage we had 6 of 6 teached to Research. Here we have 0 of 6. In TH at this stage we had 1 of 6 teached to Surgeon. Here we have 0 of 6. Obviously, the speed of learning skills in a group is much lower here. Which makes the group study at CTH seem to be completely meaningless.

I think
local c_impact = class_size >= 3 and 2 / (class_size - 1) or 1
Not quite accurate represent class points distribution in TH.

It also seems that it would not be superfluous to take the logic of teaching into a separate class, as earthquakes and epidemics were taken out.

This [Overhaul training] PR is better than how it works now.
I think this should be merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Status: Missed/Postponed
3 participants