Large collection of issues, suspect memory leaks/GC

Avatar
  • Views 9.732
  • aggiornato
  • Completed - Resolved

I've been reluctant to create an issue on this since there's not that much to go on with most of them, what's mentioned at the end regarding a response I got from a map creator after reporting a nasty bug points to an issue in Unity itself, and your previous comment that a majority of your coders are working on new projects.

A few examples sorted by perceived time required to happen.

The texture and icon for gold piles changing to a forge box. Rarely see this happening to micropiglets as well, in this case its the icon when picked up.

Purely visual. 

Related: https://brightrockgames.userecho.com/communities/1/topics/4761-my-pet-dungeon-level-2-gold-pile-loaded-defense-part-texture

Corpses in canyons are not properly despawned after "reaching" the bottom. Instead they become invisible until player leaves and returns to view the area, making the corpse visible again and the falling-animation is replayed. This continues until corpse decays completely.

The previous progress is kept for captured rooms. Minions will attempt to research even if all sins are unlocked, or summon a non-existent ritual. Not sure if ritual progression is applied to original room owner.

In relation to possession mode:

SFX sound(steps, minions interacting with things, doors, combat etc) is amplified each time you re-enter possession.

Crosshair getting stuck on the screen. Reloading does not help, starting a completely different level or campaign does not help. Not visible in main menu, but is visible on pause screen as well as in normal UI.

Both should be easy to reproduce in Taktikus's campaign "Squad Leader", especially the second level as a Beastmaster. Reason being both levels take a while to finish, and you are automatically forced back into possession mode so mode-cycling is a must if you have to pause from time to time or change anything in options.

WFTO not closing down properly on exit. Either have to let Windows force close it(this program is not responding) or Task Manager.

Log gives no information, looks like a proper shutdown. Can attach debugger to catch it properly, if you give me pointers on how-to.

Possibly related: https://brightrockgames.userecho.com/communities/1/topics/2728-crashes-when-exiting-from-menu-on-steam

Ritual UI menu becoming stuck, not showing that a ritual is selected for summoning or completely charged. Ritual-display on the top screen shows correct value and can be trusted, never seen it bug out.

If a ritual is charged, its fixed by clicking that ritual to summon it. If a ritual is currently charging, you have to wait until its completely charged and summon it to fix UI.

Manufacturing Shrines loosing the limit or multiplying its spawn points. What looks like one box turns out to be 5-10 in the same spot.

Addition: Believe the cause is that current boxes are ignored on loading the level, so workers place crafted boxes(from regular Foundry). This happens on every load after a long play time, so can stack to very high numbers.

Workers(and other minions) forgetting static work-points unless you use Worker Rally to remind them (Static meaning Tavern+Foundry and if the distance is large enough even Crypt, Prison and Treasury. Moon Gate or Vortex does not always help). Without a Worker Rally for Taverns they end up running out of food and gold is not collected even with workers being in the near-by area. If you drop a Worker on the food spot(usually just north of the food cannon) they suddenly remember it again(all workers) for a short while, then forget.

Minions pathing into obstacles(Forge workspot, Crypt grave, Dungeon Core , Crucible in HoG) or unreachable areas and because of that not able to satisfy needs. Seen this frequently on for instance Gilton, third mission in Heart of Gold, with the large crucible.

Most common minion this occurs to is the Juggernaut(guessing he has the largest hitbox?) with Huntress second. In the example picture(from Big Bad Boogie 2.0) I assume the Huntress was chasing a flying beast and that there's some clip-check that ends up failing after a while on U-shaped corners. Seems to take a while to start, but after that it will happen at least semi-frequently and some levels are more prone to it.

Related:

https://brightrockgames.userecho.com/communities/1/topics/4938-worker-pathing-causing-performance-issues

Possibly related:

https://brightrockgames.userecho.com/communities/1/topics/1363-pathing-issues-minions-cant-find-locations-or-just-stay-standing

https://brightrockgames.userecho.com/communities/1/topics/4856-imps-foundry-pathing-problem

https://brightrockgames.userecho.com/communities/1/topics/300-path-finding-issue-when-fighting-far-away-from-core-base

Ghostunits, coming from units linked to Arcane Inhibitor and are supposed to be killed off after its destruction. They are not interactable in any way, arrows go right through them.

Related: https://brightrockgames.userecho.com/communities/1/topics/4963-some-of-the-opposition-walk-around-and-you-cannot-interact-with-them

Minion tags vanishing(both friend and foe), only visible by hovering over a specific minion. Fixed with saving and reloading.

Fragmented AI. Its hard to pinpoint when this happens since its quite laggy playing with a revealed map, but it seems at some point the AI forgets its previous layout and attempts to build a new dungeon on top of the old one. This can be seen by partly-built or fragmented rooms scattered around with odd placement of walls. Looking at the pattern it, at least to me, looks like someone took pieces from 2-3 different layouts and smothered them together.

