Racer v0.8.29 released!

Ruud

RACER Developer
For a happy New Year, v0.8.29 ;)

Get it at http://www.racer.nl/download/racer0.8.29.zip (75Mb)
** BEFORE using, set racer.ini's mastervolume to 255 to get a bit of sound

Changelist:
- Added surface 'forbidden' field (in special.ini); if set to 1 (default=0) it will reset your
car to the road if you set racer.ini's assist.time_allowed_offroad. See http://www.racer.nl/reference/tracks_surfaces.htm
- Car and track version checking is now updated to '090'. If your track/car doesn't match this
compatibility info, you'll get a warning in QLOG. All content must be updated!
- Autoclutch RPM now only really hunts for max torque in 1st gear. Other gears are the old way (more subtle).
- 'Ini' tool can now modify references ('ini wheel0.pacejka pacejka_front' for example).
- Clutch mechanism revised since some clutch-controlling subsystems (gearbox/anti-stall/controls)
would not mix correctly, giving hard jerks when shifting up/down.
- Added dbg_car.max_brake_reduction (=0.2) which determines the minimum brake torque reduction when wheels stop spinning.
- Added car.ini engine.launch_control to specify autoclutch_rpm=0 behavior in 1st gear.
- Added X-tree shaders for nicer X-tree shading, see http://www.racer.nl/tutorial/xtrees.htm
- Cg parameters Kd, Ka, Ke and Ks (diffuse/ambient/emission/specular) expanded to pass RGBA instead of just RGB.
Not used in the Cg shaders yet though; the use is a bit unclear still.
- Minimap painting was bad when car select screen was called first. Same for mirrors.
- Minimap paint could cause statistics paint to become transparent
- Added 'graph step 0 1 clutch' option to visualize clutch behavior.
- Wheel heat shader gives more light
- View elements get lit at night.
- panorama_f.cg had a syntax error.
- Just loading a controller profile would save it if controllers were missing.
- Newton.dll is back, since that got rid of NaN errors when colliding cars with the track. It's also Newton 2.29 now.
- Added 'timing.pause_every_step' to optionally step through each iteration
- Fixed a bunch of replay sound issues (engine/horn/indicatorLeft/indiRight/hazard). Replays are now definitely
incompatible with older replays; also may change before v0.9 comes out to fix further things (gearwhine?).
- The NoCG version was giving a lot of QLOG warnings.
 
I just did an interesting experiment on Mugello, I'm trying to get an idea of what affects FPS. I made a test track shader that only used standard_f/v.cg. Compared to the proper shader, I got an FPS increase of around 15~30 FPS (If anyone wants a copy of this test shader to try PM me).

I'm also going to make another two shaders, copies of the original full track.shd & the test one mentioned above, but replace every texture with one texture file. Then I can try using different texture sizes to see what effect this has on performance as well.

I'm also thinking I could use the one shader with one texture version and change the shader to singly use bumpmap or other shaders for everything, then I can see what impact various shaders have on fps using standard_f/v.cg as a baseline.

Anyone else think of any other tests I should try while I'm at it?

One other question for Ruud or Mitch, is using texture.max_wid/hgt & texture.quality the same as physically reducing the texture sizes manually (in PS or other), or does it have some sort of FPS overhead?
 
There is a huge FPS improvement you should be able to find on Mugello.

I'm not sure what is slowing it down so much for you, but something in there is hurting FPS big time.

I just reduced textures down, mainly the 2048 ones, to 512, and the track still did 35fps at the s/f line...

That said, there are plenty of big textures in there that seem a waste, you either get nowhere near stuff for it to need to be that big, or it's just repeat data in the texture... hmmmm... the rumble strip ones for example, have very little real detail. Not so bad on a big gfx card and one car, but I'd not want to take 4 different cars around there on an older system for example :D


Hmmmm... I'd try turn off the wavy tree vert thingy and see what happens. All those vert transforms on all those objects might be hurting fps?

Dave
 
Ruud, is there any reason a minimap and splines might not work for AI recording?

They are working fine for driving on, or not with them turned off (use mesh hits), they are working fine for resetting to the track too.

However, my minimap isn't there, and the car position icon is right at the edge of my screen and only rotates. No map is visible.

I have 1750 splines, track is point to point, re-created in latest trackEd just now, and still no minimap.

As said, everything to do with them works from a physics POV, the AI can see them and drive along them if I just take one from some other track, but the minimap and AI recording don't seem to work... hmmm...
Even if I close the loop by putting the 1st spline entry at the end and amend the spline count details as necessary, it's still doing the same :(

Any ideas anyone?

Dave
 
Dave, its the cloud shader, try commenting out cloud_dome from geometry.ini, I get extra 30fps just by doing this.
The tree anim shader only accounts for 5~10fps on my system; I feel the tradeoff for the trees movement is worth it.

Clouds shader obviously need some optimisation; I want the clouds to cast shadows as well at some point in the future; the clouds appear to be in a flat plane, not following the curve of the dome mesh; and I don't like that I can only get white clouds out of this shader as is.

