Racer v0.8.35 released

Ruud

RACER Developer
After quite some time, here's an update. Still needs things worked out before v0.9 though.
Get it at http://www.mediafire.com/file/1kyapoz4xmbnnlh/racer0.8.35.7z

As for changes between this version and an upcoming v0.9, I expect only the audio pitch_scale to possibly change a bit in behavior (if at all), other than that the graphics are not likely to change anymore. I might have called this one v0.9.0RC1 but there's a few bugs (in Config.exe, and the menu selections) that are not too pretty (I need to remove some non-working items).

Notes:
- It uses the Lambo from Mr Whippy; I might not have had the latest version; this one gives a brake balance warning currently (admittedly a new feature)
- Next week I'll try and make a list of the things I still want to do for v0.9.

The changes:
- Pacejka window appeared single buffered in Windows XP, resulting in flickering.
- Added 2 pages to ^9 (telemetry) debug view; all possible and actually used view variables
- Added 'surface' group to logging (ASCII/RTD) with world surface intersection coordinates for all wheels (used internally for laser-scanned tracks).
- RTD logging of orientation is now done in Yaw/Pitch/Roll instead of the car rotation quaternion
- Timing has been restructured - only the multiplayer server now keeps track of time, to sync laptimes across multiplayer.
- Added 'fps on' and 'fps off' console commands.
- Added 'view <n>' command to set the view (normally changed with F1)
- Added the start of a 'system' of parameters & signals, which will give inside info on all kinds of parts. This will be useful
for external tweaking tools, and also internal ones. A generalized way to access parameters. Currently the tree is very
limited, and no external tools are available yet to tweak.
- Added 'system export' commands to export the system tree to an HTML file. Racer will open the HTML file after creation.
See also http://www.racer.nl/tutorial/system.htm
- Added 'set <path> <value>' to set a parameter in the system.
- Added 'get <path>' to get float parameter in the system.
- The 'graph' command now also accepts any parameter in the system; i.e. 'graph step 0 600 car0.engine.rotation_vel'
- Added 'camera <n>' command to switch cameras using a console command.
- Added 'fov <f>' command to set camera FOV directly.
- Added power steering curves for assist/friction/damping/spring (spring only for high-end platforms)
- Curved can now also offset all points
- GPLex dropped for now.
- Added alpha version of 3DS Max exporter (see max/ directory)

Enjoy!
 
Some cool stuff...

So I guess we can script some features and then script a console command to adjust them.

Ie, if we have a model move up/down at certain speeds for a wing on a car (911 Turbo for example), then we can also send a wing parameter adjustment via the console for now... nice.


I'm interested in doing some testing on the gfx system before it's signed off maybe. I'm finding performance quite slow and it'd be great to check everything is working as we expect it to before signing off on v0.9?
For example, I'm sure LOD's despite visually working (lod0_z=100 for example), turns the model off at 100m, but it doesn't seem to save much FPS. Is Racer still thinking about the model that it isn't drawing somehow? Do LOD distance checks cost us performance too?


I'll also check out movable objects again. On Elvington track I have about 300 cones which in the past worked fine, but in recent versions cost me about 75fps > 10fps, until I did a 'reload track' at which point the FPS returned to about 75fps... so maybe something in newton initialisation is still a bit suspect? Movables present on a track, even if they are not being touched, seem to cost quite a bit of FPS!

Hmmm

Lots of testing to come...!


I'll fix up the Lambo more for future releases. We might try get Cam's F458 in too, or replace the Lambo with it?


Thanks

Dave
 
Thanks a lot Ruud :)

How do we use the powersteering curves? I put them in the main car folder and tried a few combinations of having normalized and absolute factor curves, but without knowing what the values are measured in or what the procedure is... no success yet.

On cars with not even an empty elt0 tree defined in views.ini, the second page of Ctrl+9 crashes Racer immediatelly (I have some cars with no dials/view elements at all, they use an almost empty views.ini with only view0{} in them as a placeholder, just to clarify the situation Simply adding elt0{} in the view0 tree does the trick).

