Searching in All forums
(932 results)
AndroidXP
S3 licensed
Quote from ATHome :I just looks ugly

Typo of the year
AndroidXP
S3 licensed
Don't start the game from the profiler.

Also: http://en.lfsmanual.net/wiki/W ... tting_up_a_Logitech_Wheel
AndroidXP
S3 licensed
Why, lerts...

WHY?
AndroidXP
S3 licensed
Oops just the pace car? Still a completely useless PR stunt.
AndroidXP
S3 licensed
A hybrid in nearly full throttle racing? Completely pointless bullshit PR move. Wow look at the 200gr fuel saved during start and pitstop! Unbelievable! Also look at the overall worse fuel efficiency because it has to haul an electric engine + battery around.
AndroidXP
S3 licensed
No, just my deep pessimism regarding software release dates.
AndroidXP
S3 licensed
We're going to look at this thread in July 2009 and laugh because 1.03 will still not be released at that point

(Whereas we will already have LFS patch Z3!)
AndroidXP
S3 licensed
Quote from tristancliffe :In essence, this is the same thing. Just replace the body of the pondskater with that of an umbrella.

Yes, but the pondskater doesn't have the pond attached to himself, which makes a major difference in whether that works or not.
AndroidXP
S3 licensed
Quote from tristancliffe :Yes, that device will 'work' (if I understand your jibberish).

