The online racing simulator
Quote from Scawen :Well I have not experimented yet so don't really know. It may depend on the materials.

Finding the light intensity at the vertices can give some good results, I guess depending on exactly which type of object or material you are rendering. For example, a windscreen is a nice smoothly curved surface and I'm guessing that lighting at each vertex (to find the fresnel value, colour and so on, like it has always been but with some more detail in the vertex shader) and interpolating those results over the polygons will look just as good (or very nearly as good, so much as to be undetectable) as actually interpolating the normal over every pixel, then doing a complicated fresnel calculation involving square roots (normalize) and powers (fresnel) on every pixel. One clearly uses many times the number of instructions than the other. When I see sqrt and pow in a pixel shader, I'm nearly falling off my chair with the shock. But maybe I am just a relic from the 80's.

I understand your point now. Of course, if you can achieve the same effect using the vertex shader and not wasting computing time by doing all this stuff in the pixel shader, then why not.

Quote from Scawen :You are saying that screenshot is "better"... but... better than what? We need to compare the "same" lighting effect, in one case optimised by doing most of the calculation at the vertex, and in the other, doing all the calculations at each pixel.

I meant it looks better with the specular lighting than without. But again, if the same effect can be done per-vertex only and it looks reasonably good, why not. I guess it also depends on the poly-count of the car models.
Quote from Scawen : We need to compare the "same" lighting effect, in one case optimised by doing most of the calculation at the vertex, and in the other, doing all the calculations at each pixel.

Here we go



By the way, a specular reflection on Flame's screenshot was created using vertex normals

Quote from Scawen : When I see sqrt and pow in a pixel shader, I'm nearly falling off my chair with the shock. But maybe I am just a relic from the 80's.

I thought that you care about optimization, but I even could not imagine that so much
Quote from Keiichi_Tsuchiya :Here we go

Good example, but extreme. An object with great curvature, low polygons and a very strong specular reflection. A good demonstration though, but doesn't disprove the principle of calculating things at the vertex ready for interpolation when possible.

Quote from Keiichi_Tsuchiya :I thought that you care about optimization, but I even could not imagine that so much

This is all new to me, I don't have a well developed intuitive feeling for how much you can reasonably do in a pixel shader.

My approach will be gradual experimentation, to get some reasonable results written in ways that look efficient to me, to improve and refine later. There is a lot to do to help get the Westhill version out, so I can't focus on a great deal of shader development at the moment.

This was just done as my first use of HLSL but has taken on a life of its own. All very interesting though...
Quote from Scawen :...This was just done as my first use of HLSL...

I can't imagine what you'll be able to produce, when you'll start dedicating some more time to it
Quote from Scawen :So I went on a long mission into tyre physics.

thank you, thank you, thank you. where other developers would have decided the time investment was too much or would have given up after x time without the result they wanted, you remain obstinate in achieving what will push simulated driving forward.
Quote from Scawen :No, it is the same story ever since we delayed the Scirocco. The problem is the tyre physics. It was impossible to make the Scirocco handle well with the current tyre physics, if we used realistic suspension settings. So I went on a long mission into tyre physics. That is the only reason we have not released the Scirocco yet, and that reason has not yet changed.

We wanted to release S3 after the new tyre physics (and Scirocco) but now I don't think that is important any more. If we can get some S3 content ready before the tyre physics is finished, then it can be released, even without all the S3 things we would like to release eventually. So we'll see.

Thank you.


Quote from cargame.nl :Oh! I am not saying it's not fun! I enjoyed racing it with Assetto Corsa but not all the time, not every day. It gets boring quickly, it's three times bigger then Kyoto Long (KY3), with KY3 there are already difficulties to get it popular. It's takes too much time to do one lap.

I would say an open mod is sufficient enough but we are a bit far away from that I am afraid; an own track editor.

Because KY3 is not the Ring; it wouldn't "get boring". Because, like others said, enough people love the Ring. If it's released with something major like tire physics or novel like mountain track(s) (partly or completely steep like Pikes Peak or Fujimi Kaido in Forza), LFS would get some serious player exposure.
With all due respect to Scavier, Spa is another very long track, that proves the point. Not that original LFS tracks couldn't be that good. Just that KY3 isn't, as is, hence flawed comparison.
Quote :And as it's incompatible there is a possibility of changing a couple of other things, which ideally should be ready and testable in the first test patch. E.g. an InSim packet to reset a car at a position and direction (with or without damage repaired) and a new bit in the Autocross object creation InSim packet to allow objects to stay exactly as positioned, without lowering themselves to the ground.