I also played around with various shaders on mugello with various texture sizes, using only one (or two depending the shader tested) for the whole mesh, I discovered that texture size doesn't really matter for my system, I got around 2~5% decrease in fps between using 512px & 2048px textures. The difference between shaders themselves, ie using standard_v/f for every material with same texture; then using dyn_bump or standard_detail instead of standard_v/f, was negligible.

I'm posting this here & not in the Mugello thread cause I thought the info was generally interesting, not just Mugello specific.
On a reasonably current PC (PhenomX6, 8GB ram, GF GTX460) Texture size doesn't seem to affect fps, and the amount of poly's u can get away with is a lot higher than previously.

Ruud, can we have some way of specifying the material used for movable's collision hull? I can't seem to swap the materials order around, and zmod can mess up the materials order at times.
 
Hmmm, clouds shader eh :D

Will try that tomorrow.

What kind of percentage improvement is it... and what method are you using, basically a re-tweak of the flag waving shader technique?

As for textures, as much as I understand gfx cards can handle it, ultimately it's still not ideal to waste any texture space or optimisation methods, or use extra shader passes if it's not needed. I'm getting great results here with bigger textures, but I'm asking myself if I really need them that big... or am I better making them smaller, then adding MORE detail elsewhere to add details that I hadn't even considered before... if that makes sense :D

Not saying you are not going to do this, but it's just nice to remind ourselves (and all those reading etc) that optimisation is always important, even if right now in isolation their FPS are good...
If a pixel never gets to 1:1 on the screen in normal play, then it's probably a waste, and it's ultimately limiting some older machines from a good FPS for no real reason... or, eventually, it's going to limit us on mega power machines from having more than we could with regards to cars on track etc, or nice things like full screen motion blur, or improved CSM shadows etc etc :D
Or, worse still overall, we could be adding even MORE detail and quality into the work we do, but are wasting the potential of the assets we through in the mix.


I'm still surprised for example, how good Stecki's old cars look with new shaders etc. It just shows that you can either get maybe 3x more quality with the same poly/tex count and overall FPS cost if you use them well, or on the flip side, get the same detail level, but get 3x more FPS, 3x more people playing online, or 3x more backwards compatibility for users with older machines.
The only real cost is time spent authoring and coming across as a tight git on forums when you tell people to start nesting textures more, or use smaller ones hehe :D

Dave
 
I think that texture size is dependant on your GPU's memory, speed etc. Once the textures & everything else don't fit into local memory, and things need to be swapped across the pcie bus (or eeek! the AGP bus) fps verges towards woeful.
Then again, it is easy to reduce texture size with Raven if u think it'll helps fps on your PC. I'm more inclined to supply larger textures, and let the end user decide if they want to reduce them, or limit size.

Currently released Mugello Cg was more an experiment on how far I could go with poly's & Cg to find the boundaries on my PC. I haven't tried to optimise anything in it yet, its still in heavy development mesh wise, it doesn't make sense to yet. I released it to share some extra content that the community is sorely lacking, and spur some interest and more development from other people, when they can see what I've done, they can do better.
I'm no modelling guru, others can undoubtably do much better, but for now I/we are the few that have got our brains around some of it enough (again!) to do something with it. I thought I'd share some practical experiments.

At least you didn't wholly go over to the R' side Dave lol!
 
I only know web languages ASP & PHP, otherwise I'd have done it ages ago myself. PHP could be useful especially as it could be platform independant, but everyone having to install PHP just to use a Racer front end's a little over the top I feel.

More info camsinny? what language are u using? Maybe open a thread up somewhere, surely someone here would be able to add some input?
 
Tracked is broken, doesn't work right as I've posted in the past. Ruud, Please fix.

Ai could possibly use the car null point for location and then we'ed be able to make the ai run anywhere we want and only use splines for the minimap.
 
My interpretation of that is
Using the car's null point current position as a reference point for car location in world coordinates, AI could record world coordinates, heading, speed etc, instead of recording that using splines as the coordinates. I think the main point is using WC instead of splines, then AI's not limited to running on splines only.
 
Thanks DavidI,
The cars null point is a simple x,y,z coordinate and doesn't have to be calculated from the splines to get an x,y,z location as is the case now.

The cars null point won't change unless the car maker changes it, logicaly it sounds to me like an elegant solution for having crowned roads etc.
 
The whole splines/AI thing is a tough one.

I've generated a second loft of my course, a bit wider, and equally spaced polygons, much lower density, to smooth out the AI pathing and allow the cars to run a bit wide on corners etc.

In theory now, you could do the AI on Dunsfold and have it overlap and have nice wide splines cutting the corners etc, with different AI cars taking different lines.

The best bit with splines I guess is that for overtaking and such, the cars need to know the limits of a track/course, so if there is a solid wall, they need to have splines stop before it... just having a single path in space without constraints might make AI massively unreliable on a circuit like Monaco or such like.