Pacejka player has been ignoring the a0 parameter for several versions now - you can click and select the tickbox, but the shown value doesn't change from the previous one and the slider/double click window are nonfunctional.

dof-fix.exe also doesn't seem to work - instead, it throws this error message in an endless loop: ** Error: DBitmapTexture:FromBitMap(): OpenGL error (1282): invalid process.
 
So I guess we can script some features and then script a console command to adjust them.

Ie, if we have a model move up/down at certain speeds for a wing on a car (911 Turbo for example), then we can also send a wing parameter adjustment via the console for now... nice.

On the note of scripts, could 'get local car' return the car Racer's currently focused on? Alternately, a new function that does return the car being viewed would be useful. When I'm putting scripts in car folders I'd like to be able to do something like
Code:
rcar $car = get scriptowner car
while 1 {
  if ($car == get view car) {
    paint "Diagnostic info for view car"
  }
  interrupt
}
Whereas currently I'm just painting this stuff for everyone, and then disabling it once the script works.
hO96u.jpg

Using 'get car id' to offset the paint commands, would be easier if I could say to only paint to views showing car #500 (get local car is always the car the player controls, even when they PgUp/PgDn to different cars)
p8VYV.jpg

So I'm viewing car #501 but local is still The_Driver.

It's not only useful for display purposes, either - if you write a script that takes key input (eg. to tune whatever's available on the system tree, turn on lights etc.) it's useful if you can run it on individual AI, not just the player car.
gmjEY.jpg

Key input needs to be protected by checking whether the scriptowner car is the same as the local car, otherwise all the trunks open at once. And if 'get local car' is used to determine which car, it'll always be the player car, no way to open the AI's trunks.



If anyone wants to try the script I'm using, here
This is in mazda_rx7\scripts\paint\paintcarname.rsx, so it's getting run for each instance of the rx7.
Code:
rcar $car = get scriptowner car
rcar $curcar = get local car
int $carid = get $car id
int $curcarid = get $curcar id
float $rpm = 0
string $output = ""
string $temp = ""
while 1 {
  paint "RX-7 Scripted Display" at float[2]{20,10}
  $rpm = get $car rpm
  //$output = $rpm + "rpm @ " + $carid
  $temp = $rpm
  $output = $temp + "rpm @ "
  $temp = $carid
  $output = $output + $temp + " "
  $curcar = get local car
  $curcarid = get $curcar id
  $temp = $curcarid
  $output = $output + "owns the script.  Local: " + $temp
  paint $output at float[2]{20,30 + ($carid - 500)*20}
  // set $car gear 2
  interrupt
}
Also, can't do string = float + string + int, have to separate it to string1 = float, string2 = int, string = string1 + string + string2. Which is the bulk of why it's so many lines.


Really looking forward to system integration, so scripts can tune the relevant values.
 
Hey Ruud, thanks for the new version!

Looking forward to getting dirty with it all today, I'm sure you're looking forward to the rest of the barrage of questions about to hit you.