A few additional suggestions I would like to make in the hope that the new InSim features mentioned above will be implemented:

ISP_AXM:
• Ability to add 2 (or more) autocross objects at the same position (x, y, z coordinates) if (and only if) the object (index) is different. It can be useful to be able to stack up objects vertically using the same coordinates or to add several different objects at the same position.
• A new PMOAction to move objects instead of adding/deleting them
//nitpicking
• Ability to setup pitch and roll of an object (it was discussed briefly in 2012 if my memory serves me right, Scawen mentioned that it would require a lot of work)
• Improve precision of ZChar & Heading of objects (granularity)


Quote :// Values for PMOAction byte

enum
{
PMO_LOADING_FILE, // 0 - sent by the layout loading system only
PMO_ADD_OBJECTS, // 1 - adding objects (from InSim or editor)
PMO_DEL_OBJECTS, // 2 - delete objects (from InSim or editor)
PMO_MOVE_OBJECTS, // 3 - move objects (from InSim or editor)
PMO_CLEAR_ALL, // 4 - clear all objects (NumO must be zero)
PMO_NUM
};

ISP_RCP (ResetCarPosition):
• Ability to choose to reset the car the player in question has selected in the garage at a specific position instead of specifying the car to reset.
• Ability to choose to disable the ground level check when you reset the car meaning that you can reset a car somewhere in the air. The idea is to be able to reset a car on a ramp for example but I suppose the LFS physics won't like this (?).

Quote :struct IS_RCP // ResetCarPosition
{
byte UCID; // connection's unique id
unsigned Car; // car to reset (if not set choose car selected in garage by player, if no car selected in garage discard packet)
short X;
short Y;
byte Heading;
char Zchar; // if set discard the ground level check
byte Flags; // repair car or not, ground level check on or off
};

struct IS_RCP // ResetCarPosition
{
byte UCID; // connection's unique id
unsigned Car; // car to reset (if not set choose car selected in garage by player, if no car selected in garage discard packet)
short X;
short Y;
byte Heading;
char Zchar; // if set discard the ground level check
byte Flags; // repair car or not, ground level check on or off
};

Cars are not related to UCIDs, but PLIDs
And I'd prefer UINT for position, as well as Heading with higher fidelity. Short will only get you to resolution of one meter, UINT will be probably better in case you want to reset whole grid of cars to some other place (custom starting grid)
Quote from Breizh :
Because KY3 is not the Ring; it wouldn't "get boring". Because, like others said, enough people love the Ring.

Love is not enough argument.

Racing is about racing right? racing means competing with each other, not doing some hotlaps online driving on your own. People tend to disconnect if they make a mistake and can't catch up anymore and/or cannot compete with somebody else on the track.

I have the same experience with KY3/FE4, I do some commentary stuff lately @LFS and on big tracks it gets very difficult to find the action after a while. And what happens if there is no action? It gets boring.

If I look at AC right now, this Friday evening. You know what on top of the list? Blackwood haha. And Malaysia/Barcelona (some custom tracks).. I just joined one of the few active Nordschleife servers and there you see some 7, 8 cars driving around.. Alone. They can't even see each other! Fun? Not really. For hotlapping yes, awesome, but serious racing no. Maybe with 64 slots and some league organization but I would suggest; don't spend too much time on it as developer other then some porting capability importing tracks from Rfactor.

Love makes blind by the way
Scawen, I'm not really technical, but rather practical, so here is a short list of things that are (seemingly to me) very simple (and seemingly practical) that could greatly improve LFS. They probably shouldn't be too high on the priority list, but these things I feel have decent support from more-or-less the whole community:

1. Larger Rallycross and Autocross on track "grids" - why limit the field to 24 or 16 when other tracks do have 32 grid slots. (I mentioned this already to support from you and a few other forum members)

2. Support for spectating/pitting/timing out and continuing race progress. How aggravating is it to do a 24 hour race and see the winner displayed as 24th 200 laps down because he timed out in the 12th hour of the race. Perhaps turning this feature on or off would also be a good idea. Many racers feel that endurance racing is LFS's biggest strong point, and this would only improve that. (PS: the driver who times out would be required to continue for race progress to be saved, so a teammate taking over would not be an option to escape time loss from a time out)

And, one NON-practical point:

