Server Help

ASSS Questions - Accurate collisions

Goldeye - Thu Mar 13, 2008 6:35 pm
Post subject:
Smong, have you figured out the correct way to compute bounces?
I am missing tiles where the ball moves completely past the tile in one tick and don't know the best (or more importantly, continuum-accurate) way to go about it.
Bak - Thu Mar 13, 2008 8:26 pm
Post subject:
have you tried computing the line between the two ticks and seeing if it intersects a tile which is solid (the discretion method)?
Goldeye - Thu Mar 13, 2008 9:22 pm
Post subject:
If it does, when do reverse the speed, and how do I know which direction to reverse it in?
Samapico - Thu Mar 13, 2008 11:30 pm
Post subject:
In Continuum, it is possible for a bomb or a ball to go through a tile if it's going too fast... to travel 16 pixels in a tick, the speed would need to be... 16000? ..hmm that doesn't sound that fast...
Did anyone ever checked the speed needed before something goes through a wall? At 16000, the possibility of something going through a tile would be like 1/16 though. So I guess it could make sense
Dr Brain - Thu Mar 13, 2008 11:37 pm
Post subject:
Yeah, I've fiddled with top speed settings allowing people to go through walls and it's about 15000, but I had come to the conclusion that it depended on frame rate. Maybe I was mistaken.
Goldeye - Fri Mar 14, 2008 3:52 am
Post subject:
With a combination of buggily high ship speed and high ball speed I got the ball to go through walls.
Seems cont doesn't check the line.
My guess is that it just breaks speed down further (to floats?) and gets another precision (*10 or *16, I don't know)
Smong - Fri Mar 14, 2008 6:52 am
Post subject:
Topic split from Ball friction (that time of year again?)

I would assume collisions are per tick with no fancy sub-tick intersection.

I think the tricky bit is tweaking:

All these minor things would become noticable after the ball bounced a few times.

If anyone wants to look some of the ball bounce code is right above the ball friction code (the offsets are in this thread http://forums.minegoboom.com/viewtopic.php?p=59777#59777).
Goldeye - Fri Mar 14, 2008 1:20 pm
Post subject:
Subspace does seem to do no sub-tick processing. Note how easy it is to fly ships and balls through walls at high speeds in subspace.

A glance at the top of the ss ball function shows it probably bounces at the tick position. (if x<0 || x > 0x00f60000 then xspeed = -xspeed)




The same is possible but requires higher speeds in continuum.
Just tested and I managed to get guns through (two) walls as well (without any bounce), at high speeds, of course.
I'm quite confident the ss physics are no longer used.


I suspect (but haven't rigged up a good test) that continuum is fine for multiple bounces in a single tick. That would be definitive indicator of simply higher resolution testing.
Samapico - Fri Mar 14, 2008 5:16 pm
Post subject:
If this can help... try throwing a ball INTO a door that closes.
You'll hear the ball bounce every tick, and it won't move at all.
Same for bouncing bullets or shrap...
Goldeye - Sat Mar 15, 2008 12:17 am
Post subject:
Samapico wrote:
If this can help... try throwing a ball INTO a door that closes.
You'll hear the ball bounce every tick, and it won't move at all.
Same for bouncing bullets or shrap...


Do it at absurdly high speeds and I bet you'll find a different result.
Smong - Sat Mar 15, 2008 10:11 am
Post subject:
Samapico wrote:
If this can help... try throwing a ball INTO a door that closes.
You'll hear the ball bounce every tick, and it won't move at all.
Same for bouncing bullets or shrap...
I think all that tells us is the collision code doesn't align to the edge of a wall, unless doors are a special case. Although if you shoot a wall with guns the explosion doesn't appear on the edge but somewhere inside the wall (again could be a special case). Either way I think this is all leaning towards "use old position" instead of "calculate exact new position".
Cheese - Sat Mar 15, 2008 7:07 pm
Post subject:
Goldeye wrote:
[..]
Do it at absurdly high speeds and I bet you'll find a different result.


i might try that...
i already have an arena in my zone that has the highest possible speeds of ships and bombs, speeds so fast that 'wallhacking' through a tw sized base takes a small amount of time, and so fast that picking up a flag makes you a static object, until you use afterburners.

i might make a large door to toss a ball into...
Goldeye - Wed Mar 19, 2008 4:33 pm
Post subject:
I just tried running a straightforward in-tile collision function with a few (uncontrolled, mb) bounces at a resolution of 10 checks/tick and actually got farther off that just checking 2x/tick.

4x/tick gets within 3 tiles for low moderate speeds and within 10 for a good bit higher (1000px/sec?)
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group