Quicksand Bug in 3.2.4

Found a bug in R'n'D? Report it here!

Moderators: Flumminator, Zomis

User avatar
Sascha
Posts: 348
Joined: Fri May 12, 2006 6:17 pm
Location: Germany
Contact:

Quicksand Bug in 3.2.4

Post by Sascha »

I've noticed a bug when I was making a new level:
If you mix the two kinds of quicksand (usual quicksand and the new 3.2.4- fast quicksand) and you drop a rock on it the rock doesn't leave it anymore.
Do this:




****



****) new fast quick sand (seemingly still not available as a level sketch??)
Image
dave
Posts: 77
Joined: Mon Aug 13, 2007 2:06 am
Contact:

Re: Quicksand Bug in 3.2.4

Post by dave »

[quote="Sascha"]I've noticed a bug when I was making a new level:
If you mix the two kinds of quicksand (usual quicksand and the new 3.2.4- fast quicksand) and you drop a rock on it the rock doesn't leave it anymore.
[/quote]
interesting... how fast should it sink through?
the slowest speed? the fastest?
i'm thinking slowest because that is how EMC quicksand works (when a stone slips out into a space it goes faster than when it goes from quicksand to quicksand).
then again in your example it is going into fast quicksand, which might be considered the same as empty space, so it would slip faster.

ooh and what if you could program the speed of each quicksand... that'd make it even more complicated:)
User avatar
Gamer96
Posts: 6
Joined: Fri Oct 12, 2007 7:11 pm
Location: USA

Hmm...

Post by Gamer96 »

Hmm... I wonder... And, how do i make a level sketch? Thanks.

Umm, let's see now, I DK why this is happening, i''ve never tried it... I will try it later, (when I get offline) Of course, Only if I can figure out what you're saying. lol :lol: :lol:
I am happy. :D
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> If you mix the two kinds of quicksand (usual quicksand and the new 3.2.4-
> fast quicksand) and you drop a rock on it the rock doesn't leave it anymore.

Unfortunately yes! The whole quicksand thing is not very generic, but quite hard coded in the game engine. This should be improved, but at least the above situation should be solved.

> i'm thinking slowest because that is how EMC quicksand works (when a
> stone slips out into a space it goes faster than when it goes from
> quicksand to quicksand).
> then again in your example it is going into fast quicksand, which might be
> considered the same as empty space, so it would slip faster.

Yes, I think it should sink with the same speed it would use when all quicksand elements are of the same type. (In the R'n'D game engine, it does not move faster when leaving the quicksand, so this might still be a special case when trying to achieve EMC compatibility.)

> ooh and what if you could program the speed of each quicksand... that'd
> make it even more complicated:)

Yes! In this case, the quicksand engine code would have to be more generic than it is now...

> And, how do i make a level sketch?

