The online racing simulator
New Technology Support
2
(44 posts, started )
First of all, it's spelled fizzics.

Secondly, I barely understand what great things this does, I think the truck blowing up looks overdone, but after all, I don't know how a real explosion looks like. About those libraries, I would love to see a library for materials. Wouldn't it be grand to just model something, slap on the color you like, give it a flag or whatever, and it shines or doesn't shine like it should do. That's what keeps me away from modeling too much... Texturing

Oh yea, I'm not really pro-updating LFS to support all this fancy stuff. It'll just make it a tool for hardware developers to get you to buy better stuff every time something new comes up. Buy a computer today, dump it tomorrow because there is a new game.
/me wants too (as I said this in about 100332 threads)
#29 - Jakg
nVidia will implement PhysX using CUDA - imo all those PPU cards are about to become useless.

WE NEED MULTITHREADING!
#30 - Woz
Quote from Jakg :WE NEED MULTITHREADING!

+1

Dual core is common and 4 core cpu's starting to hit the market, more than enough power to do what is required. Also if you make your app multi threaded it will scale to use the cores that are available, not the case for the PPU.

Its just pointless for any developer to support PPU's IMHO.

In a years time people will all but forgotten about them
As long as it's just optimal multithreading and those of us with single cores don't suffer because of it.

We already have a community divided amongst the "I like LFS because my 3 year old PC runs it" who become the "OMG you killed my frame rates with your extra 4 polygons in South City" and the people like yourselves with high-end new kit, we don't want that gap to get any wider.
#32 - Jakg
Multi-threading means slightly improved FPS for HT users and GREAT FPS improvements for us with high-end kit (and those with average dual cores). For single core users it yeilds no improvement or disadvantage.

At the end of the day the more Scawen tries to make LFS realistic with enhancements for stuff like brake wear/fade, and improved Engine Modelling, CPU load WILL go up. It makes sense that in a game that can bring a Quad-core to 40 FPS in a full grid that theres 300% more CPU power going to waste, that this should be tapped into.
I think it's too early for Scawen to consider things like PPUs before that market has developed, but the game does need to start taking advantage of multicore CPUs soon really. Especially so as the complexity of the physics simulation increases. I'd be very happy for LFS to use both my cores, instead of just sitting at 50% most of the time.
#34 - wien
Quote from Jakg :For single core users it yeilds no improvement or disadvantage.

That's not necessarily true. Depending on how multi threading is implemented design decisions made to accommodate multiple threads in parts of the pipeline may affect its efficiency on single core systems, even if the engine is still running in one thread on these systems.
Quote from filur :I meant the cost of licensing ageia, but you're right, the addon card is also pretty expensive

Ageia had some part of their operation here in St.Louis and they came out to demo the hardware for the LAN Community. My understanding is that there were no licensing costs for developers; Ageia desperately wanted to garner support for their hardware and they gave away, more-or-less, plug and play physics code for development use.

Physics accelerators aren't really applicable to online gaming. There were some pretty excellent mods that took advantage of HL2's revolutionary physics engine but it did point out that synchronizing more than a few 100 moving objects for more than a handful of clients via the internet presented a bandwidth issue. The PhysX card is capable of working with hundreds of thousands or even millions of objects/collisions at once but there's no way to harness that power for elements that effect gameplay over the internet. Synchronizing Position/Orientation as well as vector information for 300,000 objects 10 times each second doesn't work for online gaming and those are the kind of numbers that make it worthwhile to utilize a Physics Accelerator. Objects/Gases/Liquids that are superfluous and don't effect gameplay (Tire smoke which does not have to appear exactly the same to each client and does not need to be synchronized accurately) could take advantage of an accelerator but I doubt you'll see this implemented in LFS.
#36 - Woz
Quote from Jakg :Multi-threading means slightly improved FPS for HT users and GREAT FPS improvements for us with high-end kit (and those with average dual cores). For single core users it yeilds no improvement or disadvantage.

Good multi threading requires an overhead to keep in sync and to protect data overwrite etc. So a move to multithread does have an impact on single core users.

Also HT actually has a negative impact sometimes because there is a single shared core so the extra context switching can slow things down.
PhysX isn't interesting anyway. CUDA is a proprietary language and will be superseded by standard API's like DirectX compute shaders and OpenCL which will work on all GPU's.

@GobLox: You don't need continuous synchronizing between clients and servers or huge data transfers.
There is a lot possible with partial prediction and low-level synchronizing.


Multithreading is a must though, Valve Software has proven it doesn't have to strain singlethreaded systems and can increase performance in huge factors.
I have a P4 prescott 3.2ghz HT, when I play any source games my performance is nearly doubled when I have HT enabled.

My framerate goes up from 100fps to 170fps, this is with the same high settings and the same (complex) scene in single player.
#39 - arco
*shameless bump*

Nvidia has released beta drivers with OpenCL support, as has ATI too I believe. Would LFS benefit from using OpenCL for its physics calculations, and how much work would it be to implement it in LFS?
#40 - wien
Quote from arco :and how much work would it be to implement it in LFS?

Rewriting the entire physics engine? I'm sure that can be done in a jiffy. Could be useful for new developments like proper aerodynamics simulation though, but I'm not certain if even modern GPUs can do that at a high enough detail level to be useful (compared to faking it I mean).
#41 - arco
Yeah, I wasn't sure if this was something fairly easy to implement or would require a lot of work. But if it means a total rewrite of the physics engine, I suppose it's out of the question at this time.
#42 - wien
OpenCL (and The DirectX equivalent - Compute shaders), are basically completely new languages. They're both similar to C in syntax, but that's where the similarities end. The current C++ physics code from LFS would have to be completely rewritten to take advantage of either. Scawen would probably also need to re-jig the algorithms he has spent years developing to allow for the massively parallel execution model of these new languages. That's where the real tricky stuff comes in.

In the near future I think multi-threading would be a much more realistic goal in terms of speeding up the physics.
"physX processor from ageia"

Not many successful attempts to use it and as mentioned earlier, also i never read about anybody being enthusiastic about it. Just as mentioned earlier, its a very, very, very bad idea to supporting technology's specific for one manufacturer. So physX, No i disagree.

There is an other possibility to get a lot of extra physics calculations:
Todays pc's come with at least dual core cpu's and quad-core cpu's are now available below $100 dollars or less then 85 euro's. So multi-threading would give huge possibilitys to do many, many physics calculations But somewhere on this forum i read a post from scawen rewriting the engine of lfs is a lot of work meaning it will take a long time to do it. But i do think it is becoming more important everyday since performance for a individual core is hardly improving over the last two years but the number of cores is still growing. Soon we can plug in hexa-cores from amd and a few monthes later intel will be producing with 6 to 8-core cpu's. In fact, amd is already supplying hexa-core cpu's for x86 servers.

So if the crew wants to add realism, for example model complex aerodynamics into lfs, i think there will be no other possibility than to rewrite the lfs engine to really take advantage of at least two cpu cores. It will increase available processing power on the average system by about 80%. With quad-cores up to 200% extra cpu-power (using more cores rarely gives linear improvements in performance).

So i do think lfs should use multiple cores, it will open up great possibility in terms of added realism. Waiting to get faster individual cores.. is going to take a very, very long time..
OpenCL is very interesting to run physics engine on. It is very scalable and runs on CPUs, GPUs and even DSPs when OpenCL-capable.

Aerodynamics simulation is possible, to have proper CFD you need dual precision floating point operations and many of them simultaneously.
An AMD HD 5800 series GPU should be fairly capable of doing CFD, not to mentioned nVidia's Fermi.

The problem is that you will need brand new hardware to run this. Which doesn't really fit Live for Speed since that is a very light optimized software package.
Maybe it is best to add OpenCL support now, but to add more demanding physics in the future.
Multithreading should be integrated in the game as soon as possible.
2

New Technology Support
(44 posts, started )
FGED GREDG RDFGDR GSFDG