PDA

View Full Version : [SOLUTION] Dissolving/Fading monster bodies persist



Munderbunny
10-31-2008, 08:59 PM
Know that bug you never noticed, where the bodies of monsters that supposedly disappeared on death are back on the ground when you return to the area after a bit, or after portalling away? Like fire sprites?

I found a solution!!! I know none of you care, but it's something that has plagued my mod for months, and I finally found a solution!!!

Just put a broken reference in the "actor to spawn on death" field under death parameters. :D The game deletes/removes the corpse to make sure there's no duplicity (wouldn't it look stupid if you portalled back after dropping of some loot and saw 3 hades bodies on the ground?)

Man. I'm so proud of myself right now.

yerkyerk
10-31-2008, 09:14 PM
Congrats on finding the solution to this seemingly meaningless bug :D

Munderbunny
10-31-2008, 09:42 PM
It really hurt my mod. You don't really notice it in game otherwise. :)

elbee
11-10-2008, 02:11 PM
No, I totally agree. That bug was just plain annoying. Congrats on figuring out the solution MB!

yerkyerk
11-10-2008, 02:22 PM
Hm, putting in broken references is not really a clean fix... probably better than the current situation. Could this be implemented in 1.17, or is it too annoying to find all the dissolving monster bodies? (people obviously do not want the non-dissolved bodies to disappear, so mass-find and replace won't work so easily).

Munderbunny
11-10-2008, 02:40 PM
When I said I thought we'd benefit from a "clean" patch, I meant only that we get rid of the unused junk--all that stuff you discovered we didn't need.

As far as fixes, a working solution is a working solution. :) It wouldn't be the first thing broken for a fix. ;) In fact, the vision of death fix works by adding a flee distance to all monster controllers that are set to never flee.

And it is an easy problem to fix with mass find and replace; simply search for all records with delete behavior set to "dissolve" and then add if empty a spawn link that doesn't work.

I haven't tested it outside of my mod, meaning I haven't checked all dissolving creatures to see if it causes any unusual behavior, but that wouldn't take long to do.

But, if you'd like, we could make the change and then put it through the beta-testing group and see if they kick it back to us. :D

Vifarc
11-10-2008, 07:24 PM
It really hurt my mod. You don't really notice it in game otherwise. :)
Maybe a broke fix could hurt other mods than yours?
Yep, it has to be tested with the main mods.

Munderbunny
11-10-2008, 08:18 PM
Maybe a broke fix could hurt other mods than yours?
Yep, it has to be tested with the main mods.

The fix isn't for my mod. I think you're confused about what we're talking about.

There's a bug in the game, where bodies that have been set to dissolve on death remain in the game. Like, if you go kill fire sprites, and watch them dissolve away in flame, then you go to town to drop some loot, when you come back, there will be dead fire sprites all over the ground.

That's the bug. It has nothing to do with my mod. It has nothing to do with anyone else's mod either. That's it.

Now, I think most people don't even notice this bug. I reported the bug when I discovered it while working on my mod. I have a pet unique to my mod that glows brightly and is very visible. It explodes into oblivion on death. However, upon returning to an area where my little guy has exploded, I'll see this impossible-to-miss glowing body on the ground. If it wasn't glowing, I never would have noticed it. So, when I say this "really hurts my mod," I mean that it's very noticeable compared to the other game creatures that don't have glowing corpses, and thus don't draw your attention.

So, let me be clear: the proposal to fix it does not benefit my mod. The only reason I know this happens to other dissolving monsters is I went looking for a solution to the problem with my creature and discovered it's a problem with all dissolving creatures. And so I reported it. End of that story.

Now, recently, I discovered that by putting anything at all in the spawnondeath field, the game will delete the body in anticipation of a new creature being spawned. Yay, I solved my problem. So, I fixed the problem with my mod. I DON'T NEED THIS FIX TO BE IN THE COMMUNITY PATCH FOR MY MOD TO WORK! End of that story.

Now, after I fixed the problem in my mod. I decided to share my solution as it could potentially fix the problem with the game's creatures. But, as I said before,


I haven't tested it outside of my mod, meaning I haven't checked all dissolving creatures to see if it causes any unusual behavior, but that wouldn't take long to do.

Obviously, it would have to be tested first. There are many bugfixes that didn't make it into the community patch BECAUSE of problems or irregularities during testing.

However, there is absolutely no reason to make sure every fix in the community patch is 100% compatible with other mods out there. In fact, mods overwrite the game's resources. For example, in the latest community patch, we fixed Hermes Sandals (for real this time). But, if you play Lilith, you'll end up playing with the old, broken Hermes Sandals because Mostal included the Hermes Sandals records in his mod, which overwrite the game's version of the sandals.

AND the fix isn't breaking the game, even though I call it a "broken" reference--that just means a link to no where, it doesn't mean the death parameters have literally been broken or anything. And while we've been saying "broken" or a "broken fix," it's not literally breaking anything. And Yerky says the fix isn't clean, because he's on a personal mission to reduce people's confidence in the community patch and future patches.

There are many fixes in the community patch that aren't CLEAN. And by CLEAN, I mean a simple solution that works with the game as the game is intended to work. For example, Revenant Greaves didn't drop in the game because of a very minor mistake by a developer where the greaves had been like set in field 1, but the chance for field 1 to drop was 0% and the chance for field 2 to drop (field 2 being empty) was like 5%.