Moving forward I feel that dynamic track surface conditions would be the best possible improvement to LFS's racing on all levels. Practice for 1 year and simply replicate on race day (because it will be exactly the same conditions) and you'll dominate. This means that those who haven't been around for over 6 or 7 years will always be behind the curve in speed and practice, and this drives away new comers with discouragement. If the track surface changed with traffic, temperature, weather, ect. it would constantly be a moving target, and this would encourage new comers to compete with the old "guard" of LFS, because they'd be more competitive in comparison.

I still feel that new content would be the best thing for the near future, but looking beyond that I think that from a marketing stand point dynamic track conditions is where the best improvement in profitability and quality of simulation is. Working on appearance is certainly important as well. I'd say go after the one that is easiest to complete, and I'm afraid the answer is appearance.
Quote from sicotange :A few additional suggestions I would like to make in the hope that the new InSim features mentioned above will be implemented:

ISP_AXM:
• Ability to add 2 (or more) autocross objects at the same position (x, y, z coordinates) if (and only if) the object (index) is different. It can be useful to be able to stack up objects vertically using the same coordinates or to add several different objects at the same position.

A quick look in the code suggests that you can already add objects in the same place as other objects. The only thing you can't do is have X, Y, and Index all matching. You can't do this in the in-game editor because of an intersection check, but with a packet it looks like you should already be able to... but I haven't tested so please do tell me if I'm wrong about that.

Quote from sicotange :
• A new PMOAction to move objects instead of adding/deleting them

But there is only space for one set of coordinates, used to find the object to delete, or to place the new object. A "move" function would need two sets of coordinates and that won't fit in the compressed structure. I think it's ok to send "delete" and "new objects" immediately after eachother, isn't it?

Quote from sicotange :
• Ability to setup pitch and roll of an object (it was discussed briefly in 2012 if my memory serves me right, Scawen mentioned that it would require a lot of work)
• Improve precision of ZChar & Heading of objects (granularity)

These would need bigger packets, the compressed ObjectInfo just can't take any more precision. I'm more interested in simply increasing the number of objects at this time. Don't really want to get into backward compatibility coding with incompatible files and so on, as I am already excessively overloaded with updates for this Westhill patch.

I seem to remember there is an unused bit spare though, to make objects not go to the ground (your original request).

Quote from sicotange :
ISP_RCP (ResetCarPosition):
• Ability to choose to reset the car the player in question has selected in the garage at a specific position instead of specifying the car to reset.

I don't really understand, can you explain as an example?

My original proposed packet "reset at (X, Y, Z, heading) with damage repaired yes/no" is supposed to be for a car that has already left the pits.

Quote from sicotange :
• Ability to choose to disable the ground level check when you reset the car meaning that you can reset a car somewhere in the air. The idea is to be able to reset a car on a ramp for example but I suppose the LFS physics won't like this (?).

I'll add this to consider it.
Quote from cargame.nl :Love is not enough argument.
Racing is about racing right?
... don't spend too much time on it as developer other then some porting capability importing tracks from Rfactor.
Love makes blind by the way

Of course you are mainly right...but if LFS could announce a track like the Nord. today the players would roll in pretty fast...along with their money.
More players will allow server owners to be more selective in the player choice...better player choice=better racing.

All highly subjective and totally off-topic now...
KY3 is, aside from the oval to track transition which the community has fixed, an absolute classic. It does need a quick car, like FO8 or these infernal GTs. Had one of my all time favourite races there - never more than 3 seconds apart from my rival for the win for over an hour.

Oh and that rejoin thing mentioned above would be marvellous as it would remove the nonsensical race order and blue flag scenarios. Perhaps even carry over the setup and damage from prior to the disconnect.
Quote from Storm_Cloud :
Oh and that rejoin thing mentioned above would be marvellous as it would remove the nonsensical race order and blue flag scenarios. Perhaps even carry over the setup and damage from prior to the disconnect.

Okay when you disconnect you must start the actual round from the beginning, but what when you press Shift+P or Shift+S. As an example when you chrashed in a public race ? Its like a greencard to crash without loosing the whole race
Quote from Storm_Cloud :KY3 is, aside from the oval to track transition which the community has fixed, an absolute classic...

I also like KY3 very much.
What do you mean by that (in bold)?
Quote from Ripley :I also like KY3 very much.
What do you mean by that (in bold)?

I think he means the famous "Boothy Chicane", which makes the original "chicane" entering the oval more chicane-ish.
Quote from Be2K :Okay when you disconnect you must start the actual round from the beginning, but what when you press Shift+P or Shift+S. As an example when you chrashed in a public race ? Its like a greencard to crash without loosing the whole race