It might be related to player(or other AI) pressure forcing the AI to change priorities and that if GC is working overtime it sometimes completely forgets what it was doing or what is already there mid-change, thereby ending up with a mix of various room-tiles(most non-functional) and weird wall patterns. The above images is from an autosave, an action the AI was in the middle of performing. I've increased autosave frequency in the hopes of catching the bug evolve, especially the more fragmented ones since I've seen much worse examples(entire layout being non-working for 3x3+ rooms). I can't see how those could be explained by external pressure forcing a change in priority, might be several causes.

CTA(Call to arms) not clearing for captured minions (in prison). You can see this by all of them pathing to the same spot, usually a corner nearest to exit. If it happens to one group(lets say Empire), it seems to always happen to others as well.

CTA not clearing or color tags not updating for converted minions.

The first one is fixed by giving a new CTA and clearing it. The color tag not updating properly seems to be purely visual and never seen it happen with Empire-controlled units, only those belonging to other Underlords.

Converted minions turning into drones that do not satisfy their own needs and end up rebelling as a result if one notification is missed. They seem to train or do other work but not eat or sleep until angry and won't collect pay unless player interacts.

Both CTA bugs and the converted minions issue seen on level 1 in Heart of Gold after extended playtime(around 60-90 minutes).

Ritual summon progress counter getting stuck for the Sanctuary. You can still cast a finished ritual, but units will assume there is a ritual to summon and head there.

Fixed by actually casting a ritual.

Imp flags and CTA becomes invisible. Goes invisible again after recasting them if it ever goes outside render view and returns, if the bug is present on level load.

Occasionally, the worktiles of Tavern is bugged after loading a save from a level with previous high playtime. They are empty and the food cannon does not refill them. Fixed by rebuilding the Tavern.

Other room-types are affected in various ways as well:

Micro-piglets sometimes get teleported to the same one, but are sustained by the original Hatchery they came from.

Room toogle switch(Spirit chamber, Crypt, Arena) gets reset.

Possibly related:

https://brightrockgames.userecho.com/communities/1/topics/83-tavern-broken-after-loading-a-saved-game

After loading up a 5-hour save of a custom level, it had randomly scattered Impenetrable Rock on controlled territory, even one replacing a corner piece of the players core.

I've now seen this on another level, also by Green Sliche. It was not as extreme, and some were placed on Empire-controlled territory previously untouched so its not based on Player interaction. If it replaces a Shrine or dungeon core, replacing it with tile_dirt returns it to correct state.

Seems to prefer replacing first tile of a room next to wood door, for some reason.

The creators response(the 5-hour save) was a recommendation to save the game every hour or so, return to main menu and reload, as this helped negate a Unity GC issue that could cause a lot of odd behavior, and that this is a Unity-engine issue and not something fixable on your end(at least without more hacks upon hacks and probably countless redundancy checks). This comment is what caused me to group the above issues together, since they all share the common trait of not happening early on in a level and increase in frequency over time.

Following this advice has definitely reduced the frequency of serious issues, but at a certain point it seems just loading the level is enough to "bypass" the time limit for issues to start occurring. As in, you'll start seeing various minor bugs almost instantly, and it quickly gets worse.

Related: https://brightrockgames.userecho.com/communities/1/topics/4666-impenetrable-rock-appearing-on-map

After spending some time in various playthroughs trying to pay attention to finer details in order to catch things missed in the past, one thing keeps popping up.

Whenever issues start cropping up they are always accompanied by slow tasking response(Imps take a few seconds to respond, this increases over time to reach near infinity at worst), workers forgetting path to rooms on different landmasses or over large distances, minions get stuck more often, and a microlag that is hard to notice at first unless you really pay attention but approach unplayable at worst. That microlag also spikes whenever workers are unable to find a valid path for current work, and continues until work fixes itself(e.g. corpse decay) or player builds a new dropoff-point close by(again, Moon Gate does not always rectify the issue).

Are a lot of various game mechanics - unit pathing/tasking, Mighty Script, GC and most graphical work except GPU handoff and Coherent UI on the same thread? Total CPU usage stays at 25-28% and while load is divided among available cores, one in particular is pegged fully and if I force any other instance onto this core the same sort of microlag starts appearing(6850K-HT off).

Is it possible that routines ran when saving a game times out because the thread is swamped and as a result certain information ends up missing or corrupt(eg. random Imp. Rock, Siege Shrine, Tavern), and likewise regarding GC that it ends up timing out on certain operations so various buffers(terminology..?) end up full/overflowing and causing some or most of the listed game-bugs?

PS: Sorry QA, I've tried to be as detailed as possible on the possible triggers, but its such a complex game.. :)

Game Version:
Steam Public
Platform:
Windows
Avatar
anonymous
  • Completed - Next Patch

We found a nasty potential cause, please let us know if the next patch improves things for you

Avatar
anonymous
  • Completed - Resolved