Suggestions for late game modifications to help deal with lag.
First off I'd like to say I really like the game, almost 300 hours worth of like. So the late game lagging is something that I find annoying, even with a 4.2Ghz quad core, the game approaches the unplayable level by day 40 on Survival.
Thus my suggestions -
Mob Party leaders – If most of the slowdown comes from AI pathing from mobs I suggest that latgegame mobs are spawned in Parties. Each party has a stronger Leader that the common mobs in the party follow. I would advise that half the mobs would follow behind the Leader, and half follow from the front by heading to a point in the Leaders Pathing-data (The arrows that show where the mob is going).
This would mean that for a Party of XX Mobs, only one full AI path needs to be found, the rest of the mobs just having a "Leash" onto the Leader.
This game mechanic can also lead into having Leader skills/classes. For example – Dark Priest (Mob healing) or Lich (raise skeleton from dead mobs).
Another method of enacting this would be to have one Leader mob stand in for the whole party, the rest of the party being "released" when the leader dies. This would be useful if the slowdown is caused by the number of mobs, as usually the Leaders wouldn't all die at the same time.
Stronger Mobs not more Mobs – Simple, sweet, resource saving. Not much I need to say here. Best if the slowdown if due to mob numbers in general, for example interaction between tower weapons and Mob hit-boxes
Particle Panic mode – I have noticed that late game that the amount of essence particles (and particle effects in general) reach extreme levels. If this is the cause of much of the slow down then I recommend that a setting below "minimum" called Panic mode. This basically tells the game engine to not display ANY particle effects, and if possible uses the simplest processing on particle pathing as it will not be shown anyway.
When Panic mode is then turned off (IE Night ends) new Essense particles are created as usual, whilst the ones that were simplified can be kept hidden for the sake of simplicity.
Maybe this should have an option to automatically turn off/on when the game engine become stressed.
Well, hopefully these ideas are of some use.
Thanks for the game and your hard work.