Shift-P or Shift-S aren't disconnecting are they? If you choose to do that then you should be out of the race. You could crash and then pull the plug on your router, but that's why it would be good to carry over the damage and setup from prior to the disconnect. If you're already losing say half a lap by beginning again and you also have to fix damage before you leave then there aren't many situations where that would be considered an advantage.

Quote from Flame CZE :I think he means the famous "Boothy Chicane", which makes the original "chicane" entering the oval more chicane-ish.

Indeed. Definitely deserves the namecheck there.
Quote from Flame CZE :I think he means the famous "Boothy Chicane", which makes the original "chicane" entering the oval more chicane-ish.

this looks like a bit narrow (no overpassing at least), but better than the original one where we have to cut frenzy the corner ...
Quote from Flame CZE :I think he means the famous "Boothy Chicane", which makes the original "chicane" entering the oval more chicane-ish.

But...are you talking about a KY3 layout?
Sorry for my eternal noobiness.
Quote from Be2K :Okay when you disconnect you must start the actual round from the beginning, but what when you press Shift+P or Shift+S. As an example when you chrashed in a public race ? Its like a greencard to crash without loosing the whole race

im sure shift + s or shift + p reset your laps back to none laps finished so you end up behind by so many laps or at least a good distance
Quote :A few additional suggestions I would like to make in the hope that the new InSim features mentioned above will be implemented:

ISP_AXM:
• Ability to add 2 (or more) autocross objects at the same position (x, y, z coordinates) if (and only if) the object (index) is different. It can be useful to be able to stack up objects vertically using the same coordinates or to add several different objects at the same position.

A quick look in the code suggests that you can already add objects in the same place as other objects. The only thing you can't do is have X, Y, and Index all matching. You can't do this in the in-game editor because of an intersection check, but with a packet it looks like you should already be able to... but I haven't tested so please do tell me if I'm wrong about that.

My bad, you are right. You can indeed add 2 objects at the same place if the index is different. My suggestion is to make it possible to add objects with same index at the same place if and only if the height (ZChar) is different. At the moment you can't stack up objects at a perfect vertical angle (See screenshots below) because of the "Can't add : intersecting object" check.

Quote :• A new PMOAction to move objects instead of adding/deleting them
But there is only space for one set of coordinates, used to find the object to delete, or to place the new object. A "move" function would need two sets of coordinates and that won't fit in the compressed structure. I think it's ok to send "delete" and "new objects" immediately after eachother, isn't it?

Yes, that is what I currently do to move "groups" (patterns) of 30 (or less) objects. With the SHIFT + U editor when you select objects by clicking on the orange dot you see the objects selected and you can move them without adding or deleting them. Ignore this suggestion, it is merely nitpicking + I will have a hard time explaining what I mean exactly and why it could be useful


Quote :I seem to remember there is an unused bit spare though, to make objects not go to the ground (your original request).

I'm much more than satisfied if this can be done. My other suggestions are merely nitpicky. Although what would also be neat is if you can also make a new ramp object (a flat slab), it would complement the Ramp2 object nicely.

Quote :ISP_RCP (ResetCarPosition):
• Ability to choose to reset the car the player in question has selected in the garage at a specific position instead of specifying the car to reset.

I don't really understand, can you explain as an example?

My original proposed packet "reset at (X, Y, Z, heading) with damage repaired yes/no" is supposed to be for a car that has already left the pits.

I'm also slightly confused now. This packet can only be used if the car has already left the pits? In essence you choose to reset a particular car at a particular place for a particular player no matter if they are racing, idle on track, spectating, in garage, in pitlane or doing a pitstop. I suppose this can't be done easily?
Attached images
OBJECTS_VERTICAL_INTERSECT1.jpg
OBJECTS_VERTICAL_INTERSECT2.jpg
OBJECTS_VERTICAL_INTERSECT3.jpg
Quote from Ripley :But...are you talking about a KY3 layout?
Sorry for my eternal noobiness.

Yes, it's turn 13 at KY3 (see map).
Ok, thanks.
I got wich turn it was, but I was nonetheless confused, since you wrote:
Quote from Flame CZE :...which makes the original "chicane" entering the oval more chicane-ish.

That's rather the chicane exiting from the oval...
Quote from Ripley :Ok, thanks.
I got wich turn it was, but I was nonetheless confused, since you wrote:

That's rather the chicane exiting from the oval...

Yes, my bad, although the chicane can be used both ways
KY3R!
This thread is closed

Progress with the Westhill version
(525 posts, closed, started )
FGED GREDG RDFGDR GSFDG