Rule Your School, now on Steam! - WeersProductions

Hello there,

I am Floris Weers, CEO of WeersProductions. We are happy to announce our upcoming game: Rule Your School!

A short summary of what you can do in the game:

  • Design and build your own school. What kind of school do you want to build?

  • Hire teachers, train them and configure their loans. Make sure they are happy and don’t run away!

  • Gather new students if your school is big and good enough.

  • Keep your students happy and healthy. Select what food is available in the canteen and set their prices. Everything affects everything. Make sure you make the right decisions!

  • Newspapers, students and teachers will ask or mail you. How will you respond to their questions and how will it affect your school?

  • See detailed statistics about your students and teachers to know how to respond to certain events!

  • Unlock more objects and more possibilities as you play, to make sure your school is up to date!

  • Enjoy the classic mode where you start from the bottom, or go with sandbox and build the school of your dreams out of the box!

Learn more about Rule Your School here.

But how did we do it and what are we going to update?

Pathfinding:
We wanted a lot of characters calculate individual paths without lag. Therefore we created a 2D path finding system using the A* algorithm. A character requests a path and sends a delegate as parameter.

PathRequestManager.RequestPath(currentCoords, targetCoords, OnPathFound);

currentCoords: The coordinates the character is right now.

targetCoords:The coordinates of the goal the character wants to go to.

OnPathFound: A delegate function
public void OnPathFound(Vector2[] NewPath, bool PathSuccesfull)

{

//Do stuff with our path if it is succesfull.

}

The path finder controller will create a second thread. This thread will calculate all paths that are requested and will add the result path to a queue. A coroutine will check if the result queue is not empty, if it isn’t it will call all delegates and pass the result path.

That way the path is calculated on a different thread, but the delegate is called on the Unity thread. With this system, the path finding is not creating any hiccups.

Building objects:
In Headmaster over 150 objects are ready for you to use in your school. This means we needed a system that allowed us to easily add or remove objects.

A base class BuildObject contains different variables like: BuildingName, Costs.

Various child classes are:

Walls
The user builds a wall to create a classroom. The user drags the walls to make the classroom bigger. If two rooms are connected to each other, one of the walls is set to inactive.

2760286--199270--WallBuilding4.gif

Windows/Doors
A wallobject can be replaced by a window/door. The wallobject is set to inactive, if the user wants to remove the door/window the wallobject will be set active again. A variable CanWalkThrough is used in the pathfindingsystem to check if a character can walk through it. Doors will have this set to true, windows to false.

