Page 67 of 81

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Sat Apr 14, 2018 10:25 pm
by Lee Arbuco
Looking around the code a bit I saw that I already had a check that disables HW bump mapping if the GPU doesn't have NPOT support, because it's required for certain things regardless of the source textures. I had forgotten about that.

However the check allowed HW bump to remain enabled for cards with only limited NPOT support, which isn't enough. I'll probably change that, or at least add a note that the option can/will cause crashing on such GPUs.
machf wrote:Hmmm, I think this is the first time I've heard of Trespasser crashing because of that...
Maybe because no one has run it on a GPU with limited NPOT, or perhaps depending on driver it doesn't always end up with a crash even when it's doing something it isn't supposed to.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Sun Apr 15, 2018 11:21 am
by Lee Arbuco
Did some some debugging and more looking, and it might be that particular combo of a NPOT swp bumpmap and limited NPOT GPU. I added what I hope is a fix for that situation and posted v1.07c.

Melber if you still happen to read this. If you feel like it you can download 1.07c and re-enable HW bumpmapping to see if that works for you. If you happen to have the level 2 save, where you know it crashed, it would be even better if you could test it there.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Sun Apr 15, 2018 4:40 pm
by machf
OK, I'll upload it to TresCom in a while, too...

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Mon Apr 23, 2018 7:11 pm
by TheIdiot
Hey Lee, I'm wondering if you would be able to implement some sort of fix to the "float Damage" T-script value? It's downright useless at the moment, and seems to be mostly broken.

As it is by default, the Damage value doesn't seem to really do a whole lot when assigned to $ physics, no matter how hard you hit a CAnimal with the object. From what I understand, assigning the Damage value to the entire CInstance will cause the object to hurt both the CAnimals and Anne. For instance, I have a melee weapon which needs to do damage when striking, but only one part of it should be potentially dangerous; however, I believe that if I assign the entire CInstance a Damage value, it will hurt Anne when she puts it on her back, and will kill dinosaurs with a single swipe due to the Damage value registering repeatedly when the object collides with the animal. Some sort of check needs to be implemented so that you can assign CInstances or $ objects Damage and have them A. not damage Anne when she has them on her back (having her drop a weapon and then be hurt by it is okay), and B. only do damage when being swung beyond a certain velocity, and only have that damage occur at a certain rate. I should note that you can currently kill CAnimals by hitting them with melee weapons which have no Damage value assigned, but you have have to hit them very, very hard to do any damage, even if the object in question should be damaging at slower velocities, such as a knife. A lot of people seem to only have luck forcing the dino to interoplate with a melee weapon in order to do damage.

I don't really know a whole lot about the extent of commands you could add to T-Scripts, but an idea of what I'm thinking:

float Damage: The damage done to a CAnimal or the Player when the object collides with another object.
float DamageAnne: The damage done to the Player when the object collides with her; overrides Damage value for the Player.
float DamageForce: The minimum force the object must hit a target with in order to do damage.
float DamageRate: Only check for damage every X seconds, so as to prevent doing the damage too quickly.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Wed Apr 25, 2018 3:55 pm
by Draconisaurus
Huh. Aside from all the garble, those new values sound interesting. I doubt DamageRate can be easily programmed. DamageForce sounds equally difficult. However if the DamageAnne value is possible (such as, for reference, "DamageMultiplier" for CGun), it would be nice simply from the melee-weapons-that-kill-Anne problem (see: MayanSpear in TC Ops level)

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Thu Apr 26, 2018 6:00 pm
by Lee Arbuco
The system that handles collision events and deals damage doesn't have the information of which sub-physics-shape caused a collision, so that wouldn't be possible without larger changes. Only the main/compound phys info/obj can be the one that supplies the Damage value.

If you only want a part of a weapon dealing the damage then maybe a separate (physics) object could be attached, with CEntityAttached or other means? I don't know how or if that would work correctly with melee weapons though.

The Damage T-script value for melee/impact (not guns) isn't an absolute value, it's a multiplier. Actually "Damage" and "DamageMultiplier" are one and the same for that (if both are set then DamageMultiplier has the final say). This multiplier is applied to the impact energy/force value from the physics collision, so damage scales by impact magnitude. The default damage multiplier, when no T-script param is supplied, is 1.

