The tasks that are marked as daily all occur on the same tick, but we do something similar to what you describe but in a slightly different way. Some of our tickly tasks are actually daily tasks in disguise. What we do is we spread out the objects to update over several ticks. So say we do something with pops, one quarter of them would be processed in the morning, one quarter during midday, and so on.I am curious, do the daily tasks all occur on the same tick or are you able to spread those over the 4 ticks to further load balance?
It sounds like the daily and weekly ticks occur on the same tick, would it be possible to at least shift those greater than tickly to occur on different ticks? So it would at most ever be tickly + something and not possibly be from tickly to yearly in one tick.
From a technical perspective this would be possible. But it would change the game mechanics so any such change would likely require a lot of consideration from our designers before doing it. As mentioned above though, we do something similar for some updates.So I am not super into coding, so maybe this isn’t viable. But you mention how the weekly ticks take longer because there are far more things to calculate. Would it be possible to make many of these things biweekly, calculating on alternate weeks, to lighten the load on each individual weekly tick? For example, say X, Y, and Z are all weekly checks, you keep X as weekly and make Y and Z biweekly on alternating weeks, so that week 1 would check X and Y, week 2 would check X and Z, week 3 would check X and Y, etc. Maybe this would require a ton of work on your part and yield negligible improvements, and wouldn’t be worth it, I don’t know
This would be a radical change to the game mechanics. I'm not sure our game designer would appreciate me doing this change as it would affect the balance of basically every part of the gameIf employment is such an expensive calculation, would it make sense to shift employment (and perhaps pop need as well) to a monthly calculation? Most employment related factors don't shift that often on a weekly basis. You lose granularity but the improvement in performance would be noticeable from cutting the number of times it needs to run by 4.
It would also rather counter-inuitively risk making performance worse. The employment update is one of the main places where pops gets removed from the game. So doing it less frequently could mean we end up with more pops hanging around for longer leading to other parts of the update potentially taking longer.
- 29
- 11