The online racing simulator
Auto-Penalize Crash Detector
(21 posts, started )
Auto-Penalize Crash Detector
Because so many noobs might screw up your race, i thought for a bit that a crash detector that kicks, spectates, etc any crasher would be useful. since there are minor inadvertant collisions, there should be a calculation in the tool that calculates the speed at which the car hits another car, and also that detects erratic driving behavior. i just thought it might be useful . any ideas?
that doesnt spectate people though (or does it?)

p.s. thats like a new record for time between posts: like < 2 seconds lol
theres a spinning (crash) detector, play around with it, your sure to get it just the way you like it
but it doesnt give any type of penalty such as kick, spectate, 30/45 sec penalty
Quote from thebimmer :but it doesnt give any type of penalty such as kick, spectate, 30/45 sec penalty

yes it does, you have to configure it

E: just a sec

E2: Here is an example
####################################
# Spinning detection options
####################################

# Minimum angle velocity to trigger action. Possible values: 0 - 720.

MinAngleVelocity = 250

# Action to execute when angle velocity is higher than MinAngleVelocity.
# If more actions, separate them with '|'.
# Possible variables to use:
# {Nickname} - Nickname of driver
# {Username} - Username of driver
# {AngleVelocity} - Angle velocity in degrees

#AngleVelocityAction = /spectate {Nickname}|/msg {Nickname} ^3 removed from track for wrecking
AngleVelocityAction = /msg ^1Danger! ^8{Nickname} ^2lost control!

#MaxNbInStunt is max time (in 100 ms) allowed in stunt mode before MaxNbInStuntAction is executed. If -1 No MaxNbInStuntAction are activated.
MaxNbInStunt = 20
MaxNbInStuntAction = /p_45 {Nickname}

hmm i never knew that function

btw sorry if this thread seems a bit unnecessary as lfslapper already exists
Car to car collisions are nearly impossible to judge correctly based on maths algorithms, the code would need to "see" if it was a laghit, or someone else crashed into someone with a laghit, causing the victim of the first "bump" to crash into someone other at higher speed than really possible.
You DO need a living and thinking human person to minimize false judgements. Regardless how efficient code someone would write, I'd hate to involve a crash I couldn't avoid, and get judged out of the race...
I guess it is more important to get people to avoid spinning each other out.
A crash may cause mayhem on track and it doesn't make a difference whose fault it was.
There will be occasional wrong penalties but I think it's worth it.
The penalty doesn't have to be a black flag.

edit:
Of course avoiding crashes is the best solution.
theres already a crash detector in lfslapper
-
(MonkOnHotTinRoof) DELETED by MonkOnHotTinRoof
This would be so hard to implement, given the architecture of the comms in LFS. It isn't like a traditional central hub-spoke comms, it's more like a mesh, where each person connects to each other. The only exception is NAT proxy situations via the server, I believe.

No clients is guaranteed to see every packet, thus collisions are from the perspective of the players involved. It is probably why you get the weird collisions where a car will seemingly eject off the track for the slightest of touches, due one of the cars in the collision (missing position data) teleporting slightly inside another vehicle/object.

On top of this you have the challenge of deciding who is at fault. You would need to calculate your penalty based on position info leading up to the collision also, assuming you have all that data to begin with.

So given the above it would be very difficult to police collisions from any single point of view with 100% reliably and near impossible to program.

IMO if the race is that important (series/round) then there will be an official over looking the race.
And in the case where there isn't one, you can record the whole race on the host and review protest etc later, as in the real world.
There is no way to detect it, period.

How does a computer, through math alone, determine the difference between...

1) Wrecker never touches the brakes, slams you in a hairpin...
vs
2) Wrecker waits off track, then pull in front of you, causing you to hit him.
vs
3) You spin, pull saftely out of the racing line as cars pass, and a wrecker intentionally nails you.

In case 1, the wrecker is the much faster driver.
In case 2, the wrecker is the slower driver
In case 3, the wrecker is the faster driver, but how do you know hes a wrecker or not, he could have just started a pass and not seen you till he pulled out from behind someone.

There have been things like this in other games, and heres what always happens. Some wreckers get kicked, yes. Alot of honest races would too. Even the spin detector, ive been spectated before for clipping the wall coming out of the chicane at SO.

LFS needs to implement a global "rating" system. Not a points system like some of the leagues do. A rating system, based on wrecks, restarts, etc... and allow servers to set ranges of ratings... That way, people end up playing with people of their caliber. The catch to a system like this is that LFS server controller would have to look at servers, recognize that everyone is set very high and there is no races for low-rank drivers, and would have to let them temp have a higher rank, so they could race...still better than nothing though. Either way, if you were bad enough, you would have a hard time finding a fun race.

Another option is "conditional ghosting" ... ie, your closing rate on a car is too high, you pass through them. Good racers are rarely going to hit another racer at high speed difference, so for those of you serious enough to complain about the realism(lack of) of ghosting would never be effected by it... That way, the guy that plows turn 1 cant ruin the race for others...or the guy that pulls out in front of the leaders cant either...

Creative ideas are needed for these kinds of problems, as computers cannot make objective descisions.
I worked out a system for this a while back. Let's see if I can remember it now...

It uses 4 basic factors - speed, car face, actions and relation to racing line. It'd need to monitor the faces of the car (front, rear, left and right) but most of the other stuff is already in.

Using a combination of these it should be possible to work out the victim in most cases. I went through the 3 examples but had to delete them because I can't write them down to sound as good as they do in my head. I'll try to get one right...