Floors
The user builds all objects on a grid of simple planes. When building floors, the material of the selected plane will be set to the selected floor. To make sure not hundreds of material instances are created, the sharedMaterial (https://docs.unity3d.com/ScriptReference/Renderer-sharedMaterials.html) array is used in the renderer. If the user double clicks on a grid, it will check if the user clicks inside a classroom, if he/she did the complete room will be filled with the selected floor.

Wallpapers
When building a wallpaper, clicking on a wallobject will change the room’s wallpaper. The user can only change the wallpaper on the inside. If any wallobject is replaced by a window/door, the window/door will also get the new wallpapermaterial.

Building (a normal object like a chair)
A building contains an array of coordinates that it needs for building space. These are local coordinates. If a chair+table would need two blocks of space, the array would be:

0,0;0,1

While dragging the building around it checks if these coordinates, translated to world coordinates, are free. If they are, the building can be placed there.

Extensions
To make sure we could handle a lot of objects, we made an editor extension. It shows a list of objects that are in the game and pressing on one of them gives details. The editor extension has an icon creator in it, so every object icon has the same angle and is easily generated.

Save system:
The whole map has to be saved. This means quite a lot of data. We wanted to make sure it was readable for the human eye for debugging purposes. We created our own text based save system.

Example: we want to save the ID of the building at coordinate 23,18 along with the rotation of the building.

ID = 4

Rotation = 2

SaveLoad.SaveBuilding(new vector2(23,18),ID,Rotation);
public static void SaveBuilding(Vector2 Coordinates, int BuildingType, int Rotation)

  {

  string SaveName = string.format("Grid#{0},{1}",Coordinates.x, Coordinates.y);

  SaveSimple(SaveName + "#BuildingType", BuildingType);

  SaveSimple(SaveName + "#Rotation", Rotation);

  }

This is simplified version of the saveBuilding function.

This information is now added to a save queue, so we can save it to disk whenever we want (for example when the user presses ‘save’).

If the user has saved a file with the following data will be made:

Grid

#

23,18

#

BuildingType = 4

Rotation = 2

#

#

If we want to load the data we call:

SaveName = “Grid#23,18”

SaveLoad.LoadSimple<int>(string.Format("{0}#BuildingType", SaveName))

And

SaveLoad.LoadSimple<int>(string.Format("{0}#Rotation", SaveName))

This would give us the BuildingType and the rotation.

Because it is string based it is not the fastest save system, it is a very easy one though.

Student animations:
Every student has his own Animator Controller and is mecanim based. All animations move the root bone to make the animations look more realistic. In the Animator Controller a lot of parameters are available that allow us to define what animation it should do. E.G.: Dancing, Sitting, but also MoveSpeed. The speed of every animation is controlled by a parameter AnimationSpeed. That way when the user speeds the game up, every animation is going faster.

Different menu’s:
In Rule Your School a lot of different menu UI will show up. We’ve two canvasses. One for all menu’s and one for world space canvas with messages from the students or teachers.

The UIController contains an Enumerator with all available menus. When the user clicks on a button, this is used to close the last menu and start the new menu.

Music system:
In the game there is always music playing on the background, unless the user has decided to put it off ;).

To control all music and the different playlists the user can activate using radio objects, an editor extension is created. We can define the content of each playlist and set fade in and outs. This way the user will never get bored of the music! Each playlist has the property to play random or in sequence. That gives us the full freedom to make the playlist how we want it.

Of course a lot more decisions are made, but that’s for next time! If you have any questions, feel free to ask and I will try to answer them!

Check our website for more information http://www.weersproductions.com about who we are and what you can do in the game!

~WeersProductions

2760286--199270--WallBuilding4.gif

1 Like

Hello everybody!

I am happy to anounce Rule Your School is now in Steam Greenlight!
Watch the cinematic trailer below:

Help us by voting for us here: Steam Community :: Error

Expect more explanation the next post!

Sincerely,
WeersProductions

2 Likes

Hello again!

Rule Your School is now added to IndieDB! Both here and at IndieDB dev logs will be uploaded :).
Stay tuned for the next one!

If you have not voted yet… We would love it if you did!
Vote here: Steam Community :: Error
Thank you!

Sincerely,
WeersProductions

While Rule Your School might still be in Steam Greenlight, we are working hard to make sure the game will be fantastic! Today we’ve added even more wallpapers!

In the game Rule Your School you can choose your character and create your own office. Show your students who’s boss!

I don’t think your students will like this wallpaper… It might be a little distracting?

You are the one who builds the classrooms. What layout are you going to use?

For headmasters who love plants…

This is your progress menu. Choose what kind of objects you want to unlock and create a beautiful school!

That’s it for today! Enjoy your day and don’t forget to vote!

http://steamcommunity.com/sharedfiles/filedetails/?id=749580867

Thank you!

~Weers Productions

Hello everyone,

we’re very proud to say that Rule Your School has been Greenlit! Thank you for all the yes votes and support! Your feedback was really great and we’ve listened to it. We’ve made the first steps to redo all our GUI’s. It’s still not the final product, but we’re getting there ;)!

This is the main menu, it’s a 3d schoolboard and when clicking on a button you focus to the left or right board. On either the left or right board there is a sub menu, which allows you to change settings, load or create a new game.

In this menu you can choose your own character! There are various characters to choose from.

We redid most of the tutorial as well. It’s an interactive tutorial. This should make it a lot easier to understand the game!

We’ve redone quite some building mechanics which makes it even easier to build and design your school! We’ve added objects that auto rotate and smart objects that search for convenient places to build.