Concerning the other various damage params, I'd probably not add anything natively but instead add necessary script hooks so it would be possible to have more script control over damage calcs. That would allow for implementing simple filtering like not damaging the player or more elaborate stuff such as for example a cattle prod that required a recharge time before it can deal damage again.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Thu Apr 26, 2018 7:21 pm
by TheIdiot
The system that handles collision events and deals damage doesn't have the information of which sub-physics-shape caused a collision, so that wouldn't be possible without larger changes. Only the main/compound phys info/obj can be the one that supplies the Damage value.
Damn. :? So is there no real way to fix melee weapons damaging Anne when she carries them, then?
f you only want a part of a weapon dealing the damage then maybe a separate (physics) object could be attached, with CEntityAttached or other means? I don't know how or if that would work correctly with melee weapons though.
Hmm, someone would have to give that a try to find out.
The Damage T-script value for melee/impact (not guns) isn't an absolute value, it's a multiplier. Actually "Damage" and "DamageMultiplier" are one and the same for that (if both are set then DamageMultiplier has the final say). This multiplier is applied to the impact energy/force value from the physics collision, so damage scales by impact magnitude. The default damage multiplier, when no T-script param is supplied, is 1.
Good to know. So is it possible to set that value above 1?
Concerning the other various damage params, I'd probably not add anything natively but instead add necessary script hooks so it would be possible to have more script control over damage calcs. That would allow for implementing simple filtering like not damaging the player or more elaborate stuff such as for example a cattle prod that required a recharge time before it can deal damage again.
That'd be great...it's too bad none of us really seem to understand the scripting language all that well, though.

I was actually wondering, since you said you might be able to help out with some scripting, Lee, if you would be willing to create that Stamina script I requested a while ago? Hopefully it isn't too complicated:
- A limited amount of Stamina, valued from 1-100 (would be nice to have a HUD component to show the value of Stamina from 1-100, just like the health indicator, but not critical).
- Jumping makes Anne lose 25 Stamina.
- Hold a custom key to "sprint" - moving Anne about 1.5x faster at a cost of about 15 Stamina per second. Play a sound when sprinting and increase the FOV by about 5.
- Overall, make the player move about 1.15x faster to make up for the fact that bunny hopping is no longer an option.
- Play a sound when Stamina reaches 50, and a sound when Stamina reaches 0 to indicate that the player is tired.
- Make the player unable to jump or sprint for 2 seconds once their Stamina runs out, as well as making the player move slower overall for this time (just under regular speed at about 0.85x). Stamina should not regenerate for these 2 seconds.

I'm also wondering whether you might be able to replace the current HUD health "count" with a bar component instead? It's not crucial, but would be nice to have. :)

Lastly, I'm curious as to exactly how the float Speed value applies to CAnimals? It seems increasing Speed above 1 doesn't do all that much, as the dinosaurs still move quite slowly. I'd like to see about increasing the carnivore's Speed value in the level in order to make up for the increased speeds which would be available should the Stamina script get made, but as of right now I can't figure out how to get them to go faster than their normal run speed.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Thu Apr 26, 2018 11:15 pm
by Lee Arbuco
TheIdiot wrote:So is there no real way to fix melee weapons damaging Anne when she carries them, then?
I'd have to get my hands on some test case where this happens and run it through the debugger. Then I might have a better idea if it would be something to fix in the game itself.

It's not something that normally happens, even with an insanely lethal melee weapon (the below mentioned baseball bat). Neither holding this lethal bat of doom nor putting it on the back inflicted any damage on the player, so I'd need a misbehaving test case to look at.
So is it possible to set that value above 1?
Absolutely. The cattle prod in TestScene for example has 1.75. For fun you can put some crazy value like 100 on the baseball bat. That will turn the bat into an insta-gib weapon, where you simply poke a raptor and they keel over dead.
I was actually wondering, since you said you might be able to help out with some scripting, Lee, if you would be willing to create that Stamina script I requested a while ago? Hopefully it isn't too complicated:
I don't know if I have the time for a complete implementation, but I'll try to have a look if I can at least do a rough outline or starting point. I don't want to make any promises though.
I'm also wondering whether you might be able to replace the current HUD health "count" with a bar component instead?
I could make a sample with some kind of bar.
Lastly, I'm curious as to exactly how the float Speed value applies to CAnimals?
It's a multiplier used to calculate the speed that the animal code will "request" the physics code to move the dino with. 0.5 would be half speed and 2.0 double speed. But that's the requested speed and I believe the physics code has some limits so I think they can be made a bit faster but not unlimited.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Fri Apr 27, 2018 1:26 am
by TheIdiot
I'd have to get my hands on some test case where this happens and run it through the debugger. Then I might have a better idea if it would be something to fix in the game itself.
It's not something that normally happens, even with an insanely lethal melee weapon (the below mentioned baseball bat). Neither holding this lethal bat of doom nor putting it on the back inflicted any damage on the player, so I'd need a misbehaving test case to look at.
I believe the Quad Damage thing (the Quake logo) in PV does this, though I may be wrong. I personally have not actually experienced this, but it's been documented in the past and so I'm very wary of it.
Absolutely. The cattle prod in TestScene for example has 1.75. For fun you can put some crazy value like 100 on the baseball bat. That will turn the bat into an insta-gib weapon, where you simply poke a raptor and they keel over dead.
Aaah, okay. That will definitely come in handy knowing that in the future.
I don't know if I have the time for a complete implementation, but I'll try to have a look if I can at least do a rough outline or starting point. I don't want to make any promises though.
Well, the things which really need to be done are mostly just the speed increase and the limited jumping mechanic. The sprint thing isn't a priority but would be nice to have. :)
I could make a sample with some kind of bar.
That would be great. Would be perfect to do a health bar first off though as a starting point. I was just thinking of having a really simple HUD, like this:
Click on Image
(Click on thumbnail for full size)
Image


