The online racing simulator
Searching in All forums
(67 results)
Nitemare
S2 licensed
Quote from Tweaker :Doesn't that car perform like a whale on the track though???? (So I heard)

well at two tonnes it's not exactly a lightweight sportscar, but from reviews i read, it is suprisingly nimble... even Gordon Murray (designer of McLaren F1) said it...
Jeremy Clarcson said that it handles like a big Lotus Elise


Anyway, my suggestion for cars in S3: LMP1 sportcars, with at least three types of engine (5.0 N/A, 3.6 turbo, 5.5 turbo diesel)
Nitemare
S2 licensed
skin of Team Czech Republic from A1 Grand Prix...




http://nitemare.misto.cz/FO8_A1GP_CZE.jpg
Nitemare
S2 licensed
good, interpreter can be downloaded as standalone for free, here: http://software.motec.com.au/release/

if someone can dig out that file definition, i might give it a try...
Nitemare
S2 licensed
this software is the actual software Motec uses to analyze data from real race cars... that's why it's external in GTR

if we could get our hands on the description of data structure motec analyzer uses for input, it would be possible to input data from lfs RAF file into it...
Nitemare
S2 licensed
sounds a bit strange, but nice...

engine has a deep tone, but when revved up, you hear more of the turbos whistling than the engine itself...

and Kristensen said that it's harder to drive then petrol cars, because when accelerating in third gear, he can't hear the engine over the wind noise

edit: video of launch
Last edited by Nitemare, .
Nitemare
S2 licensed
the video was live stream, and it's not available anymore...

but they said there wil be an "on-demand" version after some time...

the link is http://www.audi.de/r10
Nitemare
S2 licensed
i think it's time to ressurect this thread, now that the Audi R10 was revealed...

it is a successor of LeMans winning Audi R8, and it has a 5.5 l V12 diesel!
(650 hp, 1100 NM (811 lb-ft))

i think this car will prove that diesels are no longer just boring truck engines, like they were before...

btw i saw a footage from testing and there was no smoke from exhaust at all
Last edited by Nitemare, . Reason : added photo
Nitemare
S2 licensed
i guess the problem is mainly with performance...

because displaying whole circuit at once is very demanding on hardware, circuit is cut into sections...
if you go round the circuit along the path, sections ahead of you become visible and sections behind you disappear
if you don't have path, engine does not know where you are in the map, and what to display...
so if you make a track like a car park, without path, but with a lot of objects, you must make all parts of track visible at once... and that means a big performance hit..

i believe multiple paths or something like that could be implemented, but it certainly isn't of a high priority right now

