Author Topic: Placable Lag?  (Read 1771 times)

Legacy_Invisig0th

  • Sr. Member
  • ****
  • Posts: 279
  • Karma: +0/-0
Placable Lag?
« Reply #45 on: December 26, 2010, 09:25:35 pm »


               

kalbaern wrote...
To the point though. Static placeables can indeed be destroyed and often are in many a PW or module  because builders overlook the possibilty. They just don't disappear until PCs leave and re-enter the map.

You are quite correct to point this out.  My mistake. I probably should have made a side mention of this, saying that you can technically "destroy" such placeables, but that this does not behave as one would expect, and that almost no one uses it for that reason.

Regardless, that piece of obscure trivia does not actually contradict my point: that static placeables placed using the toolset behave very differently than placeables placed using scripting at runtime. In fact, you have only further supported how very different the two varieties of static placeables are.

The fact that static placeables created using a script work very differently than both static placeables in the toolset and nonstatic placeables is irrefutable. It is also irrefutable that using static placeables created with a script is one way to reduce the game engine overhead of placeables.

This information is obviously very important to include in a detailed discussion about reducing placeable lag. It would be a disservice to the discussion to fail to mention them. As it turns out, that's exactly what your buddy did above. If people provide incomplete answers, then it is up to the other community members to fill in the gaps. I'm very sorry if that upsets you.
               
               

               


                     Modifié par Invisig0th, 26 décembre 2010 - 10:01 .
                     
                  


            

Legacy_kalbaern

  • Hero Member
  • *****
  • Posts: 1531
  • Karma: +0/-0
Placable Lag?
« Reply #46 on: December 26, 2010, 10:00:20 pm »


               

Invisig0th wrote...

kalbaern wrote...
To the point though. Static placeables can indeed be destroyed and often are in many a PW or module  because builders overlook the possibilty. They just don't disappear until PCs leave and re-enter the map.

You are quite correct to point this out. Unfortunately, this doesn't actually contradict my point that static placeables placed using the toolset behave differently than placeables placed using scripting at runtime. Rather, you've only further supported my assertions here. Thanks for throwing in that bit of fairly useless trivia, though. I should have said you can't destroy such placeables in the way that one would expect.

However, the fact that static placeables created using a script work very differently than both static placeables in the toolset and nonstatic placeables is completely irrefutable. It is also irrefutable that using static placeables created with a script is an effective way to reduce the game engine overhead of placeables, and is therfore extremely important to include in a discussion about reducing placeable lag.

I'm very sorry that neither you nor your buddy managed to mention any of this important information above. But unless you're claiming that this info isn't relevant at all, then you're wasting your time and everyone else's.



You're own example claimed that a static placeable could not be destroyed and you went on to give an example of a burning tree. Your premise is wholly false, you simply refuse to ever be wrong on any given topic and constantly respin things and often contradict yourself when doing so.

Whether or not a placeable can be destroyed is dependant soley on two things, how much damage it sustains if not also set to plot and whether its set as plot to begin with. Not seeing a placeable disappear when destroyed isn't a bug or glitch. Its a simple builders error instead. The builder should make sure anything that can be destroyed is never set to static. All "static" does is set the appearance data to be sent once to the PC and not every time they come back into perception range of it. This also means that destroying it changes nothing "visually" onscreen, but its still gone I can assure you. Experiment using a static placeable with a heartbeat and you'll see for yourself, the hearbeats cease whether seen or unseen when its destroyed, not when it "disappears".

As for "Funky" being my buddy ... heh. He often irks me and I doubt we'd ever be pals. That doesn't matter though. I  respect him and his opinions and advice enough to hear him out at least. I've learned a ton from him and many others over the last 5 years. And unlike you, I can learn from others and don't feel the need to belittle or insult them simply because they point out an error or they disagree with me.
               
               

               
            

Legacy_Invisig0th

  • Sr. Member
  • ****
  • Posts: 279
  • Karma: +0/-0
Placable Lag?
« Reply #47 on: December 26, 2010, 10:06:11 pm »


               Wrong and wrong.