With a second bar beneath the Health for Stamina, and the ammo count next to the two bars where the "Z" box is located.
t's a multiplier used to calculate the speed that the animal code will "request" the physics code to move the dino with. 0.5 would be half speed and 2.0 double speed. But that's the requested speed and I believe the physics code has some limits so I think they can be made a bit faster but not unlimited.
Okay, that's kind of what I figured. It seems the most you can make them move at is something like 1.3x speed before the value stops really being noticable. And there isn't any way to increase the maximum speed at all? What I wanted to create were Raptors capable of catching a bunny-hopping player with ease, but even with a value of 2.0 speed, they never seem to catch up.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Fri Apr 27, 2018 8:30 am
by tatu
TheIdiot wrote:
I'd have to get my hands on some test case where this happens and run it through the debugger. Then I might have a better idea if it would be something to fix in the game itself.
It's not something that normally happens, even with an insanely lethal melee weapon (the below mentioned baseball bat). Neither holding this lethal bat of doom nor putting it on the back inflicted any damage on the player, so I'd need a misbehaving test case to look at.
I believe the Quad Damage thing (the Quake logo) in PV does this, though I may be wrong. I personally have not actually experienced this, but it's been documented in the past and so I'm very wary of it.
That would be the Quake logo in pre-96 builds PV. In retail (and build 96) it is LAB ;)

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Fri Apr 27, 2018 8:55 am
by Hilwo
Yeah, you can kill a rex with that thing with just a few swings.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Fri Apr 27, 2018 6:52 pm
by TheIdiot
Discovered something playing around in some custom levels recently - specifically, was playing The Hunt and machflev yesterday and JPDS~Streams today. I'd recently been editing my Trespasser.ini in order to try and increase performance when looking at large amounts of water (still haven't been able to do so), when I started getting repeated crashes at random points in levels where I usually don't ever crash in CE. I'd crash in The Hunt every few minutes, despite that level being very lightly populated and easy on the enigne, and machflev even though nothing was happening at all during that time due to the DINOS cheat being active. Even on JPDS~Streams with quadrupled rendering distance, I had never crashed once until now due to a random rendering bug, only due to physics glitches. Now it was happening every 5 minutes or so! So after quite a while I figured out what was causing the seemingly random crash:

Code: Select all

[Memory]
ForceManagedMemD3D=True
Lee's description is simply "Force use of managed memory for D3D textures". No idea what that really means, aside from perhaps some sort of optimization for HD textures? But nonetheless, be wary when enabling this value.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Fri Apr 27, 2018 9:57 pm
by Draconisaurus
The TresCom 2008 Easter Level ( http://www.trescom.org/download/downloa ... RJ2008.rar ) features a Mayan Spear, which is known to sometimes kill the player while it is stowed and she is jumping around.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Sat Apr 28, 2018 8:06 pm
by Lee Arbuco
I updated the build. Had to to add a script hook so I could implement the script for the TheIdiot.

Here's a script setup with a bar-based HUD and stamina functionality. Don't forget to update to the new game version (1.07d). The safest/cleanest way to give this a try is to extract game_ti.zip to a fresh dir and add that to "ModPaths" in "tp_mod.ini".

In order for stamina to work you have add the player script "CPlayerTI" to the player's TScript in TresEd:

Code: Select all

string Script = "CPlayerTI"
I've made heavy use of global constants for values and graphics element coordinates in the script, so that you change them more easily without digging through the actual code. Not everything is implemented, like sounds, but still ended up more complete than I had initially intended.

Re: A new Trespasser patch/update (Trespasser CE)

Posted: Sat Apr 28, 2018 8:13 pm
by Lee Arbuco
Draconisaurus wrote:The TresCom 2008 Easter Level ( http://www.trescom.org/download/downloa ... RJ2008.rar ) features a Mayan Spear, which is known to sometimes kill the player while it is stowed and she is jumping around.
I tried that level and jumped around and ran around quite a bit with the spear, but nothing happened. That's of course no proof, but I would still throw out two questions. Has the player kill ever happened in CE or only in the original game? Is it certain that it was the stowed weapon and not some random physics glitch that killed the player in those instances?

Until we have a documented CE incident of this, I'd suggest treating it as not happening in CE and not something a level author needs to worry about. If/when it does happen I can revisit the issue and debug further.