edit: now i actually read scawens posts.. it's not about displaying track sections as i thought, but individual objects.. but the rest is right..
Last edited by Nitemare, .
Nitemare
S2 licensed
those numbers i posted of course ARE NOT in PERCENT... as i said it's just a ratio of the two percentages... that does't make it a percentage too.. the number itself means nothing, but the relative margin between values is the same, as if you counted with exact numbers of licences, like bob smith did... (i didn't know an estimated number of licences sold, that's why i didn't count the percentages)

Quote from Vykos69 :And here is your problem: You dont have licensed LFS racers in every country of the world. So the license pie is not comparable to the civilisation pie of the world. You would need to only count the populations of the countries involved for the worlds-pie, so you have the same amount of "pie-pieces" in the LFS-pie and the worlds pie with the same countries on it. But e.g. China: Is there any licensed LFS racer in china? So does it count into the LFS license pie? If not, your whole world pie would change by a huuuuge amount. got the point?

i got the % of licenses sold in the rest of the world... that's 4% in the license pie... to get the population which corresponds with this number you just have to simply make a sum of population of countries in graph and substract it from world's population... so i just count the rest of the world as the one big country for the purpose of this graph...

...i'm pretty sure my math is right

edit: here's the xls for the graph...
edit2: i updated the graph with an estimation of 30 000 licences sold, so now the values are in % of population
Last edited by Nitemare, .
Nitemare
S2 licensed
i agree that fz50 should have some engine vents... every rear/mid engined car has some, even very low-performance ones... (older skodas or fiats for example )

Quote from ZeroDexter :imho this is the least needed improvement for LFS at the moment illepall

..but the simplest one to make...
on the other hand, updating mesh will make the patch uncompatible with previous releases, so the update would have to wait until some change to physics is made anyway...
LFS popularity in each country
Nitemare
S2 licensed
i made a graph that represents how many people from each country have licensed LFS, relatively to each country's population...

numbers mean percentage of licensed racers divided by percentage of world's population...
sadly there are no exact numbers on lfsworld as how many licensed races there are, so no more meaningful numbers are available... but i think it still gives quite a good idea about popularity of lfs in the world... looks like LFS is big in scandinavia...
Nitemare
S2 licensed
thanks, i'll instruct racers to pit-out sooner
Nitemare
S2 licensed
Quote from tristancliffe :Yeah, but A1GP is filled with second rate drivers (still better than me though). Only 3 or 4 of the drivers are any good, and half of those are in crappy cars.

well, if you saw a last race in sepang, drivers were overtaking in places where f1 cars couldn't even get close to each other...

and a battle for first place in sprint race... when was the last time you saw an f1 car following a car ahead so close?

problem in f1 is that drivers most of the time cant even try to overtake...
Last edited by Nitemare, .
Nitemare
S2 licensed
i agree that banning wings altogether would be the best idea - apart from better racing, it will lead to developments in mechanical grip, which is more useful in real life than playing with winglets to gain bit more downforce...

..but a simple solution would be to reduce rear wing size, and allow diffusers...
look at a1gp, there's a lot of overtaking, without a need for stupid split rear wings..
Nitemare
S2 licensed
Quote from Nick_ll :In F1 it's AFAIK only because of heat that they back off.
They can't drive very very very close to a car in front because the FRONT washes out because of dirty air. What they loose it FRONT downforce and therefore aero balance. Not all sorts of downforce front and rear whatsoever.
Also it might be good to note that the air density is lower when air is at higher temperature and therefore if I'm not mistaken, if you follow a hot car with a car powered with an internal combustion engine, you will most definitely loose power, which is why clean air is better.

i'm pretty sure that heat has a negligible effect in this case...

the f1 car has huge tyres and rear wing, and that creates an area of low pressure behind the car, that extends qute far behind it... if the other car follows very closely, it loses downforce on both wings - but much more on the front one...

this is why FIA proposed a new rear wing for f1 in 2008, to reduce the low pressure area behind the car, and thus (hopefully) introduce more overtaking
...on this graph you can clearly see low pressure area behind car:


currently the aero model in lfs is not wrong, but very simplified... slipstream reduces overall downforce, not front / rear separately... but i believe that it will be sorted out for s2 final..
Last edited by Nitemare, .
Nitemare
S2 licensed
i tryed the demo, put it to realistic mode and i didn't like it.. it felt wrong..

so i looked to the .PLR file, and noticed, that even in "realistic" mode some driving aids are on!!! (so much for the "racing simulator" )

anyway, i disabled all i could in .PLR, and tryed few laps, and handling is much better... a feel for a car is a lot better than in GTR, and i dare to say that realism is on LFS levels... only forcefeedback could be better..

also a choice of cars in demo is good, each of them has very different driving characterstics...

file can be found here: C:\GTLDemo\UserData\<Username>\<Username>.plr

and the edited values...
[ DRIVING AIDS ]
Steering Help="0"
Steering Help Functionality="1" // 0 = new help, 1 = new help + grip, 2 = original, 3 = original + grip
Throttle Control="0"
Brake Help="0"
Antilock Brakes="0"
Spin Recovery="0"
Invulnerability="0"
Autopit="0"
Opposite Lock="0"
Stability Control="0"
No AI Control="0" // AI never has control over car (except autopit)
Pitcrew Push="1" // When out of fuel in pitlane, allows pitcrew to push car (use throttle and gear selection to direct)
Corner Markers="0" // Show corner marker icons to indicate corner severity and suggested gear
Pit Direction Indicator="0" // Show arrow icon to indicate direction of pit exit
Pit Spot Marker="1" // Show marker to indicate corner pit spot location
Auto Clutch="1"
Auto Lift="0" // Whether to automatically lift with manual shifting but auto-clutch (non-semiautomatic trans only)
Auto Blip="0" // Whether to automatically blip with manual shifting but auto-clutch (non-semiautomatic trans only)
Shift Mode="0"

..Autopit will reset to "1" after each start
Last edited by Nitemare, . Reason : added info about plr file
Nitemare
S2 licensed
you dont need to zerofill the byte array, because it is filled with zeros by default...

and i recommend that you dont use one try - catch block.. there is a lot of things that can go wrong and throw an exception but from some exceptions you can recover without the need to restart the program..
for example:
public InsimInit(String password, int port) throws SomeException
{
DatagramSocket dsocket = null;

// Prepare the 24 byte array and zerofill it.
byte[] message = new byte[24];
for(int i=0; i<message.length; i++) message[i] = 0x00;

// Fill it with initvalues
message[6] = (byte)41; // Flags
message[7] = (byte)1; // NodeSecs
System.arraycopy("ISI".getBytes(), 0, message, 0, 3);
System.arraycopy(password.getBytes(), 0, message, 8, password.length());

// Connect and send
String host = "localhost";
try{
InetAddress address = InetAddress.getByName(host);
DatagramPacket packet = new DatagramPacket(message, message.length, address, port);
dsocket = new DatagramSocket();
dsocket.setSoTimeout(TIMEOUT);
try{
dsocket.send(packet);
}catch(IOException e){
e.printStackTrace();
//maybe some code to try to send the packet again a few times...
//if it still fails throw exception
throw new SomeException();
}

// Wait for answer
byte[] buffer = new byte[2048];
while(true)
{
DatagramPacket answerpacket = new DatagramPacket(buffer, buffer.length);
try{
dsocket.receive(answerpacket);
System.out.println("Receiving: " +
new String(buffer, 0, answerpacket.getLength()));

// Reset the length of the packet before reusing it.
answerpacket.setLength(buffer.length);
}catch(IOException e){
e.printStackTrace();
//again, try to do something with it..
}
}
}catch(UnknownHostException e){
e.printStackTrace(); //bad address? ask for a different one...
}catch(SocketException e){
e.printStackTrace();
}finally{
if(dsocket != null)
dsocket.close();
}

}

and i recommend that you use an object for each packet, that way it will be more transparent and universal.....
something like this..
interface InSimPacket
{
public byte[] getBytes();
}

....

class InitPacket implements InSimPacket
{
private final byte[] ID = new byte[]{0x49, 0x53, 0x49, 0x00}; //ISI0
private short port;
private Flags flags;
private byte nodeSecs;
private String admin;

public InitPacket(short port, Flags flags, byte nodeSecs, String admin)
{
//set up class properties...
}

public byte[] getBytes()
{
//convert all properties to byte[] and return
}
}

...

private void sendPacket(InSimPacket packet)
{
...
byte[] message = packet.getBytes();
DatagramPacket packet = new DatagramPacket(message, message.length, address, port);
...
}

...

sendPacket(new InitPacket(port, flafs, nodeSecs, admin))

i haven't tryed to make an insim app yet, so i can't help you with particular details, but as soon as i finish my tourney system, i will try to write something too...
Last edited by Nitemare, .
Nitemare
S2 licensed
okay, i modified parser to use your "magical offset", and it works most of the time, but fails in one particular replay..

there are 20 players, so the block of data that follows the offset should have size of 20 * 335 = 6700 bytes, but it has only 6646 bytes

replay is here: http://nitemare.misto.cz/SROctaviaCup_d2_z2_race1.mpr (6.8 MB)

and parser source here: http://nitemare.misto.cz/MPRParser.java
Last edited by Nitemare, .
Nitemare
S2 licensed
last race in sepang was by far the most exciting one yet! and a LOT more exciting than f1...

...and what a great performance from Tomas Enge! :trophy_br:
Nitemare
S2 licensed
Quote from the_angry_angel :Are you trying to get the players with results or all players?

If you want players with results, I suggest re-reading the MPR format, as all the names are in the data block; http://www.liveforspeed.net/?page=MPR

i.e. offset 80 to 104 is player 1's name then + 81 to get the next offset boundary, for each number of players listed in the MPR header.

Edit:
As a suggestion, possibly the flags represent the flags allowed - although we cannot alter this at this stage.

yes, but in the header there are just nicknames, not lfs-usernames...

right now, i find the usernames in mpr like this...
somewhere in mpr file is a block of data that consist of:

num unit offset description
--- ---- ------ -----------

CONNECTION INFO : size 61 bytes per connection

2 byte ???? always 0x3C07
1 byte 2 connection id? (host has always 0x01, and is always first in the list)
2 byte 3 ?? (host has always 0x00)
24 char 5 player name
8 char 29 number plate
24 char 37 user name

in s2, this block begins on a different offset in each mpr file, and i didn't found something like a pointer to this block yet...
so i just search the file for a sequence of bytes 0x3C, 0x07, 0x01, 0x00, 0x00 to find the block... it seems to work every time...

btw if someone wants a source for mpr parser in java, i can post it..

Quote from ikkah :Hmm, OK, did a little bit of research, those look like car bits. Allowed cars on that server, that is. S1 cars are listed just above the rules bits, I guess the rest of the cars are in the same order as everywhere else, f.e. LFSWorld.

yup, it looks like car bits.. thanks!
Last edited by Nitemare, .
MPR - content of "flags" bytes?
Nitemare
S2 licensed
i'm trying to get as much data from mpr file as possibble.. and i found two undocumented integers... rules and flags
...
1 int 12 rules : -
1 int 16 flags : -
...

definition of "rules" can be found here, but i can't work out what does "flags" mean...

also i would like to know if there is some reliable way to find a list of usernames, other than searching the whole file for a specific pattern...
Nitemare
S2 licensed
yup, very nice video! great work, Jet!

i don't think the choice of the music is lame... it's not the best song, but it fits to the mood of the video just right...
Last edited by Nitemare, .
Nitemare
S2 licensed
i agree!

there should be another option in the pit menu.. even better it would be if you could choose what you want to repair... body, suspension, or both..
Nitemare
S2 licensed
imho the most important aero features that affect handling, and should be implemented in lfs are:

- car body generating lift
- downforce/drag affected by distance of wing/diffusors from ground

for damage affecting aero, i guess we'll have to wait for the new damage model first..
Last edited by Nitemare, .
Nitemare
S2 licensed
teh Carl roxx0rz !!!!!1!!1!11!1111 :bananalla
FGED GREDG RDFGDR GSFDG