Are you sure? What guarantees that the water containers will stay horizontal? If both have the same weight they could be in either position, unless the bar works like a scale and has an inherent tendency to be horizontal. However that would mean that if you push one of the water containers down (which is what you'd do if you forcefully submerge the ball - the buoyant force will push the ball up but also the water down) some force will be generated at the water-bar mounting point that will make the umbrella fall. The whole apparatus, ignoring it's complete technical infeasibility, would only work if the water tanks were mounted on the ground, not on the umbrella itself.

E: Ah I see if they were connected they'd try to be horizontal by themselves.

Goddamn this whole idea is such a load of crap why am I even wasting time with this.
Last edited by AndroidXP, .
AndroidXP
S3 licensed
It's a gear shift help, not a simulation of an automatic gearbox
AndroidXP
S3 licensed
Yes. Because the non-demo cars have an extra encryption on them, doesn't matter that you're S2 licensed.
AndroidXP
S3 licensed
You still need to know the fuel consumption, otherwise you cannot make an estimate. This is what scania is asking for.

Wikipedia says:
Quote :Race fuel consumption rate is normally around 75 liters per 100 kilometers traveled (3.1 US mpg - 3.8 UK mpg - 1.3 km/l).

Of course every track has slightly different consumption rates, but you'd have to have exact measurements on how much fuel was added for a certain driver, how much he started with and how much was left after a race to get a meaningful value for a track (and car).
Last edited by AndroidXP, .
AndroidXP
S3 licensed
As I see it there are a few ways to handle this, either is a tradeoff between using as actual information as possible and making the vehicles' motion look smooth. The main difference IMO is whether you use extrapolation or interpolation, each having its advantages and disadvantages.

Extrapolation
Basically you take the latest information packet and try to predict the future using its data - this is what LFS does. You get the packet, set the car's position and other parameters and send it on its merry way, letting the physics handle the rest. As soon as a new packet arrives you correct your prediction mistakes and the cycle repeats.

+ Uses most actual data
+ Physics stay intact (besides warping)
- Warping
- Easy SHTF situations if your collision code can't handle cars intersecting

Now, there are a few ways this can be (more or less) improved:

Smoothing
The same as above, but instead of snapping the cars in position when new data arrives, you gradually float them to the desired location.

+ Cars don't warp
+ Collision explosions may be reduced due to slower impact speed / less intersection
- Physics integrity ruined
- Data display slightly delayed (not as actual anymore)

AI based smoothing
Instead of floating the cars in a physics defying manner, you could actually let some kind of AI drive the cars back into position if possible.

+ No warping / floating in most situations
+ Physics stay mostly intact
+ Collision explosions may be reduced due to slower impact speed / less intersection
- AI might do stupid things
- Situations where a physically correct prediction error recovery is impossible will arise (requiring warping / floating)
- Data even less accurate than with smoothing

AI based prediction
One thing to consider is that the extrapolation only predicts physics but not state changes. It predicts perfectly accurate where the car would go without any of its properties changing, but the errors come up as soon as the driver does something to the car's steering/throttle/brakes in between those information packets. What could help here is a mild form of AI based prediction to figure out what the driver *should* be doing next, like braking & steering for a approaching corner. Ideally every driver should have his own learning AI attached to make the predictions more accurate according to the driver's style (where he brakes, which lines he takes, etc.). You could also combine this with using multiple packets from the past to for example detect a constant steering increase, but situations like this rarely happen in racing so that would probably have very little effect or make things worse.

+ Uses most actual data
+ Physics stay intact (besides warping)
+ Less prediction errors in situations with predictable state changes (regular lapping)
- More / different errors in situations where the driver does something "he shouldn't be doing"
- AI might do something stupid
- Warping

The best way would probably be a very careful combination of the above, though it would require lots and lots of coding & testing to get it right (= not making the situation worse than now but still eliminating most of the warping and physics explosions). Everything AI based of course needs well defined triggers to turn AI interaction off as soon as a too extreme situation occurs.

Interpolation
Interpolation is not about predicting the future but actually knowing it, and making the path between now and the "future" as smooth as possible. What basically happens is that you knowingly introduce a delay between the information you got and the things you display, basically a one or more packet buffer "in front" of what is happening on the screen. That way you know where the car will end up and you just need to figure out how he got there in the first place. This is what I believe iRacing does, at least according to the reports of little to no warping seen in multiplayer.

The hard part is of course to make the transition look as believable as possible and not introduce too many problems with the knowingly added latency. The available methods are somewhat similar to those used in extrapolation (float the cars, let an AI try to drive to the known position, etc.) so I'm not going to list them again.

A possible way to make this easier is to actually let the clients send the detailed information of how it reached its current location to the server, though this could dramatically increase the bandwidth needed.

+ You know the future and should thus be able to eliminate warping completely (bar very extreme situations)
- Almost guaranteed physics invalidation unless you can really somehow figure out the 100 or so physics steps that happened in between the packets (which might be too CPU intensive)
- Data displayed is never actual, actions and reactions can get out of hand due to the constant delay
- If the world comes crashing down, it comes crashing down hard


I'm in no way an expert in this and there might be/are likely some really clever methods that I'm too stupid to figure out, but this are basically all methods I can think of to handle multiplayer packets in a racing game.
Last edited by AndroidXP, .
AndroidXP
S3 licensed
Quote from 510N3D :so when exaxtly was it that you've vistited one of them major cruise servers (CLC, LTC)? At least according to your reply, you've never been there at all.

I'd never dare to dirty up my race history with stepping a foot on these yucky servers, so no, I never visited them. But I was there in the very beginning when the servers slowly turned to crap with police officers rather banning than chasing, basically when CnR started to be more about roleplaying than actual cops and robbers - this is when I left for good. The rest of this tragedy I gathered from countless cruise related posts on this forum, whether be it the whining of newbies who don't have enough cash to do anything or InSim cruise server examples, etc.

But don't fret, I can perfectly understand your need for a relaxing cruise after all those hard left turns
Quote :
Cruising in LFS is the perfect example of thinking outside the box.

It's a perfect example of thinking like a box.
AndroidXP
S3 licensed
Sorry, but wrapping a framework method just for that seems like a really bad idea and at least to me your example doesn't make any sense whatsoever. You're just unnecessarily creating a new method call that needs it's own space in memory plus all the parameters, etc. etc. The only thing you're fixing (badly, I might add) is code that was put there intentionally for illustration purposes. I could've just assigned the result of the replace method back to the withBad variable, but that would've defeated the variable name.

I mean someone will rarely ever get a hardcoded string literal where he has to replace something out of it. Why write "I'm bad men." when you could write "I'm men." to begin with? So the point is that there will always be some variable or method that gives us the original string that needs parts of it replaced, wherever the string comes from (from a file, maybe from user chat, etc. - not hardcoded). Did you consider the case that maybe original and replaced string will both be needed at some point?

Also, what you apparently didn't know, this works too:

<?php 
string myString 
"I'm bad men.".Replace(" bad""");
?>

It's completely nonsensical but since you're a minimalist freak it might satisfy your desires
AndroidXP
S3 licensed
Quote from Shadowww :In host list, it shows version as Z2 :/

That's intentional. Read Scawen's post again.
AndroidXP
S3 licensed
Yes, people with moving avatars r dum.
AndroidXP
S3 licensed
I dunno, but the video kinda looks like someone was fighting with slight steering lag. The way oversteer and its correction looks like seems somewhat off to me
AndroidXP
S3 licensed
Cruising (d)evolved from "Cops 'n' Robbers", which was originally some kind of pseudo city layout made from barriers on the autocross track, with some people playing police and other robbers that had to get away from them while navigating the barrier-city. Think NFS Hot Pursuit + city layout + superior driving physics + inferior crash physics. This was quite fun as it required skill from both police and robber to navigate the city fast without crashing and losing/not losing the other. This was sometimes accompanied by role playing traffic and innocent drivers and inventing different reasons for why someone was being chased by the police.

Then someone somewhere had the genius idea to remove the chases (read: fun) and call it cruising. Now you can pretend to make your daily mundane virtual drive to work, stand around a bit and earn virtual cash to buy/repair your virtual car. Sounds exciting, huh?
AndroidXP
S3 licensed
Quote from AlienT. :Got this from iRacing today and yes I'm embarrassed

Posting a bitmap is indeed embarrassing
AndroidXP
S3 licensed
Yes, at least if it's the USB version. There might be problems on the gameport one.
AndroidXP
S3 licensed
It was inappropriate language. Because it should be "Americans for you". Plural / no possessive form = no apostrophe.

:rolleyes:

But personally I'll refrain from calling Americans stupid for now, since they miraculously managed to not **** up the presidential election :-)
Last edited by AndroidXP, .
AndroidXP
S3 licensed
Physics updates and actual progress would motivate me even more.
AndroidXP
S3 licensed
string withBad = "I'm bad men.";
string withoutBad = withBad.Replace(" bad", "");
FGED GREDG RDFGDR GSFDG