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)
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...
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
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..
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)
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
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 )
..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...
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...
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..
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..
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
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 } }
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...
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..