An UNCLEAN solution is like the solution used for the -recharge affix. It didn't work in the game, and no one figured out how to get it to work. So, instead, iRaps changed the affix to grant a skill which then gives the -recharge. Or, the fact that pets wouldn't use petskills if the petskill was above its max level. So, someone decided to raise all petskills max level to the ultimate level of +4. It fixed the problem, but unbalanced the game by allowing players to play with petskills at their ultimate level early in the game before they could even find the necessary +skills items, and don't even have to wear +skills equipment to received the benefit.

Now, it would be wonderful if there were a team of programmers who had the source code for the game and could do a CLEAN fix for the dissolving problem by fixing the code that causes the problem. But we don't have that team. We don't even have the source code. And even if we did, we don't have one single person on the bugfix team who knows a shred about programming.

And, to be absolutely clear: I could give a flying **** whether or not anyone attempts to implement this fix in a future patch or not. :) Honestly, while mildly annoying (once you're aware of it), it's hardly worth the effort. Fixes like this would go to the absolute bottom of my priority list, right after fixing typos in dungeon names no one pays attention to.

While there aren't many people involved in the patch right now, I can assure you that no change is implemented blindly, without testing, and without a lot of consideration. This thread is not an announcement of a fix that will be included in the next patch. It is ONLY what it is. :)

yerkyerk
11-10-2008, 08:59 PM
And Yerky says the fix isn't clean, because he's on a personal mission to reduce people's confidence in the community patch and future patches.
Yea, I really should stop doing that :) It's just that I don't like work-arounds. And there are a lot of work-arounds for the community patch. They're all much, much better than the alternative though. Man, I dislike the -%recharge fix the most, but it's just too important not to include it.

Btw, the non-disappeared bodies bugs doesn't only apply when teleporting. If you return to an area (after you cleared a cave or a sidecamp or whatever) you can also see the non-disappeared bodies. It looks rather ugly when you're aware of that... So yea, the fix is prolly better than the alternative, and it should therefore be implemented in the patch.

fathersquid
11-10-2008, 09:53 PM
What I always thought was strange was that some monsters dissolve that you wouldn't think should disappear... such as those fireball spitting mechanical contraptions and the obelisks... they fade out only to be scattered around the place when you portal back in... and I've always liked the wreckage of those...

I can understand why the slimy things, plasma undead, ghosts, etc. fade, but not the definitely solid objects...

yerkyerk
11-10-2008, 10:03 PM
I'm guessing that each time an area gets loaded, the dead bodies are generated again. This would mean that the bodies would lie in a different position if you return to an area, as well as, probably, in a different place. I'm going to test if this is true...
It would certainly explain how the game is able to deal with large amounts of dead bodies throughout the game.

The trap mechanism is probably wrongfully set to dissolve. Perhaps something that can be adressed too, Munder?

Munderbunny
11-10-2008, 10:55 PM
The dead bodies aren't actually removed when they dissolved, just like the ghosts in Hades don't actually disappear when you get close to them. The game just turns them invisible. With dissolve, the game applies an alpha texture to them at a set rate until they're totally gone. The bodies, though, are just dropped to the ground with physics. The problem is, when you leave an area, the game stops keeping that invisible texture applied, so when you return, you can actually see them.

As far as the trap, I never noticed that, but yeah, it can be set not to dissolve away.

Without the bug tracker, there's no list of these bugs and stuff being compiled. Perhaps something that can be addressed too, Yerky? :D

yerkyerk
11-11-2008, 02:09 AM
Well, it's probably a bug that they do not get deleted completely from the game if they're dissolved. The fix, besides repairing a visual bug is actually cleaner than the bug if I think of it.
With Diablo 2, for instance, this would mean you could still explode, search, resurrect the body. TQ however, doesn't allow you to do affect bodies in anyway, so it doesn't really matter.

So my theory:
If you kill something, it dies, and effects might be applied to it, like invisibility. Once you leave the area, however, the area gets 'deleted' in memory, all that is set is, is if the monsters are killed. If the player reenters the area, the state of the monsters is set again. If death, they will probably be set to death instead of dying again, and since the dissolving animation will probably trigger the invisibility, this doesn't happen, the previously dissolved bodies don't dissolve this time, leaving them visible.

This would explain how the game is able to cope with all the remaining dead bodies, without slowing down eventually, as well as perhaps the long loading times with teleporting. Also, it might explain the spawning of creatures in areas where you previously killed everything.

Am I right?

i.n.s.a.n.e
11-11-2008, 02:39 AM
Hi,


Eh, Munder? Do you think this could be causing the trouble in my Death Effects Mod?? You know what I mean, the part when some effects won't load always.

What about performance impact? Does it increase the game speed??

Thanks.

yerkyerk
11-11-2008, 03:25 AM
Deleting the bodies means there will be less bodies, so it should increase performance for certain areas by just a bit, I assume.

Also, if my theory is correct, monsters that are summoned by others (such as the boars by the shaman, or you casting a nymph) that die and leave a body will disappear when the area is reloaded, because they're data is not saved.

Munderbunny
11-11-2008, 04:12 PM
I don't think the bodies go through a second death animation when you reload an area. When you leave an area, many resources are unloaded, but not all. Dead bodies are apparently not part of the unloaded stuff.

But, go back to an area several times and see if the bodies are arranged differently. But, bodies without any death animation are just dropped on the ground.

@INSANE,

I don't think this is related to your death effects problem. That's with the game lagging in loading the death effects--waiting until something dies before it loads it into memory.

I recommend looking at any other creature that has a death effect defined and see what its in-game behavior is. If it doesn't suffer from the same problem, then we can begin looking to see what's different between them to determine how to circumvent the problem.