The specific example I described is a tree that will burn and subsequently be destroyed WHILE PCS ARE STANDING THERE.  You absolutely cannot do that with a static placeable placed using the toolset. By your own admission, the PCs would have to leave the area and come back for the tree to disappear -- which obviously sucks. On the other hand, it is trivial to create a static placeable created via scripting and then run a script to "burn" it (using VFX) and then destroy it afterwards. And it will disppear when destroyed, whether the PCs are in the area or not. Srike one for you.

You should also note that the destruction of the tree in this example is being PURPOSEFULLY delayed vis scripting to allow the tree to burn for a while. The intention is to burn it, not make it explode! You cannot do something like that by merely relying on the hit points of the tree and the immediate incidental damage  -- it must be scripted. I'll be happy to provide a sample script if you don't understand. Strike two for you.

Your "rebuttal" here makes is quite clear that you didn't understand my example at all. Not even a little bit. Please read the thread more carefully before posting next time.

When you have something positive to contribute, please do let us know. As for your personal feelings about me -- please send me a PM telling me all about it. But please stop spamming this thread with that nonsense.
               
               

               


                     Modifié par Invisig0th, 26 décembre 2010 - 10:46 .
                     
                  


            

Legacy_kalbaern

  • Hero Member
  • *****
  • Posts: 1531
  • Karma: +0/-0
Placable Lag?
« Reply #48 on: December 26, 2010, 11:03:31 pm »


               

Invisig0th wrote...

Wrong and wrong.

The specific example I described is a tree that will burn and subsequently be destroyed WHILE PCS ARE STANDING THERE.  You absolutely cannot do that with a static placeable placed using the toolset. By your own admission, the PCs would have to leave the area and come back for the tree to disappear -- which obviously sucks. On the other hand, it is trivial to create a static placeable created via scripting and then run a script to "burn" it (using VFX) and then destroy it afterwards. And it will disppear when destroyed, whether the PCs are in the area or not. Srike one for you.

You should also note that the destruction of the tree in this example is being PURPOSEFULLY delayed vis scripting to allow the tree to burn for a while. The intention is to burn it, not make it explode! You cannot do something like that by merely relying on the hit points of the tree and the immediate incidental damage  -- it must be scripted. I'll be happy to provide a sample script if you don't understand. Strike two for you.

Your "rebuttal" here makes is quite clear that you didn't understand my example at all. Not even a little bit. Please read the thread more carefully before posting next time.

When you have something positive to contribute, please do let us know. As for your personal feelings about me -- please send me a PM telling me all about it. But please stop spamming this thread with that nonsense.

Your retort is laughable if only because you'll claim I never sent a private PM. Infact, I attempted such over a week ago in regards to another thread and you'd had my login listed as blocked. Don't worry, that puts me into the same group as "Funky" and others you disagree with and is reward enough.
               
               

               
            

Legacy_Tyndrel

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
Placable Lag?
« Reply #49 on: December 26, 2010, 11:38:25 pm »


               Thanks Inayity, that was fascinating and very informative.
               
               

               
            

Legacy_NorthWolf

  • Full Member
  • ***
  • Posts: 143
  • Karma: +0/-0
Placable Lag?
« Reply #50 on: December 27, 2010, 12:12:03 am »


               I really hate jumping into these things because it's always a no-win, but it seems silly to pretend this isn't happening...

Honestly, guys? Neither side is painting a pretty picture of themselves because of the pointless and thinly veiled jabs going about. A complete discussion of this particular topic would've simply explained the nature of toolset-placed and script-placed statics and the differences. Though this is hardly the first discussion in here that could have avoided a lot of bickering, really.

So, really, for the sake of the original poster and anyone looking for actual info in here, maybe a little more on-topic and take the bickering to the personal channels readily available?
               
               

               


                     Modifié par NorthWolf, 27 décembre 2010 - 12:13 .
                     
                  


            

Legacy_eeriegeek

  • Jr. Member
  • **
  • Posts: 75
  • Karma: +0/-0
Placable Lag?
« Reply #51 on: December 27, 2010, 05:47:24 am »


               

