Trying out including videos in this post to make things more interesting. I’ve tried my best to keep their size as small as I could.
Inspectors and VIPs will occasionally spawn and visit the player’s UniverCity. Inspectors will generally focus on a specific subject while VIPs will visit the whole building. If they are happy with the state of things they will reward the player with a rating increase and money.
Currently janitors only water plants but later they’ll preform other tasks around the UniverCity. This work differently to other staff members as they don’t belong to a single room, they currently use the per-entity script that inspectors use.
Tried it for a little while and it ended up not looking that good. After a few days I ended up removing it. Win some, lose some.
Used a better blur shader (two passes) to improve the look of the SSAO effect. Its a minor improvement but it helps a lot in some places.
The line drawing code needs some work but it works well enough for now. Currently this only tracks total money over time, the buttons at the top are not implemented.
Students now have ‘feelings’ which decay over time. Hunger can be fixed by building places to obtain food (e.g. snack stop) which students will visit when they are hungry enough.
Happiness is rasied via idle activities slightly. Having a full lesson also improves happiness, whilst cutting the lesson short via editting or them being late will descrease happiness.
I’m hoping to expand on this more later but the ground work is now implemented.
Rating is now effected by various things instead of being static. E.g.: Overall student happiness, inspection results etc.
Free roaming entities don’t follow the normal rules that all the other entities follow. Normally an entity is controlled by the game to find a room that wants/needs it and then that entity is handed over to the room’s script to control.
Free roaming entities don’t belong to a room and instead have a script for themselves. This script is implemented as a coroutine where certain functions will yield to the system and run that action before returning. This makes scripting these entities easier as you can write synchronous code that runs over many ticks.
Due to my binding’s handling of coroutines being pretty much missing (bar some handling for running within a coroutine) the main part of this system is implemented purely in lua instead of rust.
Some sets of objects needed to be in most rooms (e.g. plants) but previously each of these objects had to be added to every room manually which made it easy to forget some. I’ve now implemented object groups which allow for a set of objects to be defined in a file and then have that file referenced by the room. Updating that file updates all the room’s lists.
I’ve been streaming my work on twitch here most days. Feel free to stop by and watch if i’m streaming.