HentHighSchool Development Forum

Game Development => HHS+ => Topic started by: dcsobral on Mar 24, 2023, 10:11 PM

Title: Schedule Creation Guide
Post by: dcsobral on Mar 24, 2023, 10:11 PM
This is a guide on how to create schedules that will work all the way up to 10 classes with all subjects.

There's a tool out there that will create schedules and will even let you pick a save game file and it will create a new save game with the schedule it created. However, while it works really well at first it doesn't scale all the way to 10 classes.



The first thing to take into account is that some subjects can only be taught at specific locations:


Because there are 4 time slots on each day, and 5 days a week, that means any classroom can be used at most 20 times a week. If all your classes have the same number of each subject and you have all 10 classes, then a classroom can only be used 2 times for each class.

So if you have 10 classes, then each class can only have Swimming twice a week, for example. If you only have 5 classes, then each one could have Swimming four times a week.



So here are the steps to create a schedule, and then we'll go into detail for each one.




Step 1: Make a list of all subjects.

Spoiler
Some subjects are locked at the beginning of the game and you'll have to unlock them before they become available. There are two types of restrictions locking a subject:

  • Some subjects require a specific expansion.
  • Some subjects must be approved by the PTA.

Art, Biology, Chemistry, Physics, Computer Science, Music and Swimming only need the expansion.

Theoretical and Practical Sex Education only need PTA approval.

Anatomy and Bondage require both an expansion and PTA approval.

So make a list of all the unlocked subjects you want to teach. Basically, anything that shows up on the Teacher Assignments tab.

There are reasons why you might not want to teach a subject even if it is unlocked. Of particular note, History decreases happiness and Religion decreases Corruption. Besides that, some subjects are simply better for some stats so you might want to focus on them to get those stats higher faster.

You can see an explanation of how a subject influences students and teachers in the Principal's Primer book, and well as mousing over the subject in the Timetable while managing the school. If you are truly obsessed, open the Debug menu, click on the Game Objects tab, select School Subjects in the first drop down, select a subject in the second drop down, scroll down to the bottom, open the "ImprovementInfluence" collection and look at what stats it is changing, by how much, and any level limits that might apply. This can also be done before loading the game (or starting a new one) by going to Development and then choosing File Editor, clicking on School Subject and then loading the subject.

My recommendation is to just list all subjects available, unless you know what you are doing and don't need a recommendation.
[close]


Step 2: Put subjects that must be taught in the same classroom next to each other.

Spoiler
This step is essential for this method to work. Let's say the only expansion you have is Chemistry Classroom and you have not unlocked any subject through the PTA. This is the list of subjects in alphabetical order:

  • Chemistry
  • Economics
  • English
  • Geography
  • History
  • Math
  • Philosophy
  • Physics
  • Religion
  • Sports

Because Chemistry and Physics share the same classroom, you must move them so they are next to each other. For example:

  • Chemistry
  • Physics
  • Economics
  • English
  • Geography
  • History
  • Math
  • Philosophy
  • Religion
  • Sports

Here are the subjects that must appear next to each other in the list:

  • Anatomy and Biology (Biology Classroom)
  • Chemistry and Physics (Chemistry Classroom)
[close]



Step 3: Choose the number of times a week each subject should be taught.

Spoiler
You have to fill 20 time slots for each class. If we take the example from the previous step, which has 10 subjects, and you choose each subject to be taught twice a week, you'd fill all 20 slots:

  • Chemistry: 2
  • Physics: 2
  • Economics: 2
  • English: 2
  • Geography: 2
  • History: 2
  • Math: 2
  • Philosophy: 2
  • Religion: 2
  • Sports: 2

However, you have to pay attention to how many times the special classrooms are used each week! Sports, because it can be taught in two different locations, can be taught up to 40 times a week. Chemistry and Physics can be taught up to 20 times a week, but they must share the classroom.

So with Chemistry and Physics each being taught 2 times a week, the Chemistry room will be in use 4 times a week for each class. That means the above schedule can only be used with up to 5 classes (4 times a week times 5 classes = 20 time slots).

If you have 2 classes you can assign a special classroom up to 10 times for each class.
If you have 3 classes you can assign a special classroom up to 6 times for each class.
If you have 4 classes you can assign a special classroom up to 5 times for each class.
If you have 5 classes you can assign a special classroom up to 4 times for each class.
If you have 6 classes you can assign a special classroom up to 3 times for each class.
If you have 7 or more classes you can assign a special classroom up to 2 times for each class.
[close]



Step 4: Repeat the subject on the list based on how many times it should be taught.

Spoiler
This is easier to show than to explain. Let's say you decided to do this:

  • Chemistry: 1
  • Physics: 1
  • Economics: 3
  • English: 1
  • Geography: 1
  • History: 3
  • Math: 1
  • Philosophy: 3
  • Religion: 4
  • Sports: 2