Invisig0th wrote...
Your best performance for a placeable is always going to be when the placeable is placed in the toolset and flagged as static. The fact that the game engine only expends minimal effort dealing with these has severe drawbacks, however. You cannot create or destroy these placeables, or interact with them in any way. For all intents and purposes, they treated as part of the tileset during gameplay. They are indeed "static" in the strictest sense of the term.

However, static placeables that are created via a script from a blueprint are treated very differently by the NWN Game engine. For starters, you can create and destroy such placeables. If your need to manipulate the placeable via script is limited to these and a handful of other basic scenarios, and if you really can't achieve the desired effect using static placeable placed ahead of time in the toolset, then using this technique may be useful. And if someone is very serious about ratcheting down placeable lag as much as possible, like we are discussing here, the fact that spawned in static placeables involve less overhead than non-static, non-usable placeables can also make a big difference.

An example would be creating a tree placeable that can't be interacted with directly by PCs, but which will "burn" and be destroyed if a fireball goes off nearby. Static placeables placed in the toolset at design time definitely will not work, since you literally can't destroy them using a script. A non-static, non-usable placeable would certainly work, but that's an awful lot of extra overhead when all you are doing is applying a brief VFX and then destroying the placeable. With spawned-in static placeables, it's quite easy to do all this with minimal overhead.


Can you expand a little on how one goes about creating spawned-in static placeables from a script? I tried to create a placeable blueprint in the toolkit to test it out, and intially the static checkbox is greyed out. By checking and unchecking the usable flag I can select the static flag, but every time I save and re-open the template, the static box is unchecked again. My toolkit doesn't seem to want to create a static template. How did you go about implementing this? Any help appreciated.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Placable Lag?
« Reply #52 on: December 27, 2010, 06:50:58 am »


               

NorthWolf wrote...

I really hate jumping into these things because it's always a no-win, but it seems silly to pretend this isn't happening...

Honestly, guys? Neither side is painting a pretty picture of themselves because of the pointless and thinly veiled jabs going about. A complete discussion of this particular topic would've simply explained the nature of toolset-placed and script-placed statics and the differences. Though this is hardly the first discussion in here that could have avoided a lot of bickering, really.


While I admire your attempt to stay out of the fray, it also creates a false leveling. What is happening in this thread isn't two groups of people bickering, it's one person (though not the first, as you note) saying wildly inaccurate things, others correcting them, and that person attacking them for it. I won't even attempt to speculate at the why.

eeriegeek wrote...

Invisig0th wrote...
Your best performance for a placeable is always going to be when the placeable is placed in the toolset and flagged as static. The fact that the game engine only expends minimal effort dealing with these has severe drawbacks, however. You cannot create or destroy these placeables, or interact with them in any way. For all intents and purposes, they treated as part of the tileset during gameplay. They are indeed "static" in the strictest sense of the term.

However, static placeables that are created via a script from a blueprint are treated very differently by the NWN Game engine. For starters, you can create and destroy such placeables. If your need to manipulate the placeable via script is limited to these and a handful of other basic scenarios, and if you really can't achieve the desired effect using static placeable placed ahead of time in the toolset, then using this technique may be useful. And if someone is very serious about ratcheting down placeable lag as much as possible, like we are discussing here, the fact that spawned in static placeables involve less overhead than non-static, non-usable placeables can also make a big difference.

An example would be creating a tree placeable that can't be interacted with directly by PCs, but which will "burn" and be destroyed if a fireball goes off nearby. Static placeables placed in the toolset at design time definitely will not work, since you literally can't destroy them using a script. A non-static, non-usable placeable would certainly work, but that's an awful lot of extra overhead when all you are doing is applying a brief VFX and then destroying the placeable. With spawned-in static placeables, it's quite easy to do all this with minimal overhead.


Can you expand a little on how one goes about creating spawned-in static placeables from a script? I tried to create a placeable blueprint in the toolkit to test it out, and intially the static checkbox is greyed out. By checking and unchecking the usable flag I can select the static flag, but every time I save and re-open the template, the static box is unchecked again. My toolkit doesn't seem to want to create a static template. How did you go about implementing this? Any help appreciated.