Just quickly to clarify (since it doesn't actually say in the docs) in the tree (as I'm calling it...The PSystem export or whatever it's called) signals are simply readouts of what's currently happening correct? i.e. the downforce being created by a wing. That stuff we wouldn't really want to change anyway - we just change parameters?

Cool.
The tree isn't as extensive as I thought it'd be. Perhaps it's just the Lambo?

Looking forward to digging in. Just a quick thought, since 'system export' opens a webpage and switches windows wouldn't it be better to pause the engine straight after the export? What if you would like to have a readout while doing 300km/h? Sounds like a recipe for disaster to me lol

Thanks!
 
Has anyone tried the 3ds max exporter plugin?

The flag manager isn't showing my objects...am I missing a step? Even if I hit refresh it does nothing.

Nevermind. Must have been the x-form or something, exported to obj and re-imported and it's fixed now.
 
Thanks for the update Ruud, your tod is too bright so I use mine from last version. Tha Lambo generates Qlog error and the "generic suspensions" still is not working correctly.

A trailing link rear suspension with two mounting points forward of the wheel rotates about the center point of the mounting points. This bug has not been fixed and I complian about it every version.

All the script and other features that have been added are nice but please fix the generic suspension bug!!!!
 
Is the trailing arm issue really a bug, or just a lack of support for rotational axis different to those for suspensions that move about the vehicle centreline?

I've not really looked into them all yet, but it's not really stopping people releasing content... though I would like to see all those kinds of things featured, it's no different to me wanting pitch_scale adding per sample vs per sample set... it appears it might not happen for a while but I guess we just have to live with a lack of expansion of features?!

Also, lastly, perhaps it's something you could do via scripting? Stereo might be your man to talk to?


I've got a few updates to the Lambo to fix up the qlog's, I'll pass the files on to Ruud for the next release :)


Cheers

Dave
 
I don't believe there's currently a way to get suspension lengths with scripts, so that way wouldn't work. Haven't tried any more complicated suspensions cause currently I don't really have any vehicles that would make a good testbed for it, all the ones I've done used the same axis of rotation.
 
Mega-bodge but it'd work fairly closely visually, but use wheel load variable...

Get susp angle at 0 load, static load and at the bump-stop stoppage load, and then just interpolate between them the angle of the item in question!?

OK, not perfect, but for now you can have a play...?

V0.9 will never come if every feature has to be extrapolated out to cover all our artistic desires... I've been waiting for better optimum slip angle/ratio interpolation with load on the pacejka, but it's never come... we are still waiting for the audio beta stuff like throttle on/off and things to be fully finished up since 2003 haha!


What car is it you are working on anyway Boomer? I keep thinking about a really decent modern F1 race car, but I'm just not sure if the current Racer 'visual' suspension stuff is up to it!? Is it just suspensions with rotations off the cars roll axis that we can't do currently?


Thanks

Dave
 
It's support for rotaional axis different from those that use the vehicle centerline. In particular the hillman imp which I posted in the car thread as a wip. It's been a wip since about 2005 as I can't get the outside front wheel to lift off the ground in a turn as the real car will do. With the rotation of the trailing link the wheel lifts but then bunces up/down. Won't stay up. The file I posted doesn't have the generic suspension but I do have one that does.

Thanks for the comments everyone. All the bugs will be fixed someday, hopefully!
 
With the IMP suspension kinematics, you may have issues even if the graphic of the arms look good, basically because all suspension is still infinite length double wishbone...

You should be able to get a front wheel lifting though, quite easily... with the right set up of course!

Dave
 
Hi, the game crashes when I press Ctrl+0 and there isn't any debug data onscreen.
QLOG says:
Code:
Wed Sep 28 13:39:48 (INFO): [racer/1028] Crash detected - attempting to recover some data before displaying the crash dialog
Wed Sep 28 13:39:54 (FATAL): [racer/1028] Exception 0xC0000094, flags 0, Address 0x0046AB19
(this dialog text is stored in QLOG.txt)

OS-Version: 6.1.7601 (Service Pack 1) 0x300-0x1

0x0046AB19 d:\source\trunk\dev_racer\src\lib\rdebug.cpp (line 164): RDebugHandleKey()
0x00403328 d:\source\trunk\dev_racer\src\mrun.cpp (line 716): rrGameEvent()
0x00537673 d:\source\trunk\dev\src\libs\license\qapp.cpp (line 932): QApp::Run1()
0x00403ACB d:\source\trunk\dev_racer\src\mrun.cpp (line 2040): Run()
0x00401534 d:\source\trunk\dev_racer\src\main.cpp (line 241): main()
0x004015A3 d:\source\trunk\dev_racer\src\main.cpp (line 248): WinMain()
0x0055DD7B f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (line 263): __tmainCRTStartup()
0x76F8339A [kernel32]: (filename not available): BaseThreadInitThunk
0x77A99ED2 [ntdll]: (filename not available): RtlInitializeExceptionChain
0x77A99EA5 [ntdll]: (filename not available): RtlInitializeExceptionChain
 
Tried to make some cones/brake markers moveables with tracked according to the instructions dated June 5, 2011 which states that the flag= will be 1024.

It was flags=1030!!!!! Now that's a bug! Also throws a Qlog error!!! Needs fixing.
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top