You must be registered to see the links
Shilo.
You must be registered to see the links
«
on: Yesterday at 05:50:39 pm »
Hi all!
Some of you have voiced their concern about the lack of progress updates. After all, the last version 1.9.5 was released more than 1.5 years ago. And while the next release is still some time off, I want to use this thread to provide you with some insight into the changes we’ve been making in the internal development build.
I’ll keep the thread locked to prevent cluttering with other comments, so future updates can be found more easily. And I’ll also not write up everything at once. Mostly because it takes me forever to write stuff. But also for teasing.
But without further ado, let’s start this blog with the first new thing:
UI Notifications
Probably the new engine feature that is most noticeable for players in the next update. Up until now, the game would only inform you via colored floating numbers about changes to the global average stats of your students. However, this system has several limitations:
- Since it only shows changes to the global average, it fails to properly communicate the effects of the event that is currently playing out on the affected NPCs. The more students you have in your school, the less impact the individual changes of an event will have on the average value.
- The average value may also misrepresent the effects an event may have on an individual if there is another group that is affected in the opposite direction. Example: You could have an event where you are making fun of a single student in class. While the other students may laugh about that and raise the overall happiness, the one student you are making fun of may actually have his happiness lowered significantly. But that effect would not be visible if you just looked at the resulting average.
- Because the changes were only shown when time passed, you may not even see the results of events that take place without time progression until you encounter a different, unrelated event. This also causes the results to be mixed up with stat changes that occur naturally, like school subject influence and the population’s mind adjustment.
To solve this problem, we added support for several event operations to report changes right when they occur.
However, displaying each change to each stat for every NPC and every operation individually would lead to a copious amount of notifications (which would keep going as floating numbers for several minutes even after the event ended). So the system also includes several mechanics to reduce the noise:
- Instead of immediately showing the notifications when an operation is performed, the change is first recorded into an internal list. It is then only shown if either the event finishes or by triggering a new operation inside the event that explicitly starts displaying the gathered notifications. This makes it possible to accumulate changes to the same stat of the same NPC throughout the event, even if it happens via multiple operations. But if the event author wants to display them in a timely manner, they are still free to do so.
- There is also a new operation to assign NPCs to a named “Notification Group”. When displaying the gathered notifications, all individual stat changes for all NPCs in a group are averaged and only the average is shown as notification, with the name of the Group being used as label. So in the example from before, you could have individual notifications for the student you made fun of (which show up with his name) and then put the entire rest of the class into a Notification Group named “Laughing Students”, which would then show the average change for all of them along with the number of NPCs currently in that group. The Notification Groups can also be useful if you want to hide an NPC’s true name for story reasons and avoid giving the name away via notification label. Just put that NPC into a group with the fake name you want him to have. The group assignment only persist for the duration of the event's execution, but are passed down to Remote Event executions.
For convenience and as safeguard, NPCs who have their stats changed via the "Person Stats by List" operation are automatically considered part of a group (which will be displayed with a name like "Persons"), unless they are already part of an existing group. It is generally preferable to name your groups explicitly at the start of an event execution.
- It is also possible to define which stats are recorded for notifications under which circumstances. We don’t need to keep track of Energy notifications because the player already has a big UI element that shows that value at all times, and the stat is not relevant for NPCs. And we don’t need to keep track of Loyalty and Lust for the player character because these stats have no use for him. Likewise the Grunge stat is only used by the player, so we don’t need to track it for NPCs.
This new feature has only just recently been added to the engine and we are still in the process of updating events to make proper use of it, since adding the Notification Groups to avoid flooding with messages is a manual task. Which makes this one of the reasons why the game is currently not in a releasable state.
The global stat notifications still exist, of course. This new system is just a more fine-grained variant.
Notifications are currently supported for stats, skills, and body sizes. I am also considering to track changes to the Relationship value in the database, if it does not affect performance too much. Displaying entirely custom notifications via VEE operation may be planned in the future but is currently out of scope. Spinner has also requested some more operations and adjustments, which I'll provide in due time.
While it may not seem like a spectacular feature at first, we think it really adds a feeling of agency and meaning to events and your decisions: Whether you praised a student, scolded them or sent them to detention barely seemed to make any difference. But now the consequences of your choice on that student are immediately made known by showing you the changes in their loyalty, happiness and corruption.