You can spawn in static placeables quite easily, as well as make them. If the wizard doesn't like you doing it, you can simply pick a standard palette object to spawn in for testing, or make a copy of it, and change the appearance to the one desire, and the static flag will not revert. That, however, misses the point.

Without meaning to be rude, he really has no idea what he's talking about - heed him at your peril. To rattle off the mistakes I see off hand in the above-quoted material:
1) You can destroy statics, as kal already pointed out.
2) You CAN interact with statics in any number of ways other than destruction: looping through objects turns them up, you can make them speakstring (though it appears in combat log and not above them), you can even set and get variables on them. One of the few things you CAN'T do to them is apply VFX. Another is SetUseable (as per the function notes - they are correct).
3) The notion that using a non-static placeable spawn-in as opposed to a static one is an " awful lot of extra overhead" is laughable. So far as I know, spawned-in static placeables are like non-statics in every salient way. Heck, you can even SetUsable them, which you cannot do to true statics. The only reason I agreed with his recommendation that they be spawned in as static is an abundance of caution - in almost all cases, there's no reason NOT to spawn them in static, and there's a chance (far from a demonstrated certainty) that they cause less overhead (as opposed to pre-set statics, which DEFINITELY cause less overhead). The only time when it's pointless to do so is when you plan to interact with them further anyway. In any event, any such difference in overhead would be miniscule, if not completely negligible, as has already been said.

This is another one of those areas kal pointed out where goth contradicts himself - remember that the person claiming that spawning placeables in as non-static generates 'an awful lot of extra overhead'  is the same person who began posting in  this thread saying instead that 'there may be benefits to spawning them in nonstatic.' Unless he has some uncited source of new knowledge - doubtful, from the mistakes noted above - he's simply making this up out of whole cloth. Again, I won't speculate as to why, but I can say without any speculation that he's simply wrong.

Funky
               
               

               


                     Modifié par FunkySwerve, 27 décembre 2010 - 06:52 .
                     
                  


            

Legacy_eeriegeek

  • Jr. Member
  • **
  • Posts: 75
  • Karma: +0/-0
Placable Lag?
« Reply #53 on: December 27, 2010, 08:28:37 am »


               

You can spawn in static placeables quite easily, as well as make them.
If the wizard doesn't like you doing it, you can simply pick a standard
palette object to spawn in for testing, or make a copy of it, and
change the appearance to the one desire, and the static flag will not
revert.


Hmnn, interesting side point, I figured out what was happening, but not why. The problem I had selecting the static flag seems related to the new tree placeables. I was unable to create a static template for any of the new Bioware trees. As soon as I picked a different model (boulder, old plc_tree) I could enable the static flag.
               
               

               
            

Legacy_Invisig0th

  • Sr. Member
  • ****
  • Posts: 279
  • Karma: +0/-0
Placable Lag?
« Reply #54 on: December 27, 2010, 12:44:26 pm »


               You know, I had started to type up a post rebutting the "rebuttal" above, starting with the fact that didn't quite make made the claims that map to the first two items on that list. But honestly, there's no point in explaining all that to FS, because he doesn't want to even honestly acknowledge what was and was not already said above. Deaf ears, so to speak. The other people who are honestly interested in placable lag who read this thread can see for themselves where he went off the rails. No need to repeat it for them.

NorthWolf wrote...
Honestly, guys? Neither side is painting a pretty picture of themselves because of the pointless and thinly veiled jabs going about. A complete discussion of this particular topic would've simply explained the nature of toolset-placed and script-placed statics and the differences. Though this is hardly the first discussion in here that could have avoided a lot of bickering, really.

So, really, for the sake of the original poster and anyone looking for actual info in here, maybe a little more on-topic and take the bickering to the personal channels readily available?

Agreed. I foolishly let FS get to me. My apologies for the associated noise around the discussion.

Attention FS -- this post is referring to your behavior as well. Perhaps even moreso, since you had already insulted and upset another community member before I even began participating in this thread. Let's see if you can also be a man about it and stop with the needless flaming and provoking of other community members who are, for the most part, only trying to contribute to the discussion in a helpful way. Whether you believe it or not, we're all on the same side here. Take it down a notch or two.
               
               

               


                     Modifié par Invisig0th, 27 décembre 2010 - 01:41 .
                     
                  


            