I think splines are good now they can take a back seat and be used just as a guide for the AI pathing, cameras, mini-map etc etc... and not the physics.



Just I'm struggling making mine work right now haha :D

Minimap no worky, nor does AI recording, everything else seems to work ok... hmmmm

Dave
 
In Broken Springs track, I want to have a carpark level for example, that has an entry & exit point, but can have multiple paths from entry to exit. Currently, I've just been laying the splines across the whole carpark level, and thru any poles, gutters, or barriers that are there. This of course leads to some strange situations where u can reset inside a pole or object in certain places, and ai cars overtaking into poles & gutters etc.

The other track I can think of immediately that needs some sort of split spline system is our much worshipped 'Ring. There's that one split corner...

How does this fit in with what's changed/changing?
 
Currently released Mugello Cg was more an experiment on how far I could go with poly's & Cg to find the boundaries on my PC. I haven't tried to optimise anything in it yet, its still in heavy development mesh wise, it doesn't make sense to yet. I released it to share some extra content that the community is sorely lacking, and spur some interest and more development from other people, when they can see what I've done, they can do better.
I'm no modelling guru, others can undoubtably do much better, but for now I/we are the few that have got our brains around some of it enough (again!) to do something with it. I thought I'd share some practical experiments.

At least you didn't wholly go over to the R' side Dave lol!

I agree we need to test and experiment to see what is the best way of doing things first (90% of what I do is doing that :D ), just trying to be the devils advocate... :D

I was inspired by Stecki's work years ago, and still draw inspiration from it today. It was good then, and is still good now, irrespective of texture size or poly numbers... that is because it was really well polished :D
I've released a few average pieces of work, but was never really satisified with them. It's good because they have been enjoyed, but I'd always say they could be much better :D


My main jist I guess is that we can always have more for less by being better with our consumption and planning! If we have the motivation or time to do that, is another thing...

But like you, I am realising a track is a LOT of hard work... just Soooo much to do and think about :D

Dave
 
In Broken Springs track, I want to have a carpark level for example, that has an entry & exit point, but can have multiple paths from entry to exit. Currently, I've just been laying the splines across the whole carpark level, and thru any poles, gutters, or barriers that are there. This of course leads to some strange situations where u can reset inside a pole or object in certain places, and ai cars overtaking into poles & gutters etc.

The other track I can think of immediately that needs some sort of split spline system is our much worshipped 'Ring. There's that one split corner...

How does this fit in with what's changed/changing?


For Broken Springs... I think you'll have to always have the AI follow a certain route, for now.
If you use the full deck width, you may have to set no-overtake in the spline entries around obstructions, so the AI follows the path you set (which should be away from pillars etc)
Warping inside a pillar, hmmmm, bad news :D

For the Ring, that part is easy, just have the splines fill the width, and go from inside edge to outside edge... they will naturally have a lean to them. That should work fine I think... warping might be an issue if the splines deviate too much vertically vs the surface, but if you angle them from inside edge at ground level to outside edge ground level, it should balance out ok :D

In theory, you could make splines 50m wide vs a 10m track, and then only ever use the central 20% of the path, but cover off things like pits etc, with a fixed spline path that ALL cars that use pits will follow, for example :D


AI for Broken Springs will always be limited if you want multiple courses. I've not seen any other game that can do what you want yet I don't think. I'm not really sure of an elegant method.
I guess mainly as well, it's a track that would be most enjoyable with other real people online :D

Dave
 
The 'Ring corner is flat/incline/flat (like a 'z' stretched sideways sort of) from memory, if it wasn't 'Ring, and only Broken Springs I wouldn't bother bringing it up (ok yes I would ;) I have similar issues with Carnage, but thats another story yet to be started.

You are right, Broken Springs was more intended multiplayer (& learning aid) or single hot lapping than AI, but then it does show up the old spline systems limitations, and also AI's limits. AI still doesn't like tight corners, it reads too far ahead at low speeds.

One thought on the resetting, could we be able to specify a reset/spawning point seperate to the AI track, maybe an offset, or just a flag in special.ini that changes the AI spawn point to be the AI track?

I was able to get a reasonable looking & handling Gravedigger (within current Racer limitations) up & running in about a month. Broken Springs was about 9 months work, not including previous wip tracks I made to test the unusual track surfaces I'd created to test various concepts I'd need for the different bits of BS.

Glad u'r appreciating the time & patience required making drivable dirt. Track creation isn't necessarily harder or easier than car modelling, it's just more time consuming and needs a different build logic to a car. Both are equally hard to get 'right', Stecki was never happy with his finished products either I remember. There is hope for us all in that imho...
 
I had a crash. Using a PS3 Six Axis controller, MotioninJoy drivers, I clicked thru to the force feedback options and tried to move the first slider, then got the crash box with a load of gibberish in it.

I noticed I wasn't getting any rumble, it's emulating the xbox360 controller, and decided to poke some options, and POW! right in the kisser.
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top