Then you'd turn that list into this:

  • Chemistry
  • Physics
  • Economics
  • Economics
  • Economics
  • English
  • Geography
  • History
  • History
  • History
  • Math
  • Philosophy
  • Philosophy
  • Philosophy
  • Religion
  • Religion
  • Religion
  • Religion
  • Sports
  • Sports

See how they now number from 1 to 20? You have a schedule!

If you choose to add free time for your students, you can simply add a "Free Time" line anywhere between two different subjects except between subjects that share the same class. Just make sure there are exactly 20 lines.
[close]



Step 5: Mark the the starting location on the list for each class.

Spoiler
The key to this step is knowing the maximum number of times a special classroom is used. For example, say you have this:

  • Arts
  • Arts
  • Chemistry
  • Chemistry
  • Physics
  • Physics
  • Music
  • Music
  • Music

Then even though Music is taught 3 times a week versus 2 times a week for the other subjects, because Chemistry and Physics share the Chemistry Classroom it means the Chemistry Classroom is used 4 times a week, which is more than the 3 times a week for the Music Classroom.

Once you found the maximum number of time a special classroom is used in a week, place Class 1 at the top of the list, then skip down the list by that number and place Class 2, then repeat until all classes are assigned.

For example:

  • Chemistry
  • Chemistry
  • Physics
  • Physics
  • Economics
  • Economics
  • Economics
  • English
  • Geography
  • History
  • History
  • History
  • Math
  • Philosophy
  • Religion
  • Religion
  • Religion
  • Religion
  • Sports
  • Sports

The Chemistry Classroom is used 4 times and the Gym is used 2 times, so the maximum number of times is 4. If we have 5 classes, then we do this:

  • Class 1: Chemistry
  • Chemistry
  • Physics
  • Physics
  • Class 2: Economics
  • Economics
  • Economics
  • English
  • Class 3: Geography
  • History
  • History
  • History
  • Class 4: Math
  • Philosophy
  • Religion
  • Religion
  • Class 5: Religion
  • Religion
  • Sports
  • Sports
[close]



Step 6: Fill the schedule of each class from their starting location, wrapping around when needed.

Spoiler
Now you just have to fill the schedule of each class starting from the where each class was assigned in the list. Let's repeat the example of the previous step:

  • Class 1: Chemistry
  • Chemistry
  • Physics
  • Physics
  • Class 2: Economics
  • Economics
  • Economics
  • English
  • Class 3: Geography
  • History
  • History
  • History
  • Class 4: Math
  • Philosophy
  • Religion
  • Religion
  • Class 5: Religion
  • Religion
  • Sports
  • Sports

So on Monday 7:50, Class 1 would have Chemistry, Class 2 would have Economics, Class 3 would have Geography, Class 4 would have Math, and Class 5 would have Religion.

You can fill the schedule either left-right first, or top-down first. Let's say we fill it top-down. Then on Monday the Class 1 would have Chemistry, Chemistry, Physics, Physics. On Tuesday it would have Economics, Economics, Economics, English. Etc.

Let's look at class 5, though. On Monday it has Religion, Religion, Sports, Sports. Then, since we got to the end of the list, we go back to the top, so on Tuesday it will have Chemistry, Chemistry, Physics, Physics, on Wednesday it would have Economics, Economics, Economics, English, etc.

That's all there is to it. The schedule will work and the special classrooms will not be double booked.
[close]



About Teachers