Legacy_TSMDude

  • Hero Member
  • *****
  • Posts: 1515
  • Karma: +0/-0
Placable Lag?
« Reply #55 on: December 27, 2010, 02:48:46 pm »


               

Invisig0th wrote...

You know, I had started to type up a post rebutting the "rebuttal" above, starting with the fact that didn't quite make made the claims that map to the first two items on that list. But honestly, there's no point in explaining all that to FS, because he doesn't want to even honestly acknowledge what was and was not already said above. Deaf ears, so to speak. The other people who are honestly interested in placable lag who read this thread can see for themselves where he went off the rails. No need to repeat it for them.

 I foolishly let FS get to me. My apologies for the associated noise around the discussion.

Attention FS -- this post is referring to your behavior as well. Perhaps even moreso, since you had already insulted and upset another community member before I even began participating in this thread. Let's see if you can also be a man about it and stop with the needless flaming and provoking of other community members who are, for the most part, only trying to contribute to the discussion in a helpful way. Whether you believe it or not, we're all on the same side here. Take it down a notch or two.


Your apology is wrought with accusations and further snide remarks. No offense Invis but I think you might want to edit your comment to say just this.

My apologies for the dung flinging around the discussion.

This way you can really just put it behind this. Otherwise it contuines to smack of insincere and negates any ogre's apology.
               
               

               
            

Legacy_NorthWolf

  • Full Member
  • ***
  • Posts: 143
  • Karma: +0/-0
Placable Lag?
« Reply #56 on: December 27, 2010, 03:33:26 pm »


               

eeriegeek wrote...

Hmnn, interesting side point, I figured out what was happening, but not why. The problem I had selecting the static flag seems related to the new tree placeables. I was unable to create a static template for any of the new Bioware trees. As soon as I picked a different model (boulder, old plc_tree) I could enable the static flag.


Yes, this is the case with some placeables. We had someone do a full overhaul of the placeables from CEP/Q to make blueprints for all of them, and some placeables simply will not allow the static flag to be active. This has to do with the placeable.2da. The far right column is "static", and you can toggle the availability of the static flag there.

Not knowing anything about modeling I can't tell you why it's necessary on placeables, though most of the disabled placeables have danglymesh or animations associated with them (i.e. hidden doors).
               
               

               
            

Legacy_ShadowM

  • Hero Member
  • *****
  • Posts: 1373
  • Karma: +0/-0
Placable Lag?
« Reply #57 on: December 27, 2010, 07:54:54 pm »


               The reason for this is that a lot of the new models were using skinmeshes and skinmeshes on placables would cause crashes of the game/server so bioware set these to permanent static or non static and add the ability to block it in the .2da so people did not accidentally crash their game and whine about what going on. I not sure if it was fixed in the last patch or was introduced in the last patch. I think there info about it in the old forums, but you have do some searching.
               
               

               
            

Legacy_NorthWolf

  • Full Member
  • ***
  • Posts: 143
  • Karma: +0/-0
Placable Lag?
« Reply #58 on: December 27, 2010, 10:49:30 pm »


               Checked it, was part of the 1.67 patch update:

Added the ability to force a placeable to be non-static (grey out the static checkbox) for any placeable using skin mesh. This is toggleable in the placeables.2da in a "Static" column. Defaults to allow if column missing.

Sounds like you're totally correct, Shadow!
               
               

               


                     Modifié par NorthWolf, 27 décembre 2010 - 10:49 .
                     
                  


            

Legacy_Invisig0th

  • Sr. Member
  • ****
  • Posts: 279
  • Karma: +0/-0
Placable Lag?
« Reply #59 on: December 27, 2010, 11:42:32 pm »


               TSMDude,

Please restrict any further personal comments, opinions or critiques you'd like to send my way to PMs. Such things do not belong in this thread.
               
               

               


                     Modifié par Invisig0th, 27 décembre 2010 - 11:46 .