A lot of rebalancing has been done and new objects have been added! This means you can unlock even more objects during the game ;).

A lot of new animations have been added, in this picture you can see a student using a toilet. This makes the game even more fun!

We hope you like these changes! We would love it if you would give us feedback, maybe the next update will be based on your feedback!

Sincerely,

WeersProductions

Hello everyone!

Thank you for the great comments on our last update. This update is based on the feedback!

One of the comments was wondering whether we have different classes, for example chemistry. We did not have very much classes… until now!

Students can learn how to paint. Every painting a student makes will be unlocked for you to place in your school! This means you can have even more paintings in your school, all hand made by your students.

Beside easels, we’ve added chemistry classes as well!

We’ve also added various chemistry events, this means even more ways to earn money!

Because it’s quite hard to earn some money, we’ve added another option to make some. Sell pottery!

Beside all this new content, we also improved our AI to be even faster. It can handle even more students!

Thank you for reading! Be sure to leave a comment, maybe it will inspire our next update?

Sincerely,

WeersProductions

Hello everyone!

We’re currently completing the game! The game has been tested by various people who did a great job on finding bugs. They also requested various small gameplay changes to make the game even smoother to play.

Creating a school is even easier than before.

We’ve also added new characters for you to select!

To make building even easier you can now see how students/teachers will use the object (for example footsteps showing from which side they go to their chairs).

We’ve also added some new statues! This means you can make your school even prettier (if you’ve got the money too afford them :wink: ).

Because some people like small schoolboards, we’ve added a new schoolboard!

Hiring new teachers has changed a bit too. The amount of teachers that are interested to work for you depends on the popularity of the school!

Thank you for your interest, why don’t you check our website?

Sincerely,
WeersProductions

Prison Architect did wery well (1m+ sold). Maybe your game will achieve the same. :slight_smile:

@ToshoDaimos
Thank you very much for the nice comment ;)!

Hello everyone!

We’ve been fixing even more bugs this week. Rule Your School is ready to be released! To make sure you’re ready as well, we have a small explanation of the most important objects in the game. (Warning, all images are rendered using Blender, the objects are the same as in the game though)

The desk of the teachers
Every teacher needs a desk. They simply won’t show up if you don’t give them one. There are various desks available, all of them in their own style.

A desk of a painter is great for painting lessons. You might even unlock new paintings if your students are lucky!

To earn more money you can sell pottery:

If you’ve ever been to school, you might recognize this object if you’ve paid attention… The schoolboard! It will boost your students’ grades.

To keep your students’ health at a good level, make sure you build some toilets! The more students, the more toilets you need (obviously…).

To show people you’re a rich Rule Your School, build decoration! Your teachers love that too, it will make them a lot happier.

Talking about teachers, they love coffee! Never forget to build enough coffee machines! This is the first coffee machine you will unlock, buy better ones to make them even happier!

Thank you for reading!

Hello everyone,

Quite some things happend. Rule Your School is now available on Steam!
As you may have noticed, the game was called Headmaster before. Due copyright we had to change the name Headmaster to something else… Rule Your School!

We hope it won’t confuse too many people.

If you’re wondering about the gameplay, this video, shows the basics.

Sincerely,
WeersProductions

Hey everyone,

It has been a while, but I’ve finally updated Rule Your School again!

I started this project when I was around 15 years old and released it about 2 years later. While game updates had to wait because of study, I learned a lot and went through every single phase of game development. Including publishing. If you have motivation, don’t be afraid to start, but don’t forget to finish it!

The game was using a Unity version older than 5.5, and I’ve finally updated it to the latest Unity version. It’s incredible how easy this was and besides a few packages that are now controlled by the package manager (instead of the original package files in the project) that I had to move, it simply worked.

Next to this, I also added async loading of the game scene while in the Main Menu. It has a low priority, so it should not affect the main menu too much, but it does decrease the loading length a lot!

You can read more about the update here!

Thanks for reading!

Sincerely,
Floris Weers