Spoiler
This technique assumes all teachers can teach all subjects. Sometimes, however, that is undesirable. Some teachers are much better than others at one subject, and some events requires that a specific teacher be teaching something (I'm looking at you, Keller!).

My recommendation is to not assign more than one exclusive subject for each teacher. For example, Claire is very good with Arts so make her the exclusive teacher for Arts, but do not give any other exclusive subject to her. For example, don't make her the exclusive teacher of both Arts and Music. There's one exception to this rule, which we talk about below.

For the subjects that share the same special classroom, make the same teacher the exclusive teacher of both subjects. For example, if you want only Carmen to teach Anatomy, then make her the exclusive teacher of both Anatomy and Biology, but no other subject.

The same applies to subjects that do not require a special class. For example, if you want only Keller to teach Theoretical Sex Education, then that should be her only exclusive subject.

Basically, a teacher should be treated the same way as an exclusive room when making the schedule. All subjects that are exclusive to the same teacher should be next to each other on the list on step 2, and the  number of time slots exclusive to that teacher must be considered on step 5.
[close]
Title: Re: Schedule Creation Guide
Post by: TBBle on Mar 25, 2023, 06:51 AM
For reference, https://henthighschool.net/hhs/tiquionophist-s-class-scheduler-1-2-0/ is a tool mentioned at the start. I haven't looked closely at how it works to know why it doesn't scale up to 10 classes. If I recall correctly, it's a constraint solver that random-guesses and then validates, so does it just take too long to find a workable solution for 10 classses?

I wonder if it could be adapted to implement this process? It has the huge advantage that it tells you the actual stat effects of the given schedule, which would definitely help with Step 3.
Title: Re: Schedule Creation Guide
Post by: dcsobral on Mar 28, 2023, 11:00 PM
Quote from: TBBle on Mar 25, 2023, 06:51 AMFor reference, https://henthighschool.net/hhs/tiquionophist-s-class-scheduler-1-2-0/ is a tool mentioned at the start. I haven't looked closely at how it works to know why it doesn't scale up to 10 classes. If I recall correctly, it's a constraint solver that random-guesses and then validates, so does it just take too long to find a workable solution for 10 classes?

I wonder if it could be adapted to implement this process? It has the huge advantage that it tells you the actual stat effects of the given schedule, which would definitely help with Step 3.

Yes, it becomes slow to the point I just gave up waiting way before I got to 10 classes. The method I described is not flexible enough for the options that program gives you, but I believe it could be adapted to do something similar in the "exhaustive" mode.
Title: Re: Schedule Creation Guide
Post by: Jtain360 on Jun 05, 2023, 01:27 PM
Thank you for the guide. I was wondering about this line:

Quote...and some events requires that a specific teacher be teaching something (I'm looking at you, Keller!).

Is there a list anywhere of which teacher/class combinations are needed for these events? I've searched as much as I could but was not able to find such a list.

Or if it generally doesn't matter then that is good too.
Title: Re: Schedule Creation Guide
Post by: Calob on Jun 05, 2023, 03:35 PM
Quote from: Jtain360 on Jun 05, 2023, 01:27 PMThank you for the guide. I was wondering about this line:

Quote...and some events requires that a specific teacher be teaching something (I'm looking at you, Keller!).

Is there a list anywhere of which teacher/class combinations are needed for these events? I've searched as much as I could but was not able to find such a list.

Or if it generally doesn't matter then that is good too.

It's a pretty short list, and subject to events being changed/added:

Carl needs to be teaching School Sport to advance his questline, but also has recurring events when he is teaching Music.

April requires Religion to be taught to advance her quest, but she doesn't need to be teaching it.

Keller has events related to Computer Science, Theoretical Sex Education, Practical Sex Education, and Bondage class, though for the most part it is a progression from one to the next.
Title: Re: Schedule Creation Guide
Post by: blumph on Jun 05, 2023, 05:53 PM
Quote from: Calob on Jun 05, 2023, 03:35 PM
Quote from: Jtain360 on Jun 05, 2023, 01:27 PMThank you for the guide. I was wondering about this line:

Quote...and some events requires that a specific teacher be teaching something (I'm looking at you, Keller!).

Is there a list anywhere of which teacher/class combinations are needed for these events? I've searched as much as I could but was not able to find such a list.

Or if it generally doesn't matter then that is good too.

It's a pretty short list, and subject to events being changed/added:

Carl needs to be teaching School Sport to advance his questline, but also has recurring events when he is teaching Music.

April requires Religion to be taught to advance her quest, but she doesn't need to be teaching it.

Keller has events related to Computer Science, Theoretical Sex Education, Practical Sex Education, and Bondage class, though for the most part it is a progression from one to the next.

Carmen Smith needs to teach Biology to start her chain.
Title: Re: Schedule Creation Guide
Post by: Jtain360 on Jun 05, 2023, 07:52 PM
Thank you both for the reply. Whats your strategy with Keller? Just have her teach all the requiered classes, or do you switch her when you need to advance her story?
Title: Re: Schedule Creation Guide
Post by: Calob on Jun 05, 2023, 09:35 PM
Quote from: blumph on Jun 05, 2023, 05:53 PMCarmen Smith needs to teach Biology to start her chain.

Does she? I checked SmithBlackmailPA, YoungLoverPA, and SmithTrip and none of them require biology. YoungLover triggers on being in a classroom with her and Oliver Dixon.

Quote from: Jtain360 on Jun 05, 2023, 07:52 PMThank you both for the reply. Whats your strategy with Keller? Just have her teach all the requiered classes, or do you switch her when you need to advance her story?

Once you've unlocked Practical Sex Ed, Keller doesn't need to be on Theoretical Sex Ed, and similarly once you've unlocked Bondage Class, she doesn't need to be on Practical Sex Ed.

Though actually, I'm double-checking and I don't see Keller as a requirement for any of the Bondage class events (just required to unlock), nor Computer Science. What she does have instead is a quest that requires the 'rigid computer monitoring' rule and a spycam in the computer lab, which is what I was confusing it with.