Hairpin
Victim is either on the brakes or at least at low speed. They are either on the racing line or at least at the same angle, heading in the same direction. It is most likely the side of their car which is hit.
Wrecker will either be at full power or at least at high speed, probably with little or no force on the brakes. They will come off the racing line. It is most likely the front of their car which is hit.

So we take their relations to the racing line, determine that only 1 is on it. By itself this isn't enough because obviously you need to move off it to pass and if there's a few cars nearby. Add in a calculation to work out the angle of the car in relation to the line and you can work in even more possibilities.

We take speed. Coming into a hairpin at full speed is blatant wrecking or at least being an arse. Still need more than that though.

Car face. It's unlikely that in racing you'll hit the front of someone with the side of your car (drifters aren't racing, shush!). So in this case the side of one and the front of the other. This case is a little more obvious than some that might crop up, but no system is perfect

And finally we have recent actions. One car is at full power. One car is either braking or only just starting to step on the gas. We can monitor drivers coming off the track and recent yellow flags. With the car face thing we could even detect a spin. We can monitor loads of other things which could theoretically be used to make a fairly good victim detector.
It wouldn't be perfect, but you find me a system that is
Quote from Dajmin : It wouldn't be perfect, but you find me a system that is

There is a perfect system... Humans. We're pretty good at cognitive judgments like that .

Even your system has a failure point. I wrecked someone bad today, caused by another harmless incident. Coming up to T1 at AS Club, we were 3 wide, the 2 guys outside were passing me (i was staying way over, letting them by) They wrecked, and pushed me to the right. I was in the grass, no chance of stopping from full speed, so into the corner i slide at 100 mph or so... t-bone the guy that was in front of us...he was mad at first, but then heard me (and the 2 others backing me up) and was cool.

I let off my brakes at the end before i hit him, because hitting someone hard with the nose settled from braking almost always launches them, if you let off, alot of times it just becomes a horizontal slam.

So, I was:

1) going about 50-60mph faster than him
2) no brakes at impact
3) off racing line
4) hit him at 90 degrees to the side

I failed all of those points.

Its a close system, and that kind of wreck isn't common, but if 1 in 100 people who get booted shouldn't have, then its a failure and shouldn't be used. Thats why I wont go into CTRA servers anymore, the passenger bug means i have to change perfectly good setups for no reason at all... so the system does absolutely nothing good, but caused problems for people. Collateral damage with not enough possible good to justify it.
We need to set area of absolutely latest possible breaking point after the start and before T1. If you didn't break before that point, you didn't try to clearly pass T1 and you are a WRECKER!!
This is my idea for a crash/wrecker detector.

edit: maybe we should consider that breaking point for P1 is different then for P32
#17 - Gunn
Give it up. An auto wrecker detector is not possible to implement fairly. Better to teach people the right way to race than to penalize the innocent due to the system being inadequate.
I agree :)
Quote from Gunn :Give it up. An auto wrecker detector is not possible to implement fairly. Better to teach people the right way to race than to penalize the innocent due to the system being inadequate.

Would be hard to teach people... but definatly fairer
In other words... I agree
Quote from Gunn :Give it up. An auto wrecker detector is not possible to implement fairly. Better to teach people the right way to race than to penalize the innocent due to the system being inadequate.

It'd be nice, but that's a pipe dream. S2 has been out for a while now, and the physics haven't changed that much that braking points or the like have particularly changed. The tracks are the same as they always have been. But we still end up with pile ups at T1 on the busier servers.

The only way to stop this happening is the implementation of proper damage system. If you tear strips off your car at T1 and damage the aero it will hurt your race. I long for those days
#20 - Gunn
Quote from Dajmin :It'd be nice, but that's a pipe dream. S2 has been out for a while now, and the physics haven't changed that much that braking points or the like have particularly changed. The tracks are the same as they always have been. But we still end up with pile ups at T1 on the busier servers.

The only way to stop this happening is the implementation of proper damage system. If you tear strips off your car at T1 and damage the aero it will hurt your race. I long for those days

Yes I agree. When the damage system is further developed we should see less shunters and punters. But I still think you will have T1 pile ups on public servers, though perhaps not as often as now. Front-end damage will prevent some deliberate shunting from those who care more about their stats than they do about racing with others cleanly, but inexperienced drivers will still charge into corners without considering the outcome. Ultimately I believe in educating racers to improve their race craft and knowledge of rules etc. I think the 5 lap races are also partly to blame for the over-enthusiastic overtaking and late braking.
Oh, obviously there'll still be accidents, but as for "inexperienced drivers will still charge into corners without considering the outcome", if they're serious about not being a moron they'll only do that once and the next time they'll know to brake earlier.

Short races may be an issue, sadly I've only had the opportunity to take part in a couple of long tournament races so I can't really say. But I think the servers running points systems based on finishing position are the reason a lot of people drive so aggresively, not only in T1 but all the time. Sure, they might chalk up a couple of yellows but they'll still get X number of points for finishing first. And at T1, who can really say for sure which one of the 15 cars was the one causing the trouble? And without someone watching every single replay it's also impossible to say which move was just defensive and which was designed to take someone out? It's swings and roundabouts.
The points systems are great as long as everyone behaves, but all it takes is one idiot to cause problems.
Ignoring T1 for a second, I think if you could damage your cars aero profile, damage your fuel intake or radiator, shred your tyres or spill oil everywhere, people would definitely be less inclined to make swipes at you to hold their own position.

I long for that kind of damage

Auto-Penalize Crash Detector
(21 posts, started )
FGED GREDG RDFGDR GSFDG