Have a look at the first, sticky post in the "Testing Area" forum section. (I've also updated the download links there.)
User avatar
Sascha
Posts: 348
Joined: Fri May 12, 2006 6:17 pm
Location: Germany
Contact:

Post by Sascha »

> then again in your example it is going into fast quicksand, which might be
> considered the same as empty space, so it would slip faster.

That doesn't matter, from common to fast or from fast to common, the rock never leaves these elements.
The question about the final speed... I'd say, if the rock is still in the upper quicksand (no matter what kind) it uses that kind's speed. If the rock has left the upper quicksand kind completely (in essence the time when it starts sinking into the next after the next) it should have the next's speed.
Clear? :lol:
Image
User avatar
Davacardo
Posts: 89
Joined: Sun Jul 22, 2007 10:36 am
Location: Australia

Post by Davacardo »

While on the issue of quicksand, the new "fast" quicksand in 3.2.4 is located in the DC2 section. However, in the actual DC2 game, it's called "slow quicksand" and boulders actually fall through it slower.
Just a point I thought I'd mention.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

OK, this quicksand bug should also be fixed now!

> While on the issue of quicksand, the new "fast" quicksand in 3.2.4 is
> located in the DC2 section. However, in the actual DC2 game, it's called
> "slow quicksand" and boulders actually fall through it slower.

Interesting point... Maybe I should name the "normal" quicksand "slow quicksand" and re-sort the elements accordingly. (But maybe it would be better to sort elements in the editor by function instead of emulated game anyway...)
User avatar
Davacardo
Posts: 89
Joined: Sun Jul 22, 2007 10:36 am
Location: Australia

Post by Davacardo »

Holger wrote: Interesting point... Maybe I should name the "normal" quicksand "slow quicksand" and re-sort the elements accordingly. (But maybe it would be better to sort elements in the editor by function instead of emulated game anyway...)
I think I suggested this before. I wouldn't worry too much about rearranging the elements though. Maybe stick the fast quicksand in the RnD section and make some new slow quicksand? Anyway, this is probably getting off topic.
User avatar
Sascha
Posts: 348
Joined: Fri May 12, 2006 6:17 pm
Location: Germany
Contact:

Post by Sascha »

Anyway I think all in all there should be more possibilities to config elements.
Quicksand maybe could be edited this way:
speed of rock falling through: not at all, very slow, slow, normal, fast, .....
and then, following, the CE action: after/when ..., set Quicksand speed <>.

But that's not the theme. The question is how to solve the problem of the speed? All slow, all fast or mixed?
Image
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> Maybe stick the fast quicksand in the RnD section and make some new slow quicksand?

Well, the "normal" quicksand _is_ the "slow" quicksand -- it was just named simply "quicksand" because it was the only quicksand type. After extending it to the two quicksand types used by DC2, both types are available. It's really just a naming problem. (The EMC engine handles quicksand speed a little bit different anyway.)

> Anyway I think all in all there should be more possibilities to config elements.

Could be nice, yes, but this would be a lot of effort for a relatively small audience.

> The question is how to solve the problem of the speed? All slow, all fast or mixed?

I think "mixed" is the best solution: In slow quicksand, a rock moves slowly, while in fast quicksand it moves quickly. Seems logically to me. (This is how I solved it now.)
dave
Posts: 77
Joined: Mon Aug 13, 2007 2:06 am
Contact:

Post by dave »

[quote="Holger"]I think "mixed" is the best solution: In slow quicksand, a rock moves slowly, while in fast quicksand it moves quickly. Seems logically to me. (This is how I solved it now.)[/quote]

that still begs the question what happens when slow & fast quicksand is mixed like in the original example. you cant have the top half of the stone sink slowly while the bottom half sinks fast or you would end up with a stretched stone :)
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> you cant have the top half of the stone sink slowly while the bottom half
> sinks fast or you would end up with a stretched stone :)

Right, of course! :-)

Therefore, only one of the two quicksand elements will determine the speed of the rock moving through the quicksand.
User avatar
RTADash
Posts: 180
Joined: Sun May 27, 2007 11:33 am
Location: USA (Ohio)

Post by RTADash »

Let's say you have a slow quicksand above a fast quicksand.
I think it would be OK if the rock just continued to move slowly until it was all the way out of the slow quicksand and then it could speed up. I think this makes sense because the rock it a solid mass, and no matter how fast the fast Q-sand goes, it can't accelerate the part of the rock that's still in the slow Q-sand.
If the Qsands were in the other order, the rock would slow down as soon as it hit the slow one, since the part of the rock still in the fast Qsand can't make the slow Qsand go any faster. :lol:
Probably very hard to program, but I think it seems quite logical. 8)
Those who can't learn will teach; those who can't teach will learn.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> Probably very hard to program, but I think it seems quite logical.

You're perfectly right -- it should work exactly as you described it! Unfortunately, it's really hard to program it that way without some special code to handle such cases where both slow and fast quicksand are involved. Therefore, it's currently less logically implemented as it should be... :-/
dave
Posts: 77
Joined: Mon Aug 13, 2007 2:06 am
Contact:

Post by dave »

[quote="RTADash"]Let's say you have a slow quicksand above a fast quicksand.
I think it would be OK if the rock just continued to move slowly until it was all the way out of the slow quicksand and then it could speed up. I think this makes sense because the rock it a solid mass, and no matter how fast the fast Q-sand goes, it can't accelerate the part of the rock that's still in the slow Q-sand.
If the Qsands were in the other order, the rock would slow down as soon as it hit the slow one, since the part of the rock still in the fast Qsand can't make the slow Qsand go any faster. :lol:
Probably very hard to program, but I think it seems quite logical. 8)[/quote]
shouldnt be too hard ==> just make the rock fall at the 'slowest' speed of all the quicksand it is touching.

it can only be in 2 bits of quicksand at any 1 time, so choose the slowest of them. that should handle slow/fast fast/fast etc. pairings. empty space could be considered 'fastest' to simplify the test furthur. pseudo code:

if(top half == slow quicksand) top half speed = slow
if(top half == fast quicksand) top half speed = fast
if(top half == anything else) top half speed = fastest
[... ditto for bottom half ...]
stone speed = max(top half speed, bottom half speed)

[rant]these little details are one reason why i dont add things to my emc engine. you have to get interactions between new objects and old ones right the first time, or you end up with incompatible versions all over the place, and level designers seem to love using little tricks that break new engine versions :)
Post Reply