Certainly not.
Westhill will get an update and maybe something todo with 3D view using a red/green glasses.
Then the next big update, will be about tyre physics.
What better time to incorporate multi-score than when re-writing a huge part of the physics engine? Hell, even putting the tire physics on its own core from everything else would be logical when he's starting over on it from scratch.
I don't think many people understand this, but physics are not really the heaviest thing in LFS for CPU.
Easiest way to determine that is to minimize LFS and monitor how CPU usage changes. If I try that with replay from lfsbench on start grid I get about 5-6 times lower CPU usage while LFS is minimized.
Physics are still calculated, only different thing is that DirectX does not draw. Probably a lot think drawing is only about GPU, but infact it isn't and depends pretty much on CPU as well.
I doubt new tyre physics will magically start using a lot more CPU that there will be need to make physics calculations multithreaded. From my point of view it shouldn't be too hard if you are only taking in calculation current inputs (forces caused by engine acceleration, braking, bumps on track,...) and previous state of physics. What I mean is when you are doing physics iteration for one tyre you don't take into account calculations done in same iteration for other three tyres (e.g. Gauss-Seidel and Newton's method).
Infact programmatically if there is not much to do per thread it can often slow things down, so there comes question whether to implement it or not. Seeing is believing.
Move to DirectX 9 does not bring only possible graphic improvement, but it can do multithread rendering AFAIK which will hopefully boost our FPS caused by decrease from (graphic improvements)
To my understanding this will primarily help FPS on start grid where a LOT of screnes are being rendered.
Didn't realize that, that's interesting. LFS obviously isn't the most intensive game anyway, with a computer 2-3 years old hitting the physics framerate cap easily.
Still, separating the physics load onto another core can only be beneficial, even if it's not as much as I thought.
Turboboost isn't the same as multithreading, one of us is missing something here.
OK lets say it more detailed, there are still a lot out there who only have a single core processor, so there is no "putting thisandthat" on another core for them. I also don't get the impression from Scawen that he wants to drop all single core support so it then does not really matter does it?
Besides, multi core processors can compensate -a lot- themselves concerning single core programs (just explained in that short video). I don't really see the point what you try to make. There are not even problems with multi core processors. Why spend time on a problem which isn't a problem?
I just couldn't stand without replying to this post
Seriously, how many people still use single core processors? Well, I didn't found any figures to prove my point, but in todays world its probably less than 10%. Most of that percentage is probably like industry and places which really doesn't require multiple cores. And still that number doesn't necessarily translate to LFS's scene. What I mean is if you want to play LFS you simply don't use 10 year old CPU, right? I know there are a couple of people with even older CPUs around here, and I will get bashed by them, but thats just few
Anyway, my point is multithreading will not hurt anyone.
Multithreaded game engine will help most of us that use multicore CPUs boost FPS. Even singlecore CPUs will have advantage then.
Lets start with simple question like can screenshots in LFS be saved on different thread? Of course they can, infact it isn't that hard at all.
Its already quite known that LFS hangs until screenshot is saved. That time increased when using some of the recent screenshot formats like jpg and png. Even on my 2014 CPU it take roughly about half a second. Multithreaded screenshot saving (encoding) will move the job to another thread and game engine is continuing. Even singlecore CPU users will see the improvements on that side, because job will be done during some less CPU intensive tasks. Just like there are processes with different priorities, there are threads with different priorities.
Basically all you need to save a screenshot on different thread is:
Create Direct3D device with D3DCREATE_MULTITHREADED flag and put saving to another thread.
Here is the sample of code how I implemented it, quite noobish, but it works:
void SaveScreenShot(IDirect3DDevice9 *dev) { IDirect3DSurface9 *buf = 0; int res = dev->CreateOffscreenPlainSurface(1, 1, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &buf, NULL); //resized afterwards, so size doesnt matter if (res != D3D_OK) { if (buf) buf->Release(); } else { int res = dev->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &buf); if (res != D3D_OK) { if (buf) buf->Release(); } else { _beginthread(SaveScreenShot_thread, 0, buf); } }
}
Thats whole code with ~all the error checking, it even implements file names using current date/time stamp
As a result you get nice fluid gameplay no matter if you are saving screenshot or not.
To prove my point you can test with my d3d9.dll which does this same thing. Look into this post and just unpack first rar to your LFS folder.
Scawen, would it be possible for the next update to have another option for 3D display? I'm talking specifically about the side-by-side mode.
There should be an option to switch the left and right image, so that it can be seen either in parallel view or cross-eyed view. Currently only parallel view is available.
Supporting multiple cores means using more threads. Single core processors are perfectly capable of running multiple threads.
Not all multi core CPUs have Turboboost, and even when they do, properly sharing the workload, let's say over 4 cores at 3GHz, is way more beneficial than gaining a few hundred MHz on one core.
(By no means am I suggesting that actually using multiple threads is simple, mind you)
Just an FYI for Scawen, Oculus posted an update on the DK2 availability. Apparently 5000 units have now left the factory and are expected to arrive to developers during week 29. Another 5000 will leave the factory later during July, but won't be arriving to developers until August.
Me and my teammate made our order at 10:33 AM and the store officially opened around 8:00 AM, will be interesting to see if our Rifts are in the first 5K batch, considering they sold over 12.5K units in the first 36 hours.
MousemanLV raises his left hand up above his head, waving towards Mr.Daniel-CRO, cracking a wide smile as he glances at Daniel.
MousemanLV grabs a trout which was located on the table, swings it towards Mr.Daniel-CRO, using both hands to create as much damage to his face as possible.
A bit late here now that most of the talk is to do with bugs and fixes, but it's great to see LFS is still alive and kicking. So many fun filled hours spent in this game, it would be great to see some proper progress and re-gain the popularity it once had in the sim world.
Keep grinding away Scawen, you'll definitely have my money with any future paid content that gets released
So, here's a question. Who still uses a single core processor ?
I'm not exactly running cutting edge equipment but my 7 year old box is still a quad core. I think that most people would be running at least a dual core processor.
And while, with a 'bit' of overclocking LFS even on one core of my elderly PC runs at well over 100 fps. I'd have thought that multicore support these days was a given.
I am fully aware that LFS support's 'legacy' machines but these day's that is generally core 2 duo or better. And even these are getting towards the 10 year mark now.
With the move to DX9, that restricts LFS to XP at the earliest. Perhaps with the passing of years multicore could be embraced as the next step on from DX9.
But really, who still runs a single core as their gaming box ?
Answers on the back of an envelope to "The 90's are calling and want their computer back.com"
about multi-threaded LFS:
keep in mind the multiple threads need to stay in sync (it doesn't help to draw cars at different positions than they have in physics). And surprisingly for non-programmers, this syncing between threads can be so expensive that it can actually cancel any gain from multi-core support. If the original architecture of code doesn't support parallelism well. Which is the usual case for code which was developed as single-thread from the beginning.
So it's not only about writing some 1-2 lines here and there and spawn some more threads to do some computation, but you need to design your usage of data in a way that the inter-thread communication and sync is cheap enough, and the portion of load for other thread is still big enough, to gain the advantage in the end.
After you work out the overall architecture of code, multi-threading code is often 4+ times more difficult to debug, so again unless the gain is obvious, it's not worth it.
That, and the low usage of CPU in LFS is making me curious why you are asking for multi-core support (ie. asking for all kind of new bugs and problems). I think most of the modern multi-core CPUs should run LFS quite fine even at single of their core?
Anyway, I'm pretty sure Scawen as pragmatist will switch to multi-core support as soon, as the benefits will be big enough over its current approach. I don't think he will stop with physics rewrite at tyres, after he's done with them, he already suggested many other aspects of physics he wants to work on, and somewhere there the multi core support may suddenly slip in logically...
Still not sure why you are bothering him with this, it's internal implementation thing. If the LFS is running poorly on your PC, nag him about performance, but don't care how he's achieving it. If Scawen can make LFS to work well with only single core used, let him breath, and enjoy his "green" approach to ecology...
Nice to see progress happening. Many of us always believed that something will happen soon. Thanks to the developers, I am now very thrilled.
Nice to see Westhill, my favourite track, getting some facelift. But I still hope we could have the old layout as well there, being extra. If not, I hope that we will get the exact release date early enough to have some races with the old layout untill it's gone forever!
Best regards,
Corse\ Pantheo
Proud member of Corse Motorsports! Keeping LFS alive also in the future!
Earlier this week somebody joined public racing with a Pentium D, on-board graphics and he was doing 640x480 with ridiculously low FPS @start, like 10 FPS or something. He also was, not, joking.
I am not happy with those people, they cause more trouble then they realize themselves but what do you say to those people, fack off?
I would like to see some minimum requirement threshold myself but apparantly Scawen has a different philosophy about it and would like to support every toaster which exists on the planet.
Feature creep is exactly what LFS needs right now.
The discussion has some merit though when we're not talking about redoing the whole architecture of the game but rather putting some minor tasks in a separate thread to alleviate the burden on the main thread.
In my own projects the AI is a good example of this. It can be fairly encapsulated and doesn't require perfect timing. Just don't overestimate your own ability to identify